КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Ошибки при вызове WORD
Теперь рассмотрим проблемы, которые встречаются при работе с WORD. 1. Если установить WORD и попытаться сразу связаться с ним через Ole, то ничего не получится, дело в том, что при первом запуске WORD программа предлагает напечатать тестовую страницу, при этом никак не сообщив об этом Ole клиенту. Из-за чего в работе вашей программы может происходить сбой. И исправлению эта ошибка не подлежит, данная неприятность - дело рук компании MICROSOFT, создавшей WORD, и пока она эту проблему решать не собирается, как видно из WORD XP. 2. Ещё может быть ситуация, когда открываемый WORD файл уже занят другим приложением или копией вашего, тогда WORD предлагает использовать режим только для чтения, а по освобождению ресурса предлагает переход в возможность редактирования. Это тоже влияет на работу клиентской программы, поскольку требует от пользователя согласия на изменение режимов. 3. Файл, который вы открываете, просто не существует. Эту проблему вам придётся решать средствами языка разработки. WORD подобные сервисы не предоставляет. 4. На используемой машине не хватает памяти. Ответ на этот вопрос смотрите в пункте 3.
3.5. Создание отчётов в WORD (различные подходы)
Существует несколько подходов создания нестандартных отчётов в WORD, используя OLE технологии, рассмотрим их по порядку:
1. Это стандартный подход. Клиент делает запрос, сервер выполняет, клиент делает следующий запрос и так далее, пока задача не будет решена. 2. Можно использовать встроенный в WORD язык VBA, написать необходимые макросы на Visual Basic Script и внедрить их в текущий документ, тогда останется только вызывать их и всё. За счёт этого можно реально выиграть во времени, но волею случая этот метод в основном используется в компьютерных вирусах, за счёт чего относится к вирусным технологиям и из-за этого некоторые антивирусы могут определять вашу программу как инфицированную WORD вирусом. Поэтому данный метод так и не получил распространения среди Ole программ. 3. Третий метод - самый важный, а заключается он в сочетании первых двух, таким образом, демонстрируя взаимное дополнение подходов. Для воплощения любого из 3-х подходов необходимы ещё дополнительные действия. Если требуется записывать/читать с определённой позиции в тексте или необходимо работать с таблицей, то надо расставить закладки в нужных позициях документа. Это лучше всего сделать в шаблонном документе вручную. Потом надо будет найти эти закладки в тексте и перейти к ним. Для начала, напишем процедуру поиска закладки и перехода к ней.
procedure TForm1.Find(Sender: TObject); var What: OLEVariant; Which: OLEVariant; Count: OLEVariant; Name: OLEVariant; Template:OleVariant; Rmark:OLEVariant; begin Template:='C:\3.doc'; WordApplication1.Documents.Add(Template,EmptyParam); What:='Example'; WordApplication1.Visible:=true; What:= wdGoToBookmark; Which:= unAssigned; Count:= unAssigned; Name:= 'Example'; WordApplication1.Selection.GoTo_(What, Which, Count, Name); end;
Теперь закладку мы нашли, запишем в то место что-нибудь:
Procedure Word.insert; begin WordApplication1.Selection.InsertAfter('Привет'); WordApplication1.Selection.Font.Bold:=2; WordApplication1.Selection.Font.italic:=1; end;
Великолепно, кроме простой записи мы получили и доступ к конфигурации текста и можем писать текст с любыми атрибутами, этого более чем достаточно для реализации программ любой степени сложности! Теперь напишем процедуру перехода к следующей ячейке таблицы, считаем, что на первую мы перешли по закладке!
procedure Word.NextCell; begin WordApplication1.Run('NextCell'); end;
Таким же образом запускаются макросы WORD, только вместо NextCell надо вставить имя макроса, который хотим запустить. Важно не забывать, что через Ole можно вызывать только "свободные макросы" то есть без параметров!!! (VIRUS TECHNOLOGIES NOT FOR GAME)
Дата добавления: 2015-03-29; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |