LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: Subst on May 12, 2016, 07:21:25 PM

Title: хидеры и футеры
Post by: Subst on May 12, 2016, 07:21:25 PM
Алекс, вот возникла ситуация, когда в хидерах и футерах субдетейл бандах и дата бэндах таки нужно количество колонок и их порядок заполнения использовать.
Уже следуя традиции посмотрел код. Достаточно всего-лищь добавить property в соответсвующие классы в файлах lrdataband.h и lrsubdetailband.h. У себя то сделал конечно, предлагаю в релиз внести.

Ситуацию могу обрисовать, если нужно будет
Title: Re: хидеры и футеры
Post by: Arin Alex on May 14, 2016, 12:52:21 PM
Про порядок заполнения можно по подробнее?
Title: Re: хидеры и футеры
Post by: Subst on May 14, 2016, 04:44:31 PM
Суть:

несколько субдетайлов, в два столбца. Первый заполнился до конца страницы, нужно перейти во второй столбец и заполнять его. Какой субдетайл в этот момент активный - неясно, количество элементо меняется.
У субдетайлов есть хидеры, если есть данные в субе, то есть и хидер, нет данных - нет хидера.

В существующей концепции у хидера один столбец, говорю субдетайлу заполняться вертикально, все в порядке, заполняется, страница закончилась - уходит во второй столбец. НО!! второй столбец начинает заполнять не сверху, а с места окончания хидера, которому я не могу сказать, что он тоже на пол страницы работает (2-а столбца). Поменял, прописал в наследниках свойства базового "количество столбцов" и "порядок заполнения" - все стало нормально разруливаться.

Могу отчеты прислать, если непонятно и сумбурно объяснил
Title: Re: хидеры и футеры
Post by: Arin Alex on May 20, 2016, 06:50:30 PM
Subst, Сухой остаток :) Добавить колонки ко всем бандам ? Порядок заполнения у сабдетейла то есть.  Или я чего не понял ?
Title: Re: хидеры и футеры
Post by: Subst on May 24, 2016, 07:35:24 AM
Сорри, что сразу не ответил, был занят.

ну вобщем да

я просто в твоих исходниках

class SubDetailHeaderBand : public BandDesignIntf
{
    Q_OBJECT
    Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
>>>   Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
>>>    Q_PROPERTY(BandColumnsLayoutType columnsFillDirection  READ columnsFillDirection WRITE setColumnsFillDirection)

class SubDetailFooterBand : public BandDesignIntf
{
    Q_OBJECT
    Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
>>>  Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
>>>   Q_PROPERTY(BandColumnsLayoutType columnsFillDirection  READ columnsFillDirection WRITE setColumnsFillDirection)

вот >>> - это добавил, поскольку они наследники BandDesignIntf, как и сам субДетайл, это хватило, чтоб исправить ситуацию.

>>>   Q_PROPERTY(BandColumnsLayoutType columnsFillDirection  READ columnsFillDirection WRITE setColumnsFillDirection) - вот это мне тоже пришлось добавить, не помню уже почему, что не билось. Какая-то причина была, просто времени прошло порядком, точно не помню уже
Title: Re: хидеры и футеры
Post by: Arin Alex on May 25, 2016, 09:32:10 AM
Я вспомнил почему футер не разбивается на колонки :) все дело в групповых функциях. Если футер разбивается на колонки то логично предположить, что итоговая функция будет считать значения столбца, а у меня данный функционал не реализован
Title: Re: хидеры и футеры
Post by: Subst on May 25, 2016, 09:52:22 AM
Понятно, но я то там и не использую ф-ии. Я в какой-то теме писал, что мне приходится запросами считать и передавать в переменные такие данные. Поскольку как правило там по стандарту заполнения форма такая:

того-то - столько то-то

в том числе:

----  столько
----  столько
----  столько

а вот кол-во столбцов два.

форма - гос. образца, менять нельзя :) вот мне и пришлось по коду полазить