Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Глюк с Word

2.2K
06 апреля 2005 года
Dani
51 / / 22.09.2004
Свои отчеты вывожу в Ворд. Делаю так:
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%), если перед печатью просто открыт пустой Вордовский документ.
Кто-нибудь знает, что это за баг? И вообще, где искать причину?
Я думаю, это какие-то системные дела..
Заранее спасибо.
246
06 апреля 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Dani
Свои отчеты вывожу в Ворд. Делаю так:
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%), если перед печатью просто открыт пустой Вордовский документ.
Кто-нибудь знает, что это за баг? И вообще, где искать причину?
Я думаю, это какие-то системные дела..
Заранее спасибо.


Через Variant::CreateOleObject() обычно работает на всех компах и системах. Код приведи, тогда найдем баг и где искать причину.

2.2K
07 апреля 2005 года
Dani
51 / / 22.09.2004
Зачем ShellExecute? Поясни мне бестолковому...


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

А Оле я в свое время почему-то обошел стороной.. Наверное, зря..
246
07 апреля 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Dani
Зачем ShellExecute? Поясни мне бестолковому...

А иначе как же еще открыть шаблон?


Запускаешь Word, создаешь макрос в котором прокуручиваешь свои хотелки, смотришь:

 
Код:
Documents.Add Template:= _
        "C:\Program Files\Microsoft Office\Templates\1049\Современное резюме.dot" _
        , NewTemplate:=False, DocumentType:=0

если не понял читаешь хелп к 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, только в профиль...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог