Documents.Add Template:= _
"C:\Program Files\Microsoft Office\Templates\1049\Современное резюме.dot" _
, NewTemplate:=False, DocumentType:=0
Глюк с Word
1. Функцией ShellExecute открываю шаблон MyShablon.dat
2. Заполняю шаблон
На моем компьютере все хорошо. Тестил еще на одном домашнем компе - тоже все хорошо. Тестил на других компах в двух разных местах – все хорошо. Но, блин, как назло, именно на компах у заказчика приложение начинает ломаться. При попытке напечатать отчет шаблон открывается, но не заполняется – вылезают две какие-то абсолютно непонятные мне ошибки, одна за другой:
1. «_Asserte:
inf !=0 @ e:\program files\borland\cbuilder6\include\vcl\utilcls.h/2912»
2. «Access violation at adress 00460192 in module 'Sim.exe'. Read of adress 00000000»
Потом приложение закрывается. Но. Если его запустить еще раз и еще раз попробовать напечатать отчет – он (с вероятностью наверное 95%) распечатается! (5% - вылезут опять те две ошибки).
Так же все работает (на 95%), если перед печатью просто открыт пустой Вордовский документ.
Кто-нибудь знает, что это за баг? И вообще, где искать причину?
Я думаю, это какие-то системные дела..
Заранее спасибо.
Цитата:
Originally posted by Dani
Свои отчеты вывожу в Ворд. Делаю так:
1. Функцией ShellExecute открываю шаблон MyShablon.dat
Свои отчеты вывожу в Ворд. Делаю так:
1. Функцией ShellExecute открываю шаблон MyShablon.dat
Зачем ShellExecute? Поясни мне бестолковому...
Цитата:
Originally posted by Dani
2. Заполняю шаблон
На моем компьютере все хорошо. Тестил еще на одном домашнем компе - тоже все хорошо. Тестил на других компах в двух разных местах – все хорошо. Но, блин, как назло, именно на компах у заказчика приложение начинает ломаться. При попытке напечатать отчет шаблон открывается, но не заполняется – вылезают две какие-то абсолютно непонятные мне ошибки, одна за другой:
1. «_Asserte:
inf !=0 @ e:\program files\borland\cbuilder6\include\vcl\utilcls.h/2912»
2. «Access violation at adress 00460192 in module 'Sim.exe'. Read of adress 00000000»
Потом приложение закрывается. Но. Если его запустить еще раз и еще раз попробовать напечатать отчет – он (с вероятностью наверное 95%) распечатается! (5% - вылезут опять те две ошибки).
Так же все работает (на 95%), если перед печатью просто открыт пустой Вордовский документ.
Кто-нибудь знает, что это за баг? И вообще, где искать причину?
Я думаю, это какие-то системные дела..
Заранее спасибо.
2. Заполняю шаблон
На моем компьютере все хорошо. Тестил еще на одном домашнем компе - тоже все хорошо. Тестил на других компах в двух разных местах – все хорошо. Но, блин, как назло, именно на компах у заказчика приложение начинает ломаться. При попытке напечатать отчет шаблон открывается, но не заполняется – вылезают две какие-то абсолютно непонятные мне ошибки, одна за другой:
1. «_Asserte:
inf !=0 @ e:\program files\borland\cbuilder6\include\vcl\utilcls.h/2912»
2. «Access violation at adress 00460192 in module 'Sim.exe'. Read of adress 00000000»
Потом приложение закрывается. Но. Если его запустить еще раз и еще раз попробовать напечатать отчет – он (с вероятностью наверное 95%) распечатается! (5% - вылезут опять те две ошибки).
Так же все работает (на 95%), если перед печатью просто открыт пустой Вордовский документ.
Кто-нибудь знает, что это за баг? И вообще, где искать причину?
Я думаю, это какие-то системные дела..
Заранее спасибо.
Через Variant::CreateOleObject() обычно работает на всех компах и системах. Код приведи, тогда найдем баг и где искать причину.
ShellExecut'ом я открываю вордовский шаблон, который нужно заполнить! А иначе как же еще открыть шаблон? И потом заполняю. Короче, вот:
ShellExecute(Handle,NULL,"C:\\Test\\T.dot",NULL,NULL,SW_HIDE);
Form1->SetFocus();
Form1->WA1->Connect(); //Коннект с WordApplication
//Какие-нибудь действия..
...
//вывод текста, напр., Hello, World!
Form1->WA1->Selection->InsertAfter("Hello,World!");
...
//Создание таблицы
RangePtr MR=Form1->WA1->ActiveDocument->Range(&mn,&mc);
Form1->WA1->ActiveDocument->Tables->Add(MR,2,4);
...
//Еще какие-нибудь действия..
Form1->WA1->Disconnect(); //Отключаемся от WordApplication
А Оле я в свое время почему-то обошел стороной.. Наверное, зря..
Цитата:
Originally posted by Dani
Зачем ShellExecute? Поясни мне бестолковому...
А иначе как же еще открыть шаблон?
Зачем ShellExecute? Поясни мне бестолковому...
А иначе как же еще открыть шаблон?
Запускаешь Word, создаешь макрос в котором прокуручиваешь свои хотелки, смотришь:
Код:
если не понял читаешь хелп к WordVB:
Add Method (Documents Collection)
Adds a new, empty document to the collection of open documents.
Syntax
expression.Add(Template, NewTemplate, DocumentType, Visible)
expression Required. An expression that returns a Documents object.
[COLOR=red]Template Optional Variant. The name of the template to be used for the new document. If this argument is omitted, the Normal template is used.[/COLOR]
NewTemplate Optional Variant. True to open the document as a template. The default value is False.
DocumentType Optional Variant. Can be one of the following WdNewDocumentType constants: wdNewBlankDocument, wdNewEmailMessage, wdNewFrameset, or wdNewWebPage. The default constant is wdNewBlankDocument.
Visible Optional Variant. True to open the document in a visible window. If this value is False, Microsoft Word opens the document but sets the Visible property of the document window to False. The default value is True.
или если всеже через TWordApplication, то смотришь #include "Word_XX_SRVR.h" там есть этот метод 102 %.
Цитата:
Originally posted by Dani
А Оле я в свое время почему-то обошел стороной.. Наверное, зря..
А Оле я в свое время почему-то обошел стороной.. Наверное, зря..
Враппер TWordApplication это тоже OLE, только в профиль...