Робота з MS WORD із DELPHI 5

  • Список елементів
  • Специфікація
  • Відомість комплектації

Нестандартні звіти – хто і навіщо цим займається

На запитання "навіщо" ми, гадаю, дали вже достатньо аргументації. Але все ж таки це не все, зупинимося на ще неописаних проблемах.

Перше питання, яке нам зазвичай ставлять - це де я зможу це використовувати крім як на підприємстві, сфера застосування даної тематики досить широка, розглянемо деякі питання та варіанти їх вирішення за коштами роботи з Ворд та створенням звітів:

А на рахунок, хто ж цим займається? Ця інформація може бути корисною для керівників. Будь-який WINDOWS програміст з вищою або середньою спеціальною освітою, знайомий з ЯВУ та ООП. Такий вид програмістів часто називають прикладними. Термін виготовлення в середньому 2-3 місяці з урахуванням бета-тестування.

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

На програмному рівні робота з WORD полягає у використанні OLE. Основна структура взаємодії така: Існує програма СЕРВЕР, яка вважається головною і вона виконує всі операції, у разі сервером є програма WORD. З цих слів вже ясно, що якщо WORD не встановлений на комп'ютері, тобто сервер відсутній, нічого виконано бути не може. Просто не буде кому виконувати. Це по суті найбільш поширене питання серед програмістів середнього класу. Друга взаємодіюча програма - це програма КЛІЄНТ, все, що вона робить - це зв'язується з сервером і просить його виконати необхідні операції, сама собою вона нічого не може. Внаслідок такої взаємодії і вирішується поставлене завдання. Тепер розглянемо реалізацію:

Ця процедура пов'язує змінну MsWord з Ole,внаслідок чого підвантажується сам WORD, далі ми робимо його поки що невидимим і перевіряємо версію, пояснення процедури перевірки версії будуть пізніше.

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

Слід пам'ятати та здійснювати всі необхідні перевірки сумісності одразу, щоб уникнути некоректної роботи згодом. У разі відсутності Ворд або невідповідності версії необхідно одразу попередити про це користувача для вжиття необхідних заходів.

Помилки під час виклику WORD

Для початку опишемо процедуру завантаження у WORD DOC файлі, робиться це так:

Можна до відкритого додати ще один, так щоб у результаті з двох отримати один.

А ось і процедура, яка найчастіше використовується у додатках такого типу!

А тепер розглянемо проблеми, які зустрічаються під час роботи з WORD, про які йшлося раніше.

  1. Якщо встановити Ворд і спробувати одразу зв'язатися з ним через Ole, то нічого не вийде, річ у тому, що при першому запуску WORD програма пропонує надрукувати тестову сторінку, при цьому ніяк не повідомивши про це клієнту Ole. Через що у роботі вашої програми може відбуватися збій. І виправленню ця помилка не підлягає, дана неприємність - справа рук компанії MICROSOFT, що створила WORD і поки вона цю проблему вирішувати не збирається, як видно з WORD XP.
  2. Ще може бути ситуація, коли WORD файл, що відкривається, вже зайнятий іншим додатком, або копією вашого, тоді ворд пропонує використовувати режим тільки для читання, а по звільненню ресурсу пропонує перехід у можливість редагування. Це також впливає на роботу клієнтської програми, оскільки вимагає від користувача згоди зміну режимів.
  3. Файл, який ви відкриваєте, просто неІснує. Цю проблему вам доведеться вирішувати засобами мови розробки. WORD подібні послуги не надає.
  4. На машині не вистачає пам'яті. Відповідь на це запитання дивіться у пункті 3.

Створення звітів у WORD (різні підходи)

Існує кілька підходів створення нестандартних звітів у WORD, використовуючи технології OLE, розглянемо їх по порядку:

  1. Це стандартний підхід. Клієнт робить запит, сервер виконує, клієнт робить наступний запит і так далі, доки завдання не буде вирішено.
  2. Можна використовувати вбудовану WORD мову VBA, написати необхідні макроси на Visual Basic Script і впровадити їх у поточний документ, тоді залишиться тільки викликати їх і все. За рахунок цього можна реально виграти в часі, але волею випадку цей метод здебільшого використовується в комп'ютерних вірусах, за рахунок чого відноситься до вірусних технологій і через це деякі антивіруси можуть визначати вашу програму як інфіковану вірусом WORD. Тому цей метод так і не набув поширення серед Ole програм.
  3. Третій метод - найважливіший, а полягає він у поєднанні перших двох, таким чином демонструючи взаємне доповнення підходів.

Для будь-якого з трьох підходів необхідні ще додаткові дії. Якщо потрібно записувати/читати з певної позиції у тексті або необхідно працювати з таблицею, то потрібно розставити закладки у потрібних позиціях документа. Це найкраще зробити у шаблонному документі вручну. Потім треба буде знайти ці закладки у тексті та перейти до них. Для початку, напишемо процедуру пошуку закладки та переходу до неї.

Тепер закладку ми знайшли запишемо в те місце що-небудь

Прекрасно, крім простого запису, ми отримали, і доступ до конфігурації тексту і можемописати текст з атрибутами жирний , курсив , закреслений , підкреслений , вказувати розмір шрифту і навіть відстежувати центрування, повірите мені - цього більш ніж достатньо для реалізації програм будь-якого ступеня складності!

Тепер напишемо процедуру переходу до наступного осередку таблиці, вважаємо, що на першу ми перейшли по закладці!

Так само запускаються макроси WORD, тільки замість NextCell треба вставити ім'я макросу який хочемо запустити. Важливо не забувати, що через Ole можна викликати лише "вільні макроси", тобто без параметрів. (VIRUS TECHNOLOGIES NOT FOR GAME)

А ще процедура. Вона дозволяє пропускати необхідну кількість осередків таблиці з урахуванням, що позиціонування закладці ще не було.

  • NewList - змінна булевського типу, що відповідає за початок нового аркуша та нової таблиці на ньому.
  • a1 - закладка на першу комірку таблиці.

Є ще команда по роботі із закладками. Це видалення.

Ця команда видаляє першу закладку. Це дуже зручно для багатосторінкового документа. Адже кожна сторінка містить однакові закладки, тому, перш ніж завантажити нову сторінку, необхідно видалити старі закладки, інакше закладки не завантажаться.

Корисна процедура для всіх типів підходів до програмування. Вона перераховує сантиметри на пікселі.

Попереднє налаштування сторінки WORD

Однією з найпоширеніших проблем роботи з Ole WORD – різні налаштування конфігурації у різних версій WORD та на різних машинах, внаслідок чого іноді документ відтворюється некоректно. Ви можете вирішити цю проблему, задавши параметри конфігурації сторінки вручну. Серед таких налаштувань окремо можна виділити можливості коригування відступів праворуч, ліворуч, зверху та знизу, а також низку іншихпараметрів.

Взагалі всього описаного вище цілком достатньо для роботи, але є таке поняття, як "підв'язати бантики і шнурочки" і саме це ми і зробимо.

Отримати версію WORD:

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

Зберегти активний документ:

Надсилання активного документа на друк:

Розрив сторінки – перехід до нової сторінки. Реалізується так: