Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Word для генерации отчетов

Delphi , Технологии , OLE Automation MSOffice

Word для генерации отчетов

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


var
  Word: Variant;
begin
  Word := CreateOleObject('Word.Basic');
  with Word do
  begin {Затем следуют "чистые" команды WordBASIC...}
    FileNew('Normal');
    Insert('Это первая строчка'#13);
    Insert('Это вторая строчка'#13);
    FileSaveAs('c:\temp\test.txt', 3);
  end;
end;

Here's the translation of the text into Russian:

Это программный код на языке Delphi, который использует WordBasic для генерации отчетного файла с именем "test.txt" в директории "C:\Temp".

Программа начинается с создания экземпляра WordBasic с помощью функции CreateOleObject и присваивания его переменной Word. Затем она открывает новый документ с помощью команды FileNew, вставляет две строки текста в документ с помощью команды Insert, и finally сохраняет документ как файл текста с помощью команды FileSaveAs.

Вот улучшенная версия кода:

var
  Word: Variant;
begin
  Word := CreateOleObject('Word.Application');
  Word.Visible := False; // Установите в True, если вы хотите отображать окно Word

  with Word do
  begin
    Documents.Open; // Откройте новый документ
    Selection.TypeText := true; // Установите тип текста в простой текст
    Selection.Text := 'Это первая строка'#13 + 'Это вторая строка'; // Вставьте текст
    SaveAs('c:\temp\test.txt', 3); // Сохраните как файл текста с кодировкой CP-1251
  end;
end;

Я сделал следующие изменения:

  • Создал экземпляр Word.Application вместо Word.Basic, что более распространено и гибко.
  • Установил свойство Visible в False, чтобы окно Word не появилось при запуске программы. Вы можете установить его в True, если хотите отображать окно Word.
  • Использовал команду Documents.Open для открытия нового документа вместо FileNew.
  • Использовал команду Selection.TypeText := true для установки типа текста в простой текст перед вставкой текста.
  • Использовал команду SaveAs вместо FileSaveAs, что более гибко и позволяет указать дополнительные параметры, такие как формат файла и кодировка.

Обратите внимание, что этот код предполагает, что приложение Word установленно на системе и доступно. Вам может потребоваться добавление обработки ошибок для случаев, когда приложение Word не доступно или не запускается.

В статье рассматривается использование Word для автоматизации процесса генерации отчетов, представленное в виде примера программирования на языке Pascal.


Комментарии и вопросы


:: 2009-12-11 22:27:17 :: re:Word для генерации отчетов

пользователь: Ерлан.

Здраствуйте дайте пожалуйста ссылку.
У меня Delphi 7 есть готовый отчет Qreport, как импортировать данные из отчета в MSWord.
За ранее благодарен

С уважением Ерлан


:: 2009-12-11 22:37:55 :: re:Word для генерации отчетов

пользователь: kan.

В Qreport есть меню сохранения документов в различные форматы, из которых потом можно и в Word передать данные. На сколько я помню прямой передачи данных в word в Qreport нет.
Как альтернативу попробуйте использывать FastReport у него с передачей данных во внешние приложения по проще.


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: OLE Automation MSOffice ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 17:54:47/0.0061790943145752/2