|
![]() |
#1 |
Участник
|
Вот так выглядит редактор отчетов в Fast Report
В строке ТОВАРНАЯ НАКЛАДНАЯ № [CTD_PageHeader1."CTDNumber"] от [CTD_PageHeader1."CTDDate"] в квадратных скобках заданы имя источника данных и после точки имя поля. Источники данных и значения полей передаются из Аксапты, для этого есть удобный интерфейс. Т.е можно чередовать обычный постоянный текст и переменные данные. Можно копировать элементы из одного шаблона в другой. Перемещать элементы пачками. Никаких запросов напрямую к базе данных Аксапты нет, все данные передаются из Аксапты в виде строки в формате XML. Разработчику не надо работать с XML на низком уровне, для заполнения данных есть отдельный класс, который предоставляет удобный интерфейс. Последний раз редактировалось Ace of Database; 11.10.2011 в 16:19. |
|
|
За это сообщение автора поблагодарили: gl00mie (10). |
![]() |
#2 |
Участник
|
Еще пара рисунков.
На 1-м рисунке предварительный просмотр накладной. Нажата кнопка "В файл". Просмотрщик позволяет сохранять файл в 4 форматах. (В PDF самый красивый внешний вид получается, на 100% соответсвующий реальности!). Мы отправляем клиентам по почте файлы в формате Excel. Никто до сих пор не жаловался. На 2-м рисунке внешний вид файла в формате Excel. Показана часть данных в целях конфиденциальности. |
|
![]() |
#3 |
Участник
|
Кнопку "В файл" можно программно спрятать из Аксапты, если есть опасения, что пользователь сохранит документ в файл и потом отредактирует его.
|
|
![]() |
#4 |
Участник
|
Для программистов.
При взаимодействии с Fast Report никаких Active-X объектов не используется. Вызывается либо DLL-библиотека либо web-интерфейс через отправку веб-запроса. DLL-библиотека устанавливается автоматически при первом запуске клиента Аксапты (реализовано через класс SysFileDeploymentFile) |
|
![]() |
#5 |
Участник
|
По поводу скорости разработки печатных форм с использованием данного инструмента.
1. Заморачиваться с XML и вызовами DLL не надо. Все делает специальный класс. Достаточно в нем вызвать метод printReport(). С точки зрения разработчика никаких технических заморочек нет, только работа с предметной областью. Заполнение данными конкретного поля выглядит так: X++: zReport.addValue("CTD_ReportTitle1", "CReceiverPhone", custTableReceiver.Phone); 2. Если вам не надо использовать настраиваемое количество копий и включать ваш отчет в комплект, то можно разработать свой класс с нуля и вызывать в нем класс, который заполняет XML данными и выводит отчет на экран либо на принтер. 3. Если вам надо использовать настраиваемое количество копий и\или включать ваш отчет в комплект, то нужно свой новый класс унаследовать от одного базового класса, и перекрыть в нем методы, которые выводят данные в поля источников данных отчета и задают название шаблона. В комлекте документов нужно указать код своего нового класса, чтобы он начал вызываться вместе с классами, отвечающими за печать других документов из комплекта. |
|
Теги |
как правильно, накладная, печатная форма, полезное, счет-фактура |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|