Форум » [x]Harbour » шаблон Microsoft Word » Ответить

шаблон Microsoft Word

Новичок: Кто подскажет (и покажет) - требуется использовать шаблон Word (взаимодействие - подготовка, открытие, передача параметров и т.д.), то есть требуется подготовить определенный шаблон Word, передать параметры с программы, сохранить в формате docx в определенном месте или направить на печать.

Ответов - 103, стр: 1 2 3 4 5 6 All

Pasha: Что-то не работает: nCount := oWord:Windows:Count ? nCount ? oWord:Windows(1):Caption К элементу коллекции надо обращаться не через круглые скобки, это же не метод, а через квадратные, т.е: oWord:Windows[1] Свойство Caption объекта Window r/w, т.е ему можно присвоить что хочется, без головняка с получением хэндла окна: oWord:Windows[1]:Caption := "blabla.." дополню: с экселем заголовок окна можно также изменить стандартным способом. вот пример из хэлпа по vba: ActiveWorkbook.Windows(1).Caption = "Consolidated Balance Sheet"

Pasha: По поводу примеров работы с таблицами word из fw: в том разделе это не по теме, напишу здесь Андрей, я тебе дал пример заполнения таблицы. Если ты не хочешь использовать закладки, то надо только заменить начальное позиционирование на 1-й элемент таблицы вместо oSelect:Goto(-1, ... поставить <table>:Cells(nR, nC):Range:Select() и оставить последующий код без изменений

Andrey: Pasha пишет: Андрей, я тебе дал пример заполнения таблицы. Если ты не хочешь использовать закладки, то надо только заменить начальное позиционирование на 1-й элемент таблицы А я никак сделать его под себя не могу... Пошёл переделывать. Pasha пишет: Свойство Caption объекта Window r/w, т.е ему можно присвоить что хочется, без головняка с получением хэндла окна: Мне нужен хенд окна, для того чтобы переместить это окно поверх всех окон. Чтобы юзер не искал на рабочем столе созданный документ. С Экселем получилось, с Вордом нет !


Dima: Andrey пишет: С Экселем получилось, с Вордом нет ! Вероятно так Hwnd:=oWord:Windows[1]:hwnd

Andrey: Pasha получилось ! Заработало.... Спасибо огромное !

Andrey: Dima пишет: Вероятно так Hwnd:=oWord:Windows[1]:hwnd Ошибка: Error 3277332/0 S_OK: HWND Called from TOLEAUTO:HWND(0) Called from MYWORD2OLE(105)

Dima: Andrey А так Hwnd:=oWord:Windows:hwnd

Pasha: Свойство hWnd присутствует у объекта Window, а не у коллекции Windows, что логично. По-видимому, в ранних версиях офиса его нет, поэтому и происходит ошибка.

Andrey: Dima пишет: Hwnd:=oWord:Windows:hwnd Ошибка ! Pasha пишет: Свойство hWnd присутствует у объекта Window, а не у коллекции Windows, что логично. По-видимому, в ранних версиях офиса его нет, поэтому и происходит ошибка. А как правильно узнать хенл окна у современных версиях офиса ? Чтобы точно работало !

Pasha: В Office 2010 свойство hWnd у объекта Window еще отсутствует. В Office 2013, судя по доке, уже есть. А как узнать хендл - ну так и узнать, обратиться к свойству hWnd, если версия office выше, чем 2013

Pasha: Насчет hWnd так и есть: Window.Hwnd Property (Word) Returns a Long that indicates the window handle of the specified window. Read-only. Collapse sectionVersion information Version Added: Word 2013 т.е, обращаться к нему можно, если oWord:Version больше чем значение (определенная константа) для office 2013

Andrey: Понял. Пока писал, уже сделал. Word 2014 выдает правильно и по ошибке не слетает... hWnd := oWord:ActiveDocument:ActiveWindow:Hwnd Спасибо, понял в чем моя ошибка - искал там, где нет. У меня у юзеров еще 2003 офисы стоят...

Dima: Вообще не много странно. В Excel 2003 можно поймать хендл окна Excel по Excel:Hwnd а в той же версии Word уже нет.

Pasha: Странно и то, что в Excel 2003 свойство hWnd есть у объекта Application, а не у Window. Может так оказаться, что это хендл не того окна, которое нужно. В Excel 2013 свойство hWnd добавили и у Window.

Dima: Pasha пишет: Может так оказаться, что это хендл не того окна, которое нужно. Пока ни кто не жаловался , и промахов не было В основном у юзеров стоит 2003 офис.

Andrey: Dima пишет: В основном у юзеров стоит 2003 офис. А как делаешь ?

Dima: Andrey пишет: А как делаешь ? чито ?

Andrey: Хендл окна поймал. Вывожу на передний план так: ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) MsgDebug(hWnd) Не выводится... Фар всё равно на переднем плане... Как правильно поместить окно Word поверх всех окон ?

Dima: Andrey Для Excel так , норм вроде [pre2] Func Showexcel(ex) local hWnd hWnd := Ex:hWnd ShowWindow(hWnd, 3) BringWindowToTop(hWnd) return nil [/pre2]

Andrey: Dima пишет: Для Excel так , норм вроде Да у меня с ним тоже в порядке, а с Вордом проблема.... Делаю так: [pre2]ShowWindow( hWnd, 6 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 INKEYGUI(800) ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd ) MsgDebug(hWnd) [/pre2] Окно Ворда исчезает, а потом появляется. Но окно Проводника или Фара не перекрывают, почему то Ворд на заднем плане.



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