Welcome, Guest. Please login or register.
Did you miss your activation email?

Recent Posts

Pages: [1] 2 3 ... 10
1
Спасибо.
2
если задача именно из кода сделать, то это вариант 1, через callbackDataSource
3
Я понимаю, что поставил условие "where id =", как раз один вопрос и состоит как модели связать программно(из кода), а не через дизайнер. Просто получается из дизайнера можно связать модели, а программно нет. 
Если использовать 2 вариант, как тогда из кода передать настройки подключения к БД, к сожалению не нашел как перенастроить. Потому что отчеты строиться из разных баз, но с одинаковой структурой. 
4
Хай!
Несколько неверно делаешь, смотри что происходит:
Ты сделал модели, отфильтровал (с помощью where id=..) твой customers и потом отдал модели в LR.
У тебя в отчете будут "замороженная" в моменте модель, с тем фильтром, который был применен на момент передачи ее (модели) в отчет.

Что нужно:
2 варианта:

1. использовать callBackDataSource - в docs/Руководство пользователя.pdf довольно подробно есть про это.
2. Твою customers модель полноценно создать в самом отчете LR, как subdetail. См. вкладку Datasources в дизайнере отчетов.
5
Discussion | Обсуждение / Вопрос по работе с SubDetailBand
« Last post by KorSA on April 05, 2024, 09:51:21 AM »
Добрый день.
Мне необходимо отобразить данные из двух таблиц, одна и которой является подчиненной.
Одна таблица содержит  поле "id"(уникальный ключ) и какой набор данных, вторая таблица поле "id"(не уникальный ключ). 
Пример:
tab1
id   Fiel_1   Fiel_2
1   "поле1"   "поле2"
2   "поле3"   "поле4"

tab2
id   Fiel_1   
1   "значение1" 
1   "значение2"
2   "значение3" 

В результате должен получиться отчет
   "поле1"   "поле2"
           "значение1"
           "значение2"
   "поле3"   "поле4"
           "значение3"

В дизайнере отчета поместил DataBand и к нему SubDetailBand. В DataBand  поместил модель tab1, в SubDetailBand поместил tab2.
Добавление данных происходит через внешний источник данных.

Quote
------
std::unique_ptr<QSqlQuery> _query;
std::unique_ptr<QSqlQuery> _query_sub;
QSqlDatabase _db;
------
_query = std::make_unique<QSqlQuery>( _db );
_query->prepare( "select * from tab1");
_query->exec();
QSqlQueryModel* customersModel = new QSqlQueryModel();
customersModel->setQuery( *_query );                  
_reportEngine->dataManager()->addModel( "tab1", customersModel, true );
_query_sub = std::make_unique<QSqlQuery>(_db);
_query_sub->prepare( "select * from tab2 where tab2.id == "$D{tab1.id}");
_query_sub->exec();
QSqlQueryModel* customersModelSub = new QSqlQueryModel();
customersModelSub->setQuery(*_query_sub);
_reportEngine->dataManager()->addModel("tab2", customersModelSub, false);      

В результате в готовом отчете
   "поле1"   "поле2"           
   "поле3"   "поле4"

Как программно у модели tab2 сделать subdetail или есть другие варианты? 
6
Discussion | Обсуждение / Re: Strip trailing zeros from a number
« Last post by Subst on March 19, 2024, 03:59:45 PM »
The "common" way to format as you want in the script using

Code: [Select]
$S{
  var value=1.000004;
  var approx=numberFormat(value,"f",4);
  while (approx.charAt(approx.length-1)=='0' || approx.charAt(approx.length-1)=='.')
    approx=approx.slice(0,-1);
  approx;
  }
7
Discussion | Обсуждение / Strip trailing zeros from a number
« Last post by JeremieBourque on March 18, 2024, 06:43:10 PM »
Hello,

Thank you for creating LimeReport, it is very useful.

I was wondering if it is possible to format a number to a certain precision, but also strip the trailing zeros.

Examples with a precision of 4:
  • 1.0000 -> 1
  • 1.0001 -> 1.0001
  • 1.0100 -> 1.01
  • 1.00001 -> 1

Thanks
8
Requests | Пожелания / Re: Documentation of LDR's script language
« Last post by JeremieBourque on March 18, 2024, 05:55:45 PM »
Hello,

Did you end up finding any information?

Thanks
9
не рендерить
у страницы есть свойство "notPrintIfEmpty" (в локализации поищи, как обзывается, смысл понятен)

соответственно, не печатать, если пусто.
Далее скриптами ли, содержимым, добиться, чтобы на странице ничего не было - это путь в лоб.

Иной подход попробовать:
сделать кол-бэк функцию (в скриптах) и попробовать поиграться там. Примерно, так

Code: [Select]
page_1.beforeRender.connect(beforePrint);
function beforePrint()
  {
  page_1.printable=false;
  page_1.isVisible=false;
  }

10
Отчет состоит из нескольких страниц Reporpage1, Reporpage2, ...
В зависимости от условий нужно убрать одну или несколько страниц из результата рендеринга.
Pages: [1] 2 3 ... 10