Что использовать для автоматической генерации сложных отчетов?

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

Сейчас это сделано в виде MS Word-шаблонов. С помощью спец. тегов в шаблоне размечены области куда необходимо вставлять данные. Программно открывается шаблон, парсится, вставляются данные (все через OLE), исходя из задания, и формируется отчет.

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

Большинство самых популярных шаблонов мы сформировали для пользователей сами и они с ними работают. Но часто возникает ситуация, когда пользователю необходимо изменить форму шаблона или вообще создать новый. И тут возникают проблемы, ибо задача для неподготовленного человека довольно сложная, а мануал читать люди не хотят. Плюс, большие отчеты формируются крайне долго (например, с содержанием больших таблиц), причина - OLE.
По сему, вопросы:

1) Какой формат выбрать для парсинга шаблона? Что-то мне подсказывает гораздо удобнее и быстрее будет парсить текстовые форматы (html, xml, json ...). Никогда не работал с latex, возможно, он подойдет. Формат нужен такой чтобы пользователь мог после формирования отчета, его открыть, поправить и распечатать.
2) Нужна какая-то вьюшка для пользователя для удобного формирования шаблона. Нажал на кнопульку создалась таблица, указал что в нее выгружаем, например, договора.
3) Может есть какие-то готовые решения формирования отчета, но не уверен, что они нам подойдут. Объясню. Например, нашелся в шаблоне спец. тег, я его выдираю и отправляю запрос на сервис, сервис возвращает результат, я результат вставляю. Т.е. есть некоторый "proxy" между парсером и данными (он и возвращает данные по запросу).

Буду признателен за советы.
  • Вопрос задан
  • 827 просмотров
Пригласить эксперта
Ответы на вопрос 5
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
Не совсем понял некоторые ваши требования.
Но для отчетов, да еще и .Net отлично подойдет SSRS - MS SQL Reporting Services.
Есть и превью, и в программу можно встроить, есть экспорт в любые форматы - PDF, Word, Excel.
Можно использовать поставляемый ReportServer (Web Portal) или сделать свои web-страницу/программу.

Непонятно про "парсинг шаблонов" - вы про данные или про внещний вид отчета?
Данные в SSRS можно брать из любой БД или подставлять программно. Внешний вид формируется заранее.
Ответ написан
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
1) Какой формат выбрать для парсинга шаблона?
В ентерпрайзе стоит выбрать XML. Html это формат отображения документа, а не его представления. Json больше подходит под простые нужды, вам не подойдет, потому что я опишу в пункте 3

2) а)XML преобразовываете в html или в openoffice формат (это велосипед). Современные форматы docx и xlsx это заархивированные xml (возьмите любой документ смените расширение на zip и посмотрите).
б) Также можете вбить в гугле "generate reports from XML", "c++ library for reports from xml" или порыться на гитхабе.

3) Мне кажется здесь идет речь про XLST трансформацию.
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Пробовали SSRS ?
Ответ написан
nki
@nki
bezkart.ru готовая система лояльности
Мне очень нравится как реализована работа с отчетами в 1С.
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Могу на выбор предложить MS Access/Excel в дополнение к SSRS,
имея подключение к серверу форму и запросы можно нарисовать как угодно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы