Форум » [x]Harbour » Где взять заголовочный файл для Word? Кто-нибудь с Bookmarks работал? » Ответить

Где взять заголовочный файл для Word? Кто-нибудь с Bookmarks работал?

SADSTAR2: Как в свое время находили файл Excel8.ch. А за одно бы и для всего Оффиса. Хотел BookMarks в Ворде поюзать, но кроме Count ничего не смог сделать - выпадает на Called from TOLEAUTO:BOOKMARKS(0) Called from TOWORD(65) А Count по всякому работает и так oRange:=oResDoc:Content if !empty(n:=oRange:Bookmarks():Count) //ok и так if !empty(n:=oResDoc:Content:Bookmarks():Count) //ok и так if !empty(n:=oResDoc:Bookmarks():Count) //ok

Ответов - 5

Andrey: Вот есть у меня такое: http://files.mail.ru/R05TKJ Подойдет ?

a_sidorov: Я работаю так, сразу пишу подготовленный массив во все закладки: TRY oWord := GetActiveObject( "Word.Application" ) CATCH TRY oWord := CreateObject( "Word.Application" ) CATCH Alert( "Ошибка! MS WORD недоступен. [" + Ole2TxtError()+ "]" ) RETURN END END docWord := oWord:Documents:Add(myblank) oWord:ScreenUpdating:=.F. If docWord:FormFields:Count > 0 For Each FrmField In docWord:FormFields FrmField:Select() fieldName = HB_AnsiToOEM(FrmField:Name) IF ( nfld := AScan( aMarks, { | x | Upper( x[ 1 ] ) == Upper( fieldName ) } ) ) # 0 FrmField:Range := HB_OEMTOANSI(aMarks[ nfld ][ 2 ]) Endif Next //FrmField EndIf

SADSTAR2: a_sidorov пишет: Я работаю так, сразу пишу подготовленный массив во все закладки: после еще нескольких попыток принял к исполнению вашу идею в применении к BookMarks т.к. она работает и дело движется дальше. Пример [pre2] aAdd(aBookMarks, {"Manager1", wMain.txt_Manager1.Value}) aAdd(aBookMarks, {"Manager2", wMain.txt_Manager2.Value}) aAdd(aBookMarks, {"Manager3", wMain.txt_Manager3.Value}) aAdd(aBookMarks, {"Manager4", wMain.txt_Manager4.Value}) aAdd(aBookMarks, {"Date1", wMain.DatePicker_1.Value}) aAdd(aBookMarks, {"Date2", wMain.DatePicker_2.Value}) aAdd(aBookMarks, {"Time1", StrZero(wMain.Spinner_1.Value, 2)+" : "+StrZero(wMain.Spinner_2.Value, 2)}) aAdd(aBookMarks, {"Time2", StrZero(wMain.Spinner_3.Value, 2)+" : "+StrZero(wMain.Spinner_4.Value, 2)}) 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 := aBookMarks[n,2] endif Next //BkMrk EndIf [/pre2] P.S. Для тех, кто не в теме - поясняю. Сначала в исходном word.doc нужные места помечаете как именованные закладки. Меню/Вставка/Закладка, задаёте имя, Добавить В RunTime в места нахождения закладок помещаете свой текст. При этом сохраняется форматирование, но закладки исчезают.


Vlad04: Я эту библиотеку использую для печати. http://clipper.b.qip.ru/?1-4-20-00000646-000-0-0-1304844857 Мне , кажется удобнее. Работает на всем , что читает rtf. Не надо заморачиваться с совсем недешевыми продуктами Билла.

Pasha: Пользовать закладки можно так: for each oBookMark in oBookMarks if oBookMark:Name == cName oBookMark:Select() oWord:Selection:InsertAfter(cText) endif next word.ch у меня есть, но еще 2001-го года // Microsoft Word 8.0 Object Library // Version 8.0 Если надо - скину



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