Форум » [x]Harbour » Настройка формата листа DOC-файла... » Ответить

Настройка формата листа DOC-файла...

Andrey: Как сделать настройку формата страницы листа .DOC в зависимости от ширины таблицы ? Ширину своей таблицы уже знаю: [pre2]nWidthTsb := oBrw:GetAllColsWidth() // ширина всех колонок таблицы в пикселах[/pre2] Задаю поля страницы (но они в других единицах): [pre2] oWord:ActiveDocument:PageSetup:LeftMargin := 72.0 //~2.5 см // книжная ориентация oWord:ActiveDocument:PageSetup:Orientation := wdOrientPortrait // альбомная ориентация oWord:ActiveDocument:PageSetup:Orientation := wdOrientLandscape[/pre2] Сколько пикселов в формате А4 для книжной и альбомной ориентации листа ? Кто знает как это сделать ?

Ответов - 43, стр: 1 2 3 All

Pasha: Ну вроде бы так: переключиться на нижний коллонтитул ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter выделить строку Selection.EndKey Unit:=wdLine, Extend:=wdExtend удалить ее Selection.Delete Unit:=wdCharacter, Count:=1 ввести текст Selection.TypeText Text:="444" Selection.TypeParagraph переключиться обратно на документ ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument Действия в коллонтитуле я делал от балды. Сделай, что там тебе надо, в макросе будет записано то, что ты делаешь. Ну и переводи на харбор. А то подвал какой-то, фиг поймешь

Andrey: Сделал функцию записи в нижний колонтитул. Отдельный пример работает отлично. Порядок следования библиотек в проекте: [pre2]-lminigui -ltsbrowse.lib -lhbole -lhbwin -lxhb[/pre2] Вставляю в свою большую систему, функция перестаёт работать. Порядок следования библиотек в проекте: [pre2]-lminigui -ltsbrowse.lib -lhbwin -lhbole -lxhb[/pre2] Вот такая ошибка: Вот сам код функции: [pre2]/////////////////////////////////////////////////////////////////////////////////////////// // Функция замены и вставки нижнего колонтитула в doc // The function to replace and insert the footer in doc FUNCTION MyDocFooter(oActive, aStroka) Local footerRange, oSection, ofooterRange, oRange Local aFColor, nI, cStroka := "" //aStroka := { "Тестовая строка № 1", "Тестовая строка № 2", "Тестовая строка № 3" } For nI := 1 TO LEN(aStroka) cStroka += aStroka[nI] If nI != LEN(aStroka) cStroka += CRLF Endif Next aFColor := BLUE // цвет текста For Each oSection In oActive:Sections // строка 914 - вылет здесь ofooterRange := oSection:Footers For Each footerRange In ofooterRange oRange := footerRange:Range oRange:Font:Color := RGB(aFColor[1],aFColor[2],aFColor[3]) oRange:Font:Name := "Times New Roman" oRange:Font:Size := 10 oRange:Font:Bold := .T. oRange:Text = cStroka oRange:ParagraphFormat:Alignment = wdAlignParagraphCenter Next Next RETURN NIL[/pre2] Подскажите пожалуйста почему так происходит и как исправить ?

Pasha: Для начала наверное надо прекратить использовать очень старую библиотеку hbole (это видно по тому, что задействован класс TOleAuto), а использовать аналогичные средства из hbwin, тем более там отличия в основном только в инициализации. Ну а на такой вопрос: почему тестовый пример работает, а в большом проекте вылет вряд ли кто-нибудь вообще ответит по понятным причинам.




полная версия страницы