Читать статья по информатике, вычислительной технике, телекоммуникациям: "Документация на основе RTF-шаблона" Страница 1

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

Документация на основе RTF-шаблона

Александр Харьков, "Комиздат"

Разработка прикладного ПО - это, как известно, не только написание кода программ, но и проектирование печатных документов и отчетов. Практически все интегрированные среды имеют в своем составе генераторы отчетов, в той или иной степени помогающие решить эту задачу. Однако, несмотря на явные достоинства, использование генераторов отчетов имеет ряд недостатков. Они сводятся, главным образом, к невозможности вносить правки в сформированный документ, а также изменять шаблоны отчета привычными средствами, например обычным текстовым редактором.

До последнего времени самым простым и широко применяемым решением представлялось применение механизма OLE. Например, для комбинации Word и VisualBasic возможна такая схема:

Создаем некий файл - шаблон документа. Там, где должна быть "шапка" (дата, номер документа и др.), используем закладки, а для основной части отчета создаем таблицу-заготовку соответствующей структуры. Пример такого шаблона приведен на рис. 1.

Пишем программу с использованием объектной модели Word:

' NumStr - кол-во строк в отчете

' NewData (5,NumStr) - массив с данными для заполнения

' таблицы, заранее приведенными к символьному виду

' Itog - сумма, приведенная к символьному виду

' Pth - путь к исходному файлу

' Str_ndoc = "BS190"

' Str_name = "Петров И.И."

.................

Dim objWord As Word.Application

Dim objDoc As Word.Document

Dim objTable As Word.Table

' создаем объект Word

Set objWord = New Word.Application

' делаем его видимым - это не обязательно,

' но очень интересно :)

objWord.Visible = True

' открываем файл шаблона

Set objDoc = objWord.Documents.Open (Pth)

' делаем его активным

objDoc.Activate

' заполняем "шапку документа" - номер и получатель

' - закладки 'ndoc' и 'name' соответственно

objDoc.Bookmarks ("ndoc").Range.Text = Str_ndoc

objDoc.Bookmarks ("name").Range.Text = Str_name

' связывам объект с таблицей

Set objTable = objWord.ActiveDocument.Tables (1)

' выделяем 2-ю строку таблицы в шаблоне

objTable.Cell (2, 1).Range.Select

' вставляем нужное кол-во строк-1

' (т.к. одна уже есть в шаблоне)

If NumStr > 0 Then objWord.Selection.InsertRows (NumStr - 1)

' для каждой строки в каждую ячейку вставляем нужные

' данные из массива

For i = 1 To NumStr

For j = 1 To 5

objTable.Cell (i + 1, j).Range.Text = NewData (j, i)

Next j

Next i

' проставляем сумму "Всего"

objTable.Cell (NumStr + 2, 5).Range.Text = Itog

Запускаем ее в составе всего приложения и получаем результат (см. рис. 2).

Пользователь, получив отчет в виде doc-файла, может легко внести в документ любые изменения, отправить его по электронной почте, распечатать - одним словом, распорядиться по своему усмотрению в привычной ему среде. Так же легко он может изменить и шаблон документа - для этого достаточно уметь работать в текстовом редакторе.

Но эту идиллическую картину омрачает несколько неприятных моментов. Во-первых, недостаточная гибкость приложения - если вы захотите перейти на другой редактор, то придется писать код заново. Во-вторых, приложение работает только в среде пакета MS Office, а он стоит немалых денег. Если приложение должно работать на 30-ти компьютерах предприятия, то установка на них MS Office обойдется примерно в 40 тыс. гривен - не каждый бюджет выдержит.

В то же время существует целый ряд бесплатных и достаточно полнофункциональных офисных пакетов: OpenOffice, StarOffice, EasyOffice и др. Для


Интересная статья: Быстрое написание курсовой работы