1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hackenhu-EasyReport

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

EasyReport

A simple and easy to use Web Report System for java

EasyReport — это простой и удобный инструмент для создания веб-отчётов на Java. Он преобразует структуру строк и столбцов SQL-запросов в HTML-таблицы (Table) и поддерживает функции объединения ячеек (RowSpan) и (ColSpan). Также он поддерживает экспорт отчётов в Excel, отображение графиков и фиксированные заголовки таблиц и левые столбцы.
Присоединяйтесь к QQ группе для общения: (365582678)

Примечание: Этот проект является работой автора @TomDeng на GitHub. На OpenSourceChina он был перенесён только автором, а не самим автором проекта. Проект предназначен для обучения и использования коллегами-техниками!

Таблица содержания

1. Разработка среды (Development Environment)

[jdk1.8]
[maven3]
[eclipsejee-luna]
[tomcat7+]
[MySQL5+]

2. Установка и развёртывание (Installation & Deployment)

2.1 Из исходного кода (From Source Code)

Сначала убедитесь, что установлены JDK1.8, Maven3, MySQL5+ и настроены репозитории Maven. Затем выполните следующие действия:
step1: git clone https://github.com/xianrendzw/EasyReport.git
step2: Создайте базу данных с именем easy_report в MySQL и распакуйте yourgitrepository/EasyReport/docs/db/mysql.zip. Выполните easy_report_mysql.sql для создания структуры таблицы и импорта исходных данных
step3: cd yourgitrepository/EasyReport/easyreport-web
step4: Измените src\main\resources${env}\resource.properties, чтобы настроить строку подключения к базе данных, IP, пользователя и пароль
step5: mvn clean package -Dskiptest=true -P${env} (переменная ${env}: dev для разработки, prod для производства, test для тестирования)
step6: После шага 4 будет создан файл easyreport-web.war в каталоге target. Затем этот файл можно развернуть в контейнерах Tomcat, JBoss, Jetty и других.

2.2 Из пакета выпуска (From Release Packages)

Сначала установите JRE1.8 или JDK1.8 и MySQL5+. Затем выполните следующие шаги:
step1: Загрузите файл war напрямую из релизов
step2: В MySQL создайте базу данных с именем easy_report. Распакуйте mysql.zip, затем выполните easy_report_mysql.sql, чтобы создать структуру таблицы и импортировать исходные данные
step3: Измените файл war в папке WEB-INF\classes\resource.properties и настройте строку подключения к базе данных, IP, пользователя и пароль
step4: Затем разверните файл war в контейнере Tomcat, JBoss, Jetty или другом.

2.3 Развёртывание программы запланированных задач (Scheduled Task Deamon)

Иногда необходимо отправлять отчёты по электронной почте пользователям в соответствии с определённым расписанием (ежедневно, ежемесячно, ежеквартально и т. д.). Для этого требуется программа планирования задач. Существует множество программ планирования задач (Linux: at, crontab; Windows: Планировщик заданий), и этот инструмент предоставляет простую программу планирования.
Примечание: Эта программа не является обязательной. Если вам не нужно отправлять отчёты по расписанию, вы можете не развёртывать эту программу. Конкретные шаги установки и развёртывания следующие:
step1: cd yourgitrepository/EasyReport/easyreport-scheduler
step2: Измените src\main\resources${env}\resource.properties для настройки строки подключения к базе данных, пользователя и пароля
step3: mvn clean package -P${env} (переменная ${env}: dev для разработки, prod для производства, test для тестирования)
step4: После выполнения шага 3 в каталоге target будет создан файл easyreport-scheduler.jar. В Linux выполните следующую команду оболочки:

nohup java -jar easyreport-scheduler.jar >log.log 2>&1 &

3. Руководство по использованию (User Guide)

3.1 Предварительные знания (Prerequisites)

Проще говоря, отчёт представляет собой формат отображения данных, такой как таблица или график. Это важная часть визуализации данных. Особенно в эпоху больших данных отчёты нужны повсюду. Прежде чем использовать этот инструмент, вы должны понять концепции хранилища данных, измерения, фактов и так далее, что может помочь вам создавать отчёты.

Этот инструмент просто извлекает данные из базы данных (MySQL, Oracle, SQLServer, HBase и т.д.) и преобразует их в формат HTML-таблиц. Он не поддерживает сложные функции OLAP, такие как CUBE, Drill-down и Slice.

3.2 Настройка источника данных (DataSource Configuration)

Перед созданием отчёта необходимо настроить источник данных. Этот инструмент поддерживает только один источник данных (т.е. базу данных).![ds-1]

3.3 Управление конфигурацией (Configuration)

Управление конфигурацией в основном используется для сопоставления некоторых часто используемых имён столбцов с соответствующими китайскими описаниями при создании отчётов. Например: dt, date (дата), title (заголовок) и т.д. ![config-1]

3.4 Дизайн отчёта (Reporting Design)

Обычно после успешной настройки источника данных можно приступать к дизайну отчёта. Дизайн отчёта в основном состоит из двух этапов: базовые настройки и настройка параметров запроса. Базовые настройки должны быть сохранены перед настройкой параметров запроса, которая является необязательной и зависит от намерений дизайнера отчёта.

3.4.1 Базовые настройки (Basic Settings) Основные настройки отчёта состоят из четырёх частей:

  • список древовидной структуры отчёта;
  • основные свойства отчёта;
  • SQL-запрос для получения данных;
  • конфигурация столбцов метаданных.

Перед тем как приступить к разработке отчёта, необходимо ознакомиться с некоторыми терминами. Из концепции хранилища данных мы знаем о понятиях измерения и меры. Фактически результат запроса SQL — это двумерная таблица, состоящая из строк и столбцов. При статистическом анализе некоторые столбцы называются столбцами измерений, а некоторые — столбцами мер. Иногда в таблице фактов есть несколько столбцов измерений и мер, но результаты SQL-запроса могут быть представлены только в виде двумерной таблицы, которая не может быть иерархизирована, а способ отображения фиксирован и не может гибко изменяться. Это создаёт определённые неудобства при наблюдении и анализе данных, поэтому некоторые инструменты отчётов решают эту проблему.

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

  1. Столбцы измерений:
    • столбцы макета измерений;
    • общие столбцы измерений.
  2. Столбцы мер:
    • статистические столбцы;
    • расчётные столбцы.

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

Если столбец макета измерений отображается вертикально, то его содержимое будет отображаться слева в заголовке таблицы при построении отчёта, а содержимое столбцов общих измерений — в заголовке.

После ознакомления с основными знаниями можно перейти к рассмотрению основного процесса разработки отчёта:

  1. Создание списка древовидной структуры отчётов.
  2. Нажмите «Создать корневой узел» или создайте дочерний узел в списке деревьев.
  3. Выберите указанный каталог, установите основную информацию, такую как имя отчёта, источник данных, макет и статистический столбец.
  4. Введите SQL-запрос отчёта.
  5. Выполните SQL-запрос и получите информацию о столбцах отчёта.
  6. Настройте столбцы отчёта.
  7. Сохраните основную информацию о настройках в базе данных после успешного добавления.
  8. После сохранения можно дважды щёлкнуть имя узла отчёта в списке деревьев или нажать кнопку предварительного просмотра отчёта для предварительного просмотра.
  9. Если вы считаете, что отображение отчёта недостаточно удобно, вы можете изменить макет столбцов измерений и статистических столбцов, чтобы изменить отображение отчёта.
  10. На рисунке показан результат предварительного просмотра после изменения конфигурации, где столбец даты является столбцом макета измерений и отображается горизонтально. Мы можем внести дополнительные изменения в конфигурацию, чтобы сделать отображение более наглядным.

3.4.2 Запрос параметров (Query Parameter)

Иногда отчёт должен быть динамически сгенерирован в соответствии с заданными условиями, например, для просмотра качества воздуха в разных городах. В этом случае мне нужно создать переменную запроса параметра.

Существует четыре типа элементов управления отображением параметров запроса: раскрывающийся список, множественный выбор, флажок и текстовое поле. Рисунок 1 показывает список параметров запроса. Когда элемент управления параметрами запроса представляет собой раскрывающийся список или множественный выбор, существует два различных способа предоставления содержимого:

Источник содержимого Содержимое Примечание
SQL-оператор select col1 as name,col2 as text from table ... Содержит только две колонки, и имена колонок должны быть name и text. Значение name в раскрывающемся списке соответствует атрибуту value, а значение text — атрибуту text.
Текстовая строка name1,text1|name2,text2|... или name1|name2|... Несколько значений разделяются символом '|', если значения name и text совпадают, можно выбрать только одно значение и разделить их символом '|'.

3.4.3 Встроенные переменные и функции (Build-in variables & functions)

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

Некоторые SQL-операторы отчётов очень сложны, иногда требуется динамическое создание в соответствии с параметрами или требуется использовать шаблонный движок (velocity), поэтому необходимы некоторые функции, которые можно применять в шаблоне. Эти функции называются встроенными функциями.

Встроенные переменные (с учётом регистра):

Имя переменной Описание Возвращаемое значение
startTime Дата начала 2015-02-04 (по умолчанию семь дней до конечной даты, которую можно изменить в настройках отображения)
endTime Конечная дата 2015-02-10 (по умолчанию текущая дата)
intStartTime Целочисленная дата начала 20150204
intEndTime Целочисванная конечная дата 20150210
utcStartTime UTC дата начала 2015-02-04 (UTC дата, Китай находится в часовом поясе UTC+8)
utcEndTime UTC конечная дата 2015-02-10 (UTC дата)
utcIntStartTime UTC целочисленная дата начала 20150204
utcIntEndTime UTC целочисванная конечная дата 20150204

Встроенные функции:

  • Функции даты.
  • Строковые функции, обратитесь к классу org.apache.commons.lang3.StringUtils.

3.4.4 Отображение диаграммы (Charting)

Нажмите кнопку «Показать диаграмму» отчёта, появится следующее окно: Если вы хотите сравнить данные нескольких городов, вы также можете использовать сравнение: Если статистическая колонка имеет только одну колонку, диаграмма может поддерживать одновременное отображение двух измерений:

3.5 Настройка запланированных задач (Scheduled Task Configruation)

3.6 Примеры (Examples)

Примеры используют данные с сайтов pm25.in и aqistudy. Если вам нужно запустить примеры отчётов, вам потребуется создать базу данных с именем china_weather_air в MySQL, затем распаковать yourgitrepository/EasyReport/docs/db/mysql.zip и выполнить файл mysql_china_weather_air.sql для создания структуры таблицы и импорта исходных данных.

  1. Самый простой отчёт напрямую соответствует структуре двумерной таблицы базы данных. Конфигурация: Отчёт:
  2. Отчёт со встроенными переменными и параметрами запроса: Конфигурация: Запрос параметров: Отчёт: a. Макет столбцов отображается горизонтально, статистические столбцы отображаются горизонтально. b. Макет столбцов отображается вертикально, статистические столбцы отображаются горизонтально. c. Макет столбцов отображается горизонтально, статистические столбцы отображаются вертикально. d. Макет столбцов отображается вертикально, статистические столбцы отображаются вертикально.
  3. Отчёт с несколькими макетами столбцов: Конфигурация: Отчёт: a. Макет столбцов отображается горизонтально, статистические столбцы отображаются горизонтально. b. Макет столбцов отображается вертикально, статистические столбцы отображаются горизонтально. c. Макет столбцов отображается горизонтально, статистические столбцы отображаются вертикально. d. Макет столбцов отображается вертикально, статистические столбцы отображаются вертикально.
  4. Отчёт со статистическими колонками по выбору: Конфигурация: Отчёт:
  5. Сортировка столбцов отчёта: Конфигурация: Отчёт:
  6. Отображение столбцов в процентах: Конфигурация: Отчёт:
  7. Объединение столбцов слева в отчёте: До объединения: После объединения:

3.7 Ссылки (Referrence Links)

  • Шаблонный механизм, используемый в SQL-отчётах: velocity.
  • Механизм выражений, используемый в расчётных столбцах: aviator.
  • Источники данных примеров: pm25.in, aqistudy.
  • Диаграммные движки: echarts, highcharts.
  • Плагины JavaScript для таблиц и сортировки: tablesorter, DataTables.

4. Разработчики (For Developers)

Общая архитектура системы показана ниже:

4.1 Интерфейс движка отчётов (Reporting Engine API)

4.2 Разработка пользовательских отчётов (Customsized Reporting Development) К сожалению, без дополнительной информации о содержании запроса, я не могу определить основной язык текста и перевести его. Однако, если вы предоставите мне более подробную информацию о запросе, я постараюсь помочь вам с переводом. [ex-6.png]: https://raw.githubusercontent.com/xianrendzw/EasyReport/master/docs/assets/imgs/ex-6.png

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Изи репорт — это простая и удобная веб-система отчётов для Java. Её основная функция — преобразовывать структуру строк и столбцов SQL-запроса в HTML-таблицу (table). Система поддерживает возможности row span (обтекание текстом нескольких ячеек по вертикали) и column span (обтекание ячеек текстом по горизонтали). Также она позволяет экспортироват... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hackenhu-EasyReport.git
git@api.gitlife.ru:oschina-mirror/hackenhu-EasyReport.git
oschina-mirror
hackenhu-EasyReport
hackenhu-EasyReport
master