Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Разное > Исходники и статьи
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.08.2018, 15:28
F.o.x. F.o.x. вне форума
Прохожий
 
Регистрация: 16.06.2018
Сообщения: 14
Версия Delphi: 7, XE3
Репутация: 10
Сообщение Компонент TWordReport

1. Назначение

Компонент предназначен для автоматизации создания отчетов через MS Word.

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

2. Программные требования

- Borland Delphi или Embarcadero RAD Studio Delphi
- Microsoft Word 2000 и выше.

3. Инструкция по применению

3.1. Правила создания шаблонов

Шаблон в нашем случае - это документ MS Word (именно документ - т.е. файл *.doc, а не *.dot !), составленный по определенным правилам.

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

- Каждая секция должна быть отмечена закладкой с именем DataN, где N - целое число от 1 до 8.
Повторяться будет ТОЛЬКО то, что в диапазоне закладки, поэтому закладкой лучше отмечать всю строку документа целиком. Если секция используется
для повторения строки таблицы, то отмечать закладкой следует также всю строку документа, в которой находится эта строка таблицы.

- Существует три категории переменных шаблона:

1. переменные вне секций

Синтаксис объявления: #(ИмяСвободнойПеременной)
Способ определения значения: напрямую, методом SetValue

2. переменные секций

Синтаксис объявления: #(ИмяСекции(ИмяСчетчика).ИмяПеременной)
Способ определения значения: из текущей записи привязанного поля набора данных.

3. счетчики записей секций

Синтаксис объявления: #(ИмяСчетчика)
Объявление действительно только внутри секции.
Заменяется на текущий номер записи привязанного набора данных при отсутствии групп секций
или на номер записи в неразвывной последовательности при группировке секций.

- ИмяСвободнойПеременной - ненулевая последовательность латинских букв, цифр и точек (только букв, цифр и точек, никаких других знаков!). Регистр букв не важен.
- ИмяПеременной - ненулевая последовательность латинских букв и цифр. Регистр букв не важен.
- ИмяСчетчика - ненулевая последовательность латинских букв и цифр. Регистр букв не важен.
- ИмяСекции - ненулевая последовательность латинских букв и цифр. Регистр букв не важен.

- Максимальное количество переменных в секции - 16.
- Максимальное количество секций в документе - 8.
- Максимальное количество переменных вне секций - 2^31 - 1, то есть верхняя граница 32-битного целого типа.

Полное описание см. в разделе Документация, файл ОписаниеРазработки.txt

Загрузить исходники, документацию и пример применения с Яндекс.Диск

Последний раз редактировалось F.o.x., 25.04.2019 в 09:23.
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо F.o.x. за это полезное сообщение:
Admin (25.08.2018), TEKTON (02.10.2018)
  #2  
Старый 25.08.2018, 19:21
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,468
Версия Delphi: 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от F.o.x.
1. Назначение

Компонент предназначен для автоматизации создания отчетов через MS Word.

Как исходный шаблон, так и готовый отчет представляют собой обычные документы Word, что обеспечивает пользователю
самыме богатые возможности редактирования, предпросмотр и печать без каких-либо дополнительных средств...
Разместил в разделе с компонентами http://www.delphisources.ru/pages/components.php
Ответить с цитированием
  #3  
Старый 26.08.2018, 20:09
F.o.x. F.o.x. вне форума
Прохожий
 
Регистрация: 16.06.2018
Сообщения: 14
Версия Delphi: 7, XE3
Репутация: 10
Сообщение

Класс.

Если кто заметит какие баги или недочеты - пишите, чтобы я мог их поправить.

Вот думаю: убирать ли ограничение на количество секций, используя динамический массив? Кто-нибудь когда-нибудь видел отчет, где их было больше восьми?
Ответить с цитированием
  #4  
Старый 28.08.2018, 11:07
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,715
Репутация: 52347
По умолчанию

Задумка неплохая, но необходим инструментарий визуальной разработки шаблона. Пользователь должен видеть имена всех переменных не только в коде, но и в шаблоне. Нечто похожее реализовано в шаблонах отчетов Кронос Про. Вы можете скачать демку на их сайте и подсмотреть механику создания таких шаблонов. Оформите итог в визуальный компонент и это будет весьма полезная вещь.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 28.08.2018, 15:33
F.o.x. F.o.x. вне форума
Прохожий
 
Регистрация: 16.06.2018
Сообщения: 14
Версия Delphi: 7, XE3
Репутация: 10
Сообщение

То есть еще и шаблон через delphi создавать? Или подключать данные к шаблону во время разработки?
Хм. Интересная затея.

Но тут тоже не надо перебарщивать. Мы же не хотим, чтобы в итоге получилось пятое колесо?
Шаблон специально задумывался как простой документ Word, чтобы его легко было редактировать именно в Word, так что менять сам шаблон еще и из delphi - это уже явный перебор.

А в остальном согласен.

Последний раз редактировалось F.o.x., 28.08.2018 в 18:20.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2020

ВКонтакте   Facebook   Twitter