Форум » GUI » Нужно сохранить отчет в формате .DOC для Microsoft Word . КАК? » Ответить

Нужно сохранить отчет в формате .DOC для Microsoft Word . КАК?

Softlog86: Пока предполагаю по аналогии с .XLS созданием методом OLE . У меня отчет - бланк Наряд-заказа с СТО с реквизитами сторон , тремя таблицами и итогами .... Для красоты несколько линий для разделения тематики .

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

Softlog86: Экспериментирую с выводом формы в MS Word ...... 1) Есть-ли возможность 'прямого' вывода строки в определенную позицию на листе , например через координаты .... в EXCELL с этим удобнее - указываем номер ячейки X,Y и всё ,,,,, 2) Так и не понял как организовать таблицу в указанном месте листа .... Вообще не понял как из макроса сделать команды в Harbour

Andrey: Softlog86 пишет: Вообще не понял как из макроса сделать команды в Harbour Смотри -> Dima пишет: поиск на форуме Word.Application

Dima: Softlog86 Есть простой способ , руками пробнул работает. Опишу чуть позже.


Dima: Открываем документ EXCEL и всю наборку делаем в нем включая таблицы и тд и тп. Выделяем нужный кусок документа и копируем в буфер. Делаем вставку в чистом документе WORD. Все. ЗЫ Юзал таблицу , раскрасил её , внес данные , все сработало.

SadStar3333: Есть-ли возможность 'прямого' вывода строки в определенную позицию на листе Я использовал Bookmarks т.е. давал заданным кускам текста подходящие имена а потом так [pre2] ... aAdd(aBookMarks, {"Team", s}) aAdd(aBookMarks, {"Sign3", wMain.txt_Manager3.Value}) aAdd(aBookMarks, {"Sign4", wMain.txt_Manager4.Value}) aAdd(aBookMarks, {"Sign2", wMain.txt_Manager2.Value}) If oResDoc:Bookmarks:Count > 0 BkMrk:="" For Each BkMrk In oResDoc:Bookmarks bmName:=BkMrk:Name if (n:=AScan( aBookMarks, {|x| x[ 1 ] == bmName} ))>0 //BkMrk:Range := BkMrk:Name BkMrk:Range := aBookMarks[n,2] endif Next //BkMrk EndIf oWord:Visible := .T. oWord:WindowState := 1 // Maximizado [/pre2]

azoo: Подскажите пожалуйста, как в данном примере сделать так чтобы "Время" и "Дата" были с разными параметрами шрифта ? IF ( oWord := win_oleCreateObject( "Word.Application" ) ) != NIL oWord:Documents:Add() oText := oWord:Selection() oText:Text := "" oText:Font:Name := "Courier New" oText:Font:Size := 8 oText:Font:Bold := .f. oText:Text += hb_oemtoansi("Время") + hb_eol() oText:Font:Name := "Courier New" oText:Font:Size := 12 oText:Font:Bold := .t. oText:Text += hb_oemtoansi("Дата") + hb_eol() oWord:Visible := .T. oWord:WindowState := 1 /* Maximize */ ELSE ? "Error. MS Word not available.", win_oleErrorText() ENDIF

Dima: А что не пашет как в примере ? azoo пишет: hb_oemtoansi( Что то мне кажется что hb_oemtoansi уже и не нужен если свежий Harbour

azoo: Dima, не важно, просто исходник набран в 866 кодировке. Можно и так: oText:Text += "Дата" + hb_eol() Вопрос в том, что в Wordе текст получается одинаковым, т.е. без учёта параметров Size, Bold

Dima: azoo Даже не знаю, я не работал с "Word.Application" , так как спокойно обходимся без него. Попробуй на форуме поиск дёрнуть по фразе Word.Application , может примеры найдешь какие или загугли на предмет Word.Application + Harbour

Dima: azoo пишет: oText:Font:Name := "Courier New" oText:Font:Size := 8 oText:Font:Bold := .f. oText:Text += hb_oemtoansi("Время") + hb_eol() а если так oText:Text += hb_oemtoansi("Время") + hb_eol() oText:Font:Name := "Courier New" oText:Font:Size := 8 oText:Font:Bold := .f.

Andrey: По просьбе желающих выложил готовые примеры у Григория на сайте - http://hmgextended.com/applications.html Преобразование DBF в DOC через объект ОЛЕ в МиниГуи / Convert DBF to DOC via the OLE object in MiniGui Преобразование DBF в XLS через объект ОЛЕ в МиниГуи / Convert DBF to XLS via the OLE object in MiniGui Примеры для МиниГуи, но можно использовать и для терминалки.



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