Дмитрий Левиков
Это краткий обзор средств построения отчётов для Java-приложений. Я попытался получить демо-версию каждого из них и построить отчёт определеного вида, связав его с программой на языке Java. Если Вам известно что-либо помимо того, что я тут понаписал, напишите мне, ваши добавления будут кстати. И так...
Enterprise Reports ( TM ) for Java
Краткое описание:
Продукт полностью реализован на Java. Источниками данных могут быть JDBC-совместимые источники, Java-классы и EJB.
Возможности:
Extract Data - ERW может получать данные из традиционной базы данных или из приложения. ERW использует JDBC или ODBC для получения данных из БД. Для данных приложения, ERW предоставляет удобный механизм для определения структур классов приложения и получения данных через них. Предоставления данных из приложения быстрее, масштабируемее и идеально подходит для распределённых приложений.
Analyze Data - ERW предоставляет такие возможности как: много секционность, перекрестные таблицы (crosstabs), диаграммы/графики, формулы и Содержание (Table of Contents). ERW Report Engine позволяет строить отчеты в реальном времени
Format Data - ERW предоставляет простой в использовании дизайнер отчётов с широким набором средст форматирования как шрифты, цвета, выравнивание, перенос, разрыв страниц, перекрывающиеся компоненты и т.д.
Output Data - ERW может экспортировать любой отчёт в PDF, HTML, Hi-Res HTML, или ASCII-CSV
| Цены | |
| Версия | Цена |
| ERW 4.0 Pro (Includes both AWT & Swing versions) | $495 |
| Подписка на год | $995 |
| Limited Free Runtime (100 копий) | Прилагается |
URL: http://www.enterprisesoft.com/Products/ReportWriter.html
Примечание:
Из опробованных продуктов Enterprise Reports имеет наиболее удобный дизайнер отчётов с очень богатым набором функций. Размещение и выравнивание компонентов сделано очень удобно. Да и сам по себе дизайнер красивый. Имеется API для встраивания в приложение. Поддерживается передача параметров. Текущая версия содержит много ошибок, поэтому часть заявленных функций проверить не удалось. Кроме того, имеются серьёзные проблемы с созданием русскоязычных отчётов. Сохранять шаблоны русскоязычных отчетов можно только с использованием UTF-8. Это само по себе нормально. Только для сохранения отчётов в различных форматах ребята используются конструкции типа:
if(mode == 1)
dos.writeBytes(s); !!
else
dos.writeUTF(s);
Так что сохранять шаблон отчёта в UTF-8 и печатать его на принтер ещё можно. Но вот записать его в формате PDF или HTML с русскими буквами не получится. Версия 4.02 является релизом, но вот только ошибок в ней столько, что хватит на пару альфа-версий. Нарисовать сложный отчёт в этом продукте запросто, а вот заставить его работать оказалось непросто. Зачем нужно конфигурирование?
Профессиональным программистам этот вопрос покажется странным. У начинающих же часто наблюдается явное непонимание важности этой возможности. При этом получается программа, похожая на каменную глыбу с высечеными на ней надписями - если захочется изменить надпись, то придётся делать новый камень.
Есть и другая крайность - когда практически всё выносится в настройки. Такие программы напоминают разлитую жидкость, а чтобы заставить её работать надо прочитать талмуд описания и настроить несколько сотен параметров, к тому же часто взаимосвязанных противоестественным образом.
Как всегда нужно найти золотую середину - с одной стороны надо постараться удовлетворить различные прихоти пользователей, с другой стороны нужно сделать так, чтобы большинству пользователей ничего настраивать не пришлось.
Что именно стоит настраивать.
Вот типичные примеры данных, которые часто стоит вынести в настройки:
Всевозможные каталоги. Например - пути до файлов данных, каталоги импорта/экспорта.
Сетевые настройки. Имена серверов, IP-адреса, порты, имена и пароли для автоматического доступа.
Настройки баз данных. Имена JDBC-драйверов, URL базы данных, SQL-запросы, зависимые от используемой БД.
Настройки внешнего вида. Настройки Swing-овского Look & Feel-а, используемые шрифты, размеры, цвета, настройки горячих клавиш.
Прочее... Любые другие вещи, которые могут менятся от пользователя к пользователю.
Например, довольно часто встречаемая ситуация - настройка соединения с БД. Начинающие программисты часто пишут нечто подобное:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:MyDatabase",user,password);
Таким образом программа привязывается к конкретному JDBC драйверу. Использовать другой драйвер, например заменить мост на RMI-прокси или, в случае Oracle, OCI на Thin без перекомпиляции уже нельзя.
Способы хранения настроек.
В объектном программировании всё представляется в виде объектов. Настройки лучше всего при этом рассматривать как свойства определённых объектов, которые хранятся в файлах конфигураций. То, каким образом эти настройки считываются и записываются тесно взаимосвязано с форматом файлов и выбраной стратегией админи
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.