Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Разработка отчета



Графические и табличные результаты расчетов могут быть сохранены в виде отчета в Microsoft Word (вид отчета для дзета распределения показан на рис. 9). MS Word может быть использован в этом случае как COM (Component Object Model) сервер, поскольку как COM-объект он экспортирует группу функций, позволяющих с ним работать. Наша задача из Delphi обратиться к

Рис. 9. Вид отчета в MS Word

интерфейсам, предоставляемым сервером. Для разработки отчета на форме, предназначенной для когнитивной визуализации результатов расчета, необходимо разместить кнопку «Отчет» и два компонента TWordApplication и TWordDocument, которые находятся на палитре компонентов Servers. При размещении на форме компонента TWordApplication в секцию uses интерфейсной части модуля Delphi добавляет системные модули WordХР и OleServer. Эти модули содержат Vtable таблицы, обеспечивающие интерфейс взаимодействия с сервером Word. Компонент TWordApplication обеспечивает соединение с сервером.

WordApplication1.Connect;

Установленное свойство Visible компонента TWordApplication позволяет сделать видимым процесс запуска сервера и формирования документа:

WordApplication1.Visible:= true;

После подключения к серверу автоматизации уже можно работать с документами: добавить новый документ и подключиться к нему, воспользовавшись компонентом TWordDocument, который обеспечивает доступ к документу:

WordApplication1.Documents.Add(EmptyParam, EmptyParam,

EmptyParam, EmptyParam);

WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

Для формирования документа необходимо объявить переменные:

var a, b: OleVariant;

WordTable: OleVariant;

Переменные a, b используются для позиционирования в документе, WordTable представляет собой объект таблицы. Код, который будет приведен ниже, использовался для разработки отчета по моделированию распределения χ². Заголовок документа с пропуском строки до вывода текста и после:

a:= WordDocument1.Content.End_-1; // позиционирование в конец

b:= WordDocument1.Content.End_;

WordDocument1.Range(a, b).InsertAfter(#13+'Отчет по моделированию случайной величины'+#13+#13);

Свойство End_ всегда указывает на конец документа. Создание таблицы:

a:= WordDocument1.Content.End_-1;

b:= WordDocument1.Content.End_;

WordTable:= WordDocument1.Tables.Add(WordDocument1.Range(a,b),

2, // количество строк таблицы

2, // количество столбцов таблицы

EmptyParam,

EmptyParam);

WordTable.Cell(1,1).Range.Text:= 'Интегральные результаты';

WordTable.Cell(1,2).Range.Text:= 'График функции';

WordTable.Cell(2,1).Range.Text:= 'Метод обратной функции' + #13

+ 'Статистика ' + IntToStr(stat) + #13

+ 'Дисперсия ' + FloatToStrF(variance,ffGeneral,7,5) + #13

+ 'Мода ' + FloatToStrF(mode,ffGeneral,7,5) + #13

+ 'Отклонение ' + FloatToStrF(deviation,ffGeneral,7,5)+#13;

Для размещения графика в таблице отчета используется функция копирования битового изображения в буфер обмена и вставка содержимого буфера обмена в документ:

Chart1.CopyToClipboardBitmap;

WordTable.Cell(2,2).Range.Paste;

Когда документ сформирован и визуализирован в MS Word, пользователь может закрыть его, сохранить, отформатировать, дополнить своими комментариями и т.д. Вид документа, для формирования которого был представлен код, показан на рис. 10.

Рис. 10. Отчет по моделированию распределения χ²

После окончания работы с сервером MS Word необходимо от него отключиться:

WordApplication1.Disconnect;





Дата публикования: 2014-11-03; Прочитано: 433 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...