LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: Riko on October 25, 2023, 11:52:00 AM

Title: Model roles
Post by: Riko on October 25, 2023, 11:52:00 AM
Добрый день.

При передачи кастомной модели в качестве источника данных, возможно
ли из скриптов получить значения произвольных ролей элемента (цвет фона, цвет текста и т.п.)?

C увежением, Р
Title: Re: Model roles
Post by: Subst on October 26, 2023, 06:49:48 AM
Ты же из модели хочешь данные доставать, не из самой таблицы.
Значит просто отдать БД в репорт не прокатит.
Модель знакома только твоему коду внутри программы.
Соответственно, LR должен обращаться к коду за порцией данных.
Для этого есть ICallbackDatasource, загляни в docs/UserManualRu.pdf, примерно на страницу 11, Внешние источники данных.

Другой вариант - построить несколько "плоских" моделей и отдать их все в твой репорт.

Третий вариант - скриптами пролублировать твои правила, которыми ты определяешь роли модели.
Code: [Select]
$S {
   if ($D{table.field}==..)
      ...;
  }
Title: Re: Model roles
Post by: Riko on October 26, 2023, 10:38:05 AM
Здравствуйте.

Я рассматривал эти варианты - эти подходы требуют доп. работы + код программы становится сильно путанным.

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

Добавил в LR функцию getFieldByRowIndexEx("FieldName", "row", "role") которая позволяет получать значения произвольных ролей каждого элемента: стандратные роли Qt (Display, Background ...) + кастомные роли модели. Выгрузил в отдельную ветку

PS: так же нет функций для получения значений заголовков моделей, нет функции для получения количества столбцов, строк.
Title: Re: Model roles
Post by: Subst on October 26, 2023, 08:00:56 PM
это открытый проект :o)
напиши и шлефани пул-реквест или просто Алексу поправленные исходники. Будет у него время, посмотрит.
Title: Re: Model roles
Post by: Riko on October 26, 2023, 08:30:10 PM
Уже...

Перед внесением доработок думал пововетоваться с сообществом - возможно не заметил существующей возможности.
Title: Re: Model roles
Post by: Arin Alex on November 21, 2023, 01:27:21 PM
Riko, Приветствую! Я там на github написал комментарий к pull request продублирую его здесь

Quote
Приветствую !
Очень ценю Ваше желание внести свой вклад в развитие проекта.
У меня большая просьба, если Вы хотите, чтобы Ваш pull request был принят, верните форматирование кода к изначальному виду. Во-первых, форматирование кода для разработчика дело интимное :), а во-вторых, так проще смотреть какие изменения были реально сделаны. Ну и желательно это объединить в один commit.