Работа с MS WORD от DELPHI 5

  • Списък с артикули
  • Спецификация
  • Списък на оборудването

Нестандартни отчети – кой и защо ги прави

На въпроса "защо" ние, мисля, вече дадохме достатъчно разсъждения. Но все пак това не е всичко, нека се спрем на все още неописаните проблеми.

Първият въпрос, който обикновено ни задават, е къде мога да го използвам, освен в предприятието, обхватът на тази тема е доста широк, нека разгледаме някои въпроси и опции за решаването им с помощта на инструментите за работа с Word и създаване на отчети:

И за кого се прави това? Тази информация може да бъде полезна за мениджърите. Всеки WINDOWS програмист с висше или средно специално образование, запознат с Java и ООП. Този вид програмист често се нарича приложен програмист. Времето за производство е средно 2-3 месеца, като се вземе предвид бета тестването.

Основи на работа с OLE

На програмно ниво работата с WORD е чрез OLE. Основната структура на взаимодействие е следната: Има програма SERVER, която се счита за основна и тя извършва всички операции, в нашия случай сървърът е програмата WORD. От тези думи вече става ясно, че ако WORD не е инсталиран на компютъра, тоест сървърът липсва, тогава нищо не може да се направи. Просто няма да има кой да го направи. Това всъщност е най-често срещаният въпрос сред програмистите от средната класа. Втората взаимодействаща програма е програмата CLIENT, всичко, което прави, е да комуникира със сървъра и да го моли да извърши необходимите операции, тя не може да направи нищо сама. В резултат на такова взаимодействие проблемът се решава. Сега нека да разгледаме изпълнението:

Тази процедура свързва променливата MsWord с Ole, вВ резултат на това се зарежда самият WORD, след което го правим невидим за момента и проверяваме версията, обясненията на процедурата за проверка на версията ще бъдат по-късно.

Основният клас, който описва основните променливи и процедури, необходими за коректна работа с WORD.

Трябва да запомните и извършите всички необходими проверки за съвместимост наведнъж, за да избегнете неправилна работа по-късно. При липса на несъответствие на Word или версия, трябва незабавно да предупредите потребителя за това, за да вземете необходимите мерки.

Грешки при извикване на WORD

Като начало ще опишем процедурата за зареждане на файл в WORD DOC файл, това се прави по следния начин:

Можете да добавите още един към вече отворен, така че накрая да получите едно от две.

А ето и процедурата, която се използва най-често в приложения от този тип!

А сега нека разгледаме проблемите, които възникват при работа с WORD, които бяха споменати по-рано.

  1. Ако инсталирате Word и се опитате незабавно да се свържете с него чрез Ole, тогава нищо няма да работи, факт е, че когато стартирате WORD за първи път, програмата предлага да отпечата тестова страница, без да информира Ole за това на клиента. Поради какво вашата програма може да се провали. И тази грешка не може да бъде коригирана, този проблем е дело на MICROSOFT, който създаде WORD и засега няма да реши този проблем, както се вижда от WORD XP.
  2. Възможно е също така да има ситуация, когато отваряният WORD файл вече е зает от друго приложение или копие от вас, тогава Word предлага да използвате режим само за четене и когато ресурсът се освободи, предлага преход към опцията за редактиране. Това също засяга работата на клиентската програма, тъй като изисква потребителят да се съгласи да промени режимите.
  3. Файлът, който отваряте, просто не го прависъществува. Ще трябва да разрешите този проблем с помощта на езика за разработка. WORD не предоставя такива услуги.
  4. Машината, която използвате, няма памет. Вижте точка 3 за отговора на този въпрос.

Създаване на отчети в WORD (различни подходи)

Има няколко подхода за създаване на персонализирани отчети в WORD с помощта на OLE технологии, нека ги разгледаме по ред:

  1. Това е стандартният подход. Клиентът прави заявка, сървърът изпълнява, клиентът прави следващата заявка и така нататък, докато проблемът бъде решен.
  2. Можете да използвате езика VBA, вграден в WORD, да напишете необходимите макроси във Visual Basic Script и да ги вградите в текущия документ, след което остава само да ги извикате и това е. Благодарение на това наистина можете да спечелите във времето, но случайно този метод се използва главно при компютърни вируси, поради което принадлежи към вирусните технологии и поради това някои антивируси могат да открият вашата програма като заразена с WORD вирус. Следователно този метод не е разпространен сред програмите Ole.
  3. Третият метод е най-важен и се състои в комбинация от първите два, като по този начин се демонстрира взаимното допълване на подходите.

За прилагането на всеки от 3-те подхода са необходими допълнителни стъпки. Ако трябва да пишете/четете от определена позиция в текста или трябва да работите с таблица, тогава трябва да поставите отметки в желаните позиции на документа. Това се прави най-добре ръчно в шаблонен документ. След това ще трябва да намерите тези отметки в текста и да отидете до тях. Първо, нека напишем процедура за намиране на показалец и отиване до него.

Сега намерихме отметка, ще напишем нещо на това място

Страхотно, освен просто въвеждане, получихме достъп до текстовата конфигурация и можемнапишете текст с атрибути получер, курсив, зачертано, подчертано, задайте размер на шрифта и дори центриране на пистата, повярвайте ми - това е повече от достатъчно за внедряване на програми от всякаква степен на сложност!

Сега нека напишем процедурата за преминаване към следващата клетка на таблицата, считаме, че сме превключили към първата с раздела!

Макросите на WORD се стартират по същия начин, но вместо NextCell трябва да въведете името на макроса, който искате да стартирате. Важно е да не забравяме, че само "безплатни макроси" могат да бъдат извикани чрез Ole, тоест без параметри. (ВИРУСНИ ТЕХНОЛОГИИ НЕ ЗА ИГРИ)

И ето още една процедура. Тя ви позволява да пропуснете необходимия брой клетки от таблицата, като се има предвид, че позиционирането в раздела все още не е възможно.

  • NewList е променлива от булев тип, отговорна за началото на нов лист и нова таблица върху него.
  • a1 - отметка в първата клетка на таблицата.

Има и екип за работа с отметки. Това е премахване.

Тази команда премахва първата отметка. Това е много удобно за многостраничен документ. В крайна сметка всяка страница съдържа едни и същи отметки, следователно, преди да заредите нова страница, трябва да изтриете старите отметки, в противен случай отметките няма да се заредят.

Полезна процедура за всички видове подходи към ole програмиране. Той преобразува сантиметри в пиксели.

Предварително зададена страница на WORD

Един от най-често срещаните проблеми при работа с Ole WORD са различните конфигурационни настройки за различните версии на WORD и на различни машини, в резултат на което понякога документът не се възпроизвежда правилно. Този проблем може да бъде разрешен чрез ръчно задаване на опциите за конфигуриране на страницата. Сред тези настройки може отделно да се подчертае възможността за регулиране на отстъпите отдясно, отляво, отгоре и отдолу, както и редица други.параметри.

Всъщност всичко, описано по-горе, е напълно достатъчно за работа, но има такова нещо като "вратовръзка на лъкове и дантели" и това ще направим.

Вземете версията на WORD:

Затворете документ на WORD:

Запазете активния документ:

Изпращане на активния документ за печат:

Прекъсване на страница - преминаване към нова страница. Изпълнен така: