[ОТВЕТИТЬ]
Опции темы
12.12.2014 23:37  
FinSoft
В программе ФинСофт:КупецЪ имеется набор средств для создания и настройки бланков печатных форм на стороне пользователя. Ниже приводится небольшой их обзор.

Встроенные диалоговые окна с итоговыми данными.



Базовый функционал программы использует технологию оформления итоговых данных в виде полноправных оконных диалогов, внешне не отличающихся от диалогов работы со справочниками или документами. В этих окнах можно работать в стандартном многооконном контексте - вызывать детализирующие формы, вводить какие-то данные, создавать документы на основании и т.п. Для печати используются кнопки "Печать" и "Excel". Могут также быть подключены различные дополнительные формы (на приведенном скриншоте они выводятся в виде меню при нажатии на кнопку "Формы").
Особенность кнопок "Печать" и "Excel" заключается в том, что они являются специализированными контролами для обработки соответствующей таблицы, позволяющими печатать или экспортировать данные в том виде, как они видны на экране. У таблицы можно задать ширину колонок и скрыть отдельные колонки. Программа запоминает вид таблицы, а когда надо, позволяет сохранять набор видов и переключаться между ними.
Процедура печати табличной формы автоматически выполняет автопереносы длинных строк, разворот листов с портрета на ландшафт, горизонтальное разбиение широких таблиц на листы.
Экспорт в формат Excel использует библиотеку с открытым кодом для прямого формирования xls-файлов (biff 4). Наличие на компьютере пользователя MS Excel не требуется, а с полученным файлом можно работать как из MS Office, так и из OpenOffice.
 
12.12.2014 23:43  
FinSoft
ExcelReport.
Одна из наиболее востребованных библиотек, с помощью которой формируются большинство дополнительных табличных отчетов, в том числе практически все заказные отчеты. ExcelReport является расширением упомянутой выше библиотеки для прямой записи в xls-файлы, с помощью которого можно выполнять дизайн бланка непосредственно в MS Excel. Внешне форма бланка выглядит так:



Дополнительно к бланку в Excel-формате создается так называемый файл разметки, который имеет следующий вид:



В заголовке файла разметки указывается имя xls-файла, реквизиты для отображения в дереве отчетов, наименования и координаты секций (строка, колонка верхней левой ячейки, количество строк и колонок в секции). Программа после настройки сканирует xls-форму и дописывает необходимую информацию в файл разметки. В дальнейшем при построении отчета используется только файл разметки, наличие Excel на компьютере пользователя не требуется. Все это позволяет очень быстро создавать табличные формы, а код вывода отчета очень простой и компактный (в терминах "вывести секцию" и "добавить секцию по горизонтали").

Имеется вторая реинкорнация ExcelReport. В ней, кроме вывода в xls-файл, можно динамически формировать графический образ и выводить на экран/печать в виде стандартных для системы wmf-файлов. В этом случае для вывода на просмотр или печать не требуется наличие сторонней программы. А редактируемая excel-форма получается без искажений, так как изначально все настраивалось в табличном виде. Диалог перед выводом на печать выглядит следующим образом:



Так выглядит полученная графическая форма при просмотре на экране:



Так выглядит эта же форма в Excel:

 
12.12.2014 23:54  
FinSoft
Графические дизайнеры FRB и ФинСофт:Дизайнер бланков.
Обе эти библиотеки используются для создания и настройки графических печатных форм первичных документов. FRB является единственной закрытой библиотекой от стороннего разработчика. Она используется давно, на ней создано более 200 различных печатных форм. ФинСофт:Дизайнер бланков является собственной разработкой и предназначен для постепенной замены FRB. Он имеет более функциональный интерфейс и различные динамические преобразования, но пока находится в статусе беты. Бланки FRB можно автоматически импортировать в бланки ФинСофт:Дизайнер. Вот так выглядит диалог настройки бланков в FRB:



Так выглядит ФинСофт:Дизайнер:



А это диалог работы со словарем в ФинСофт:Дизайнере:



Хотя оба дизайнера внешне похожи, они используют разные принципы отображения информации и организацию работы с секциями. В частности, в FRB используется механизм динамического создания контролов, привязанных к секциям, в ФинСофт:Дизайнер используется отрисовка через графические примитивные функции, а секции накладываются на бланк сверху.
Оба дизайнера позволяют создавать не только графический образ печатной формы, но и редактируемую форму в формате rtf, используя прямой вывод в файл.
Попутно надо обратить внимание на порядок хранения бланков печатных форм и отчетов. Стандартный набор форм хранится в каталоге reports, дополнительные формы хранятся в каталоге reportse, пользовательские формы в каталоге reportsu. Если в каталоге пользовательских форм создать форму с тем-же именем файла, что и стандартная форма, то она автоматически перекроет стандартную.
 
12.12.2014 23:56  
FinSoft
Формы RTF.
В ряде случаев требуется использование в качестве шаблонов файлов MS Word. Обычно это тексты различных договоров и т.п., в которые пользователь может периодически вносить изменения.
В Купце такие формы можно выводить либо с помощью бесплатной утилиты RepoRTF, либо с помощью своей собственной библиотеки. Вот так выглядит фрагмент RTF-шаблона.



В процессе формирования вместо переменных внутри решеток подставляются значения из базы данных или результаты обработки формул. Секции обозначаются с помощью специальных конструкций вида #D1#-#1D#. Чтобы отделить настройку форм, используется специальный текстовый файл с формулами, который имеет то же имя, что и rtf-шаблон.
 
12.12.2014 23:57  
FinSoft
Текстовые формы.
Очень редко, но все же бывают ситуации, когда требуется печать на старых
матричных принтерах. Для этого случая используются текстовые шаблоны,
внешний вид которых показан ниже.

 
13.12.2014 10:51  
AndreyZh
Привет Вячеслав!

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

Есть только маленький вопрос, для расширения кругозора - часто ли пользователи, не привлекая тебя создают/правят отчеты/документы? Пытался и у себя с этим экспериментировать, обучать user, но получал стандартный ответ: нафига, если ты программист?
 
13.12.2014 14:24  
FinSoft
Привет, Андрей.
Конечные пользователи крайне редко что-то настраивают. Все описанные инструменты разрабатывались для собственных нужд. Поскольку у меня бизнес - это техническая поддержка пользователей, важно минимизировать затраты. В случае с печатными формами гораздо сложнее обойтись только параметрической настройкой по сравнению с экранными формами.
 
"Спасибо" FinSoft от:
 
Опции темы



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

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.