Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > MsWORD и VisualBasic


Автор: LorDen 1.12.2005, 21:32
Приветствую всех.
Я програмирую на Delphi но пришлось столкнуться с VB для вывода моего отчета в Word.
Dlephi (клиент) -> MSWord (Сервер). Все работает отлично но не могу найти одну функцию.
Чтобы долго вас не грузить скину свой вопрос и его обсуждение с другово форума.
Может кто ннибудь сможет помочь. smile

_________________________________________________________________________
Возникла проблема при созданаии отчета в Worde.
Может кто сталкивался и сможет подсказать.

При выводе текста из Delphi в Word. С каждой новой страницей скорость вывода уменьшается. При 10-20-и страничках это не сильно заметно. Но когда подходит к 50 и далее страниц очень тормозит и торможение нарастает.

Но вот, если в сам момент вывода текста Word виден и перейти в него. То в самом Word-e на панели задач есть такая книжечка (проверка орфографии и грамматики). Нажав на нее правой кнопкой мыши визуальный вывод в документ прекращается. А програмно идет дальше и с очень большой скоростью.
В принципе с той же, что и при выводе первых страниц.

Сначала подумал, что это из-за проверки грамматики и синтаксиса, убрал их. Не помогло. smile

Попробовал при:
MSWord.Visible:= true;
MSWord.Visible:= false;
Тоже не помогает.


Подскажите pls.
_________________________________________________________________________
23-11-2005 09:18

У меня было нечто похожее. Решил методом тыка. В цикле вывода строк в Ворд ставил вызов ResetIgnoreAll (функция обьекта worddocument вроди).
Только вызывал не каждый проход в цикле, а где-то через каждых 120 строк+перед циклом. Работало отлично. Связано все это как мне кажется все-таки с проверкой орфографии.
_________________________________________________________________________
23-11-2005 14:30 | Сообщение от автора вопроса

К сожалению не помогает smile. Может есть еще советы ?

_________________________________________________________________________
23-11-2005 20:13

Очень медленно работают функции таблиц - добавление строк, объединение ячеек и др. Вставка и замена текста работает почти быстро. Если отображать документ уже после того, как весь текст загрузится, то это тоже происходит быстрее. И еще медленно выгружает, когда еще какой-нибудь документ Word открыт. Не знаю уж, с чем это всё связано. Но по возможности необходимо сократить число обращений к WordApplacation... - сгенерировать максимально возможный неделимый блок текста, а затем его выгрузить, чем выгружать коротенькими строчками.

_________________________________________________________________________
24-11-2005 00:15

попробуйте установить:

WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType := False;
_________________________________________________________________________
24-11-2005 15:03 | Сообщение от автора вопроса

WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType :=
False;
Я уже пробывал отключать не только это, а вообше все галочки в проверке правописяния. Не помогает. smile
А проверка орфографии (или чего-то там, не пойму) все равно продолжаеться.

Как я сам разобрался надо чтобы все, что я вывожу в документ (все видимые глазу изменения) во время самого вывода не показывалась. Как бы это объяснить... Ну то есть, не было видно бегущего курсора выдающего символы и сдвига в низ страниц и т.д. Но не функцией MSWord.Visible это не помогает.

_________________________________________________________________________
24-11-2005 23:33
У меня с вордом та же проблема (отключение всех реакций), в Excell я с этим боролся так



ExcelApp.Application.EnableEvents := false;
try
...
finally
ExcelApp.Application.EnableEvents := true;
end;



в ворде что то подобное не нашёл, но думаю направление правильное, должно же что то подобное быть, плиз сообщите кто ни будь в этом вопросе если найдёте
_________________________________________________________________________



Ничего не помогло smile

Вот такая проблема. Может, кто знает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)