Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Графические и табличные результаты расчетов могут быть сохранены в виде отчета в 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!