Russian Qt Forum
Ноябрь 13, 2019, 16:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Lime Report - Qt генератор отчетов  (Прочитано 22239 раз)
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« : Сентябрь 03, 2015, 12:56 »

  Вниманию общественности представляется Lime Report - кросс-платформенная С++ библиотека, написанная с использованием Qt framework и предназначенная для разработчиков программного обеспечения, которые хотят добавить в свое Qt приложение возможность формирования отчетов или печатных форм, генерируемых на основании шаблона.
  Дизайнер отчетов, входящий в состав этой библиотеки, позволит быстро и интуитивно-понятно сформировать шаблон печатной формы, который может быть сохранен в формате XML и использован в дальнейшем для генерации страниц отчета. Полученные таким образом страницы могут быть направлены на предварительный просмотр, в PDF файл или на принтер. В качестве источника данных поддерживается SQL база данных или данные, переданные из приложения с использованием интерфейса QAbstractTableModel. Также из приложения могут быть проинициализированы переменные, которые доступны в качестве параметров запросов к базе данных.
  Задача LimeReport - оснастить Ваше приложение функционально-богатым и в тоже время простым в использовании инструментом генерации отчетов, которым смогут пользоваться даже неискушенные в информационных технологиях пользователи.

Основные возможности:
Кросс-платформеность
Встроенный дизайнер отчетов
Встроенный предварительный просмотр
Внешнее или внутреннее подключение к источнику данных
Возможность передавать параметры для внутренних запросов к базе данных из внешнего приложения
Различные типы бэндов, позволяющие создать отчет любой сложности.
Верхний, нижний колонтитулы страницы.
Группировка данных (GroupHeader, GroupFooter, Subdetail, SubdetailHeader, SubdetailFooter)
Групповые функции (SUM, COUNT, AVG, MIN, MAX)
Элементы отчета : Текст, Геометрические фигуры(линия, эллипс, прямоугольник), Изображение
Возможность объединять элементы в горизонтальную группу
Возможность использования HTML для форматирования полей вывода
Возможность использования скриптов в для формирования выходных данных
Автоматическое вычисление высоты бэнда
Интеллектуальное рассечение бэнда с переносом данных на следующую страницу


http://limereport.ru
Демо, описание, фалы для скачивания: http://limereport.sourceforge.net/
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 858

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #1 : Сентябрь 07, 2015, 18:31 »

Цитировать
Задача LimeReport - оснастить Ваше приложение функционально-богатым и в тоже время простым в использовании инструментом генерации отчетов, которым смогут пользоваться даже неискушенные в информационных технологиях пользователи.
Не так уж он и прост.
Юзеры как следует помучаются составляя свои отчеты.
о вещь ценная Улыбающийся Спасибо )
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #2 : Октябрь 12, 2015, 11:44 »

Новая версия  LimeReport доступна для скачивания:
1. Добавлены хидер/футер для мастербэнда
2. Мультиселект объектов, выставление общих свойств для них
3. Окно редактора объекта по даблклику по наименованию в  дереве отчета .
4. Группировка данных в бэндах.
5. Лицензия LGPL.
Записан
AzazelloAV
Гость
« Ответ #3 : Октябрь 12, 2015, 15:53 »

Новая версия  LimeReport доступна для скачивания:
1. Добавлены хидер/футер для мастербэнда
2. Мультиселект объектов, выставление общих свойств для них
3. Окно редактора объекта по даблклику по наименованию в  дереве отчета .
4. Группировка данных в бэндах.
5. Лицензия LGPL.

Через сколько станет платный.
Записан
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #4 : Октябрь 13, 2015, 13:29 »

Не раньше, чем будет понимание того,что качественное исполнение того заслуживает.
На данный момент пока мало данных по тестированию. Либо все настолько хорошо, что народ просто пользуется и лень отзыв отписать, либо, наоборот, малоинтересно, и тут видятся 2 варианта:
1. Малоинтересно вообще.
2. Малоинтересно,потому что уже используются другие продукты.
Хотя данный проект значительной частью своей судьбы обязан именно отсутствием в широком доступе понятных, неглючных и доступных Qt репорт-енджинов.
Записан
Yegor
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #5 : Октябрь 19, 2015, 20:43 »

    Всем здравствуйте!

    Очень хорошая вещь!

    Кто пользовался дизайнером LimeReport, подскажите, пожалуйста, а как добавлять вторую страницу? А то при создании отчета по умолчанию одна страница. Я в нее накидал всякого своего, место на ней закончилось, а вторую страницу не знаю как добавить. Чтобы на вторую страницу продолжать кидать.

    Или тогда если это нельзя, есть ли способ сделать, чтобы Lime Report начал нумероваться не с первой страницы, а с боле поздней? То есть можно инициализировать самому системную переменную #PAGE ? (разбить отчет на несколько отдельных подотчетов, а потом распечатать их, и у них нумерация страниц как бы дополняла друг друга)
Записан
Yegor
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #6 : Октябрь 21, 2015, 17:49 »

Придумал, как начинать нумерацию страниц не с 1 а с более поздней.
Для этого в шаблон отчета добавляю пользовательскую переменную "START_PAGE" - это с какого числа начинать нумерацию. Инициализирую ее из своего приложения, или из дизайнера. А тем, где нужно выводить номер страницы в отчете, кидаю текстовый элемент, и в нем ввожу:
Код:
$S{ $V{#PAGE} + $V{START_PAGE} - 1}
Записан
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #7 : Октябрь 21, 2015, 18:23 »

День добрый!
Благодарим за использование!
Многостраничность по плану должна появиться в следующем релизе.
Если Вам нетрудно - просьба текущие и будущие пожелания (а, возможно, и впечатления о программе (хотя бы в 2-х словах)) оформлять на странице закачки limereport.sourceforge.net, разделы "Reviews" и "Discussion".
Активным тестировщикам и лицам, участвующим в улучшении качества продукта, - от нас бонусные преференции в использовании Подмигивающий
Записан
Yegor
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #8 : Октябрь 24, 2015, 10:50 »

Нашел 2 бага, некритичных.

Первый: если в окне редактирования "Datasource" составлять источник данных, который использует в себе пользовательские переменные, и в этом окне нажать кнопку "Preview", то появляется окно об ошибке. Пишет что неправильный SQL запрос (ошибка синтаксиса). Но этот datasource правильный, и тем не менее правильно работает.

И второй: если в дизайнере отредактировать значения пользовательских переменных, которые принимают участия в datasource, то они вступят в силу в предпросмотре в дизайнере ("Render Report") только после сохранения, закрытия дизайнера, потом открытия дизайнера. То есть в следующей сессии.

От себя хочу добавить, что была бы очень полезная функция для составления содержания (оглавления) отчета, где есть главы и номер страницы этой главы. И возможность одновременного открытия и редактирования нескольких документов (шаблонов). С возможностью копирования и вставки элементов (текстовых например) из одного документа во второй. А то если нужно создать второй шаблон, похожий на первый, приходится второй заново с нуля собирать.
« Последнее редактирование: Октябрь 24, 2015, 13:36 от Yegor » Записан
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #9 : Октябрь 27, 2015, 08:48 »

1. Баги пофиксим,спасибо.
2. Пожелания приняты к сведению,посмотрим,что можно будет сделать. Идентичные шаблоны (по опыту Улыбающийся) удобно делать так - открываете первый, пересохраняете во второй, выкидывая все лишнее (ну как вариант на данный момент,если у вас уже есть такая необходимость).
Записан
Yegor
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #10 : Октябрь 27, 2015, 21:15 »

Здравствуйте!

Обнаружил такую уязвимость:
Пользовательские переменные или значения, извлекаемые из master datasource, если они используются в datasource, то их лучше оборачивать sql конструкцией CAST(). Например: CAST($V{MyVar} AS UNSIGNED). Иначе в одних datasource они могут работать, в других нет. При оборачивании - все работают.

Обнаружил неприятный баг.

Если делать datasource, в котором используются пользовательские переменные, то наблюдается следующая закономерность:

 - Когда каждая пользовательская переменная встречается в пределах данного datasource только один раз, то ошибок нет.
 - А если пользовательская переменная встречается в пределах данного datasource два и более раз, то только последнее упоминание переменной в текущем datasource сохраняет правильное значение, а все предыдущие - обнуляются. Баг критический, поскольку в реальных приложениях (у меня такой случай), в одном datasource одна пользовательская переменная может прописываться несколько раз в одном sql выражении. Если такой шаблон просматривать (делать prewiew) из дизайнера - этот баг не проявляется, если делать preview из своей программы - проявляется.

Например, делаю простейший случай:

создаю datasource my_datasource
в нем:

SELECT
 $V{SensorId} AS MySensorId ,
 $V{YearNo} AS MyYearNo ,
 $V{WeekNo} AS WeekNo ;

Вывожу в шаблон:
$D{my_datasource.MySensorId},
$D{my_datasource.MyYearNo},
$D{my_datasource.WeekNo}

В preview:
75,
2014,
35

Здесь все правильно.
---------------------------------------------------

Если каждая переменная используется по 2 раза:

в datasource:
SELECT
 $V{SensorId} AS MySensorId ,
 $V{YearNo} AS MyYearNo ,
 $V{WeekNo} AS WeekNo ,
 $V{SensorId} AS MySensorId2 ,
 $V{YearNo} AS MyYearNo2 ,
 $V{WeekNo} AS WeekNo2 ;

в шаблоне:
$D{my_datasource.MySensorId},
$D{my_datasource.MyYearNo},
$D{my_datasource.WeekNo},
$D{my_datasource.MySensorId2},
$D{my_datasource.MyYearNo2},
$D{my_datasource.WeekNo2}

В preview:
0,
0,
0,
75,
2014,
35

----------------------------------------------------

Если каждая переменная используется по 3 раза:

в datasource:
SELECT
 $V{SensorId} AS MySensorId ,
 $V{YearNo} AS MyYearNo ,
 $V{WeekNo} AS WeekNo ,
 $V{SensorId} AS MySensorId2 ,
 $V{YearNo} AS MyYearNo2 ,
 $V{WeekNo} AS WeekNo2 ,
 $V{SensorId} AS MySensorId3 ,
 $V{YearNo} AS MyYearNo3 ,
 $V{WeekNo} AS WeekNo3 ;

в шаблоне:
$D{my_datasource.MySensorId},
$D{my_datasource.MyYearNo},
$D{my_datasource.WeekNo},
$D{my_datasource.MySensorId2},
$D{my_datasource.MyYearNo2},
$D{my_datasource.WeekNo2},
$D{my_datasource.MySensorId3},
$D{my_datasource.MyYearNo3},
$D{my_datasource.WeekNo3}

В preview:
0,
0,
0,
0,
0,
0,
75,
2014,
35
Записан
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #11 : Октябрь 28, 2015, 11:17 »

Доброго времени суток

Спасибо за активное выявление багов Улыбающийся
Баг с переменными  пофиксим в ближайшее время. Скажите вы Qt 4 или 5 используете ?
Записан
Yegor
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #12 : Октябрь 28, 2015, 14:18 »

Использую Qt 4.8.6
Записан
Yegor
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« Ответ #13 : Октябрь 29, 2015, 19:56 »

А в проекте предусматривается возможность экспорта отчетов в pdf?
Записан
TEHb
Новичок

Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #14 : Октябрь 30, 2015, 03:08 »

Да, буквально в на днях выложим с версию с возможность генерации отчета в pdf и исправленными переменными Улыбающийся
« Последнее редактирование: Октябрь 30, 2015, 03:11 от TEHb » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.