Страница 1 из 2

Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 29 июл 2021, 15:08
molochnii
Здравствуйте!
У меня есть отчет, количество столбцов в котором заранее не известно. Я хочу сделать так, что бы отчет самостоятельно генерировал всю таблицу - основные столбцы статично записываются, а оставшиеся записываются столько раз, сколько их есть на конкретную страницу. Но я не знаю как это сделать, подскажите пожалуйста..
Я пытался сделать через cross-tab, но дело в том что мне нужно генерировать 2мерную таблицу (cross-tab в DataBend),а названия столбцов заранее неизвестны.
P.S. можно ли передавать в выражение ячейки (до вычисления значения выражения ячейки) строку с именем колонки к которой выражению нужно обратиться? Например в выражении ячейки я передаю массив строчек Columns в котором находится значение Column1 - {Source.Columns}. Другими словами - можно ли прямо во время рендеринга отчета записывать в ячейки выражения?
Спасибо!

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 30 июл 2021, 11:43
Aleksey
Здравствуйте,

Стандартного решения нет. Вы можете генерировать данный отчет из кода
https://www.stimulsoft.com/en/samples/w ... in-runtime

Спасибо.

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 30 июл 2021, 12:37
molochnii
Aleksey писал(а): 30 июл 2021, 11:43 Здравствуйте,

Стандартного решения нет. Вы можете генерировать данный отчет из кода
https://www.stimulsoft.com/en/samples/w ... in-runtime

Спасибо.
Скажите, но есть все таки возможность прямо во время построения отчета передавать в выражения ячеек какие то значения?
Может это можно делать с помощью нескольких проходов?

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 30 июл 2021, 13:56
Aleksey
Здравствуйте,

К сожалению, нет. В самом отчете неполучится это сделать.

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 30 июл 2021, 14:06
molochnii
Aleksey писал(а): 30 июл 2021, 13:56 Здравствуйте,

К сожалению, нет. В самом отчете неполучится это сделать.
Эх, печалька(
Но спасибо за помощь! ;)

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 30 июл 2021, 17:48
Aleksey
Здравствуйте,

Всегда рады помочь.

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 03 авг 2021, 14:46
molochnii
Aleksey писал(а): 30 июл 2021, 17:48 Здравствуйте,

Всегда рады помочь.
Ну у меня получилось кое-что)
Я поставил в cross-data такое выражение - {IIF(Variable1 == null, Variable2, Variable1)}, где Variable1 это переменная которая будет служить для вывода какого-то значения и на первом проходе Variable1 = null, а Variable2 - это string[], в котором содержатся названия столбцов, которые будут выводиться.
Тогда получается что на первом проходе создаются пустые ячейки, а потом я задаю значение для Variable1 и он выводит уже ее значения. Я поставил обновление значения Variable1 при начале построения в Cross-Data.
Но я столкнулся с новой проблемой, значения для Variable1 задаются для cross-data 1 раз, и он выводит одно и тоже значение столько раз, сколько было создано ячеек на первом проходе. Хотя значения по вертикали разные ( по горизонтали, соответственно - нет)..
Может у вас есть идеи как развить эту тему?

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 03 авг 2021, 14:54
molochnii
molochnii писал(а): 03 авг 2021, 14:46
Aleksey писал(а): 30 июл 2021, 17:48 Здравствуйте,

Всегда рады помочь.
Ну у меня получилось кое-что)
Я поставил в cross-data такое выражение - {IIF(Variable1 == null, Variable2, Variable1)}, где Variable1 это переменная которая будет служить для вывода какого-то значения и на первом проходе Variable1 = null, а Variable2 - это string[], в котором содержатся названия столбцов, которые будут выводиться.
Тогда получается что на первом проходе создаются пустые ячейки, а потом я задаю значение для Variable1 и он выводит уже ее значения. Я поставил обновление значения Variable1 при начале построения в Cross-Data.
Но я столкнулся с новой проблемой, значения для Variable1 задаются для cross-data 1 раз, и он выводит одно и тоже значение столько раз, сколько было создано ячеек на первом проходе. Хотя значения по вертикали разные ( по горизонтали, соответственно - нет)..
Может у вас есть идеи как развить эту тему?
Я думал пока сделать Counter, который декрементировался бы при каждом проходе через ячейку, и в зависимости от его значения я бы выбирал какую переменную из словаря поставить в переменную Variable1. Вариант так себе, но я пока экспериментирую.
Вся проблема сейчас заключается в том что значение для cross-data задается только 1 раз, и во время ее работы невозможно изменить это значение.. может есть обходные пути?
По крайней мере вы теперь лучше понимаете что я хочу сделать..)

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 03 авг 2021, 16:06
Aleksey
Здравствуйте,

Вышлите ваш вариант отчета с тестовыми данными для анализа.

Спасибо.

Re: Динамическая двумерная таблица или передача выражения в ячейки во время рендеринга

Добавлено: 04 авг 2021, 09:25
molochnii
Aleksey писал(а): 03 авг 2021, 16:06 Здравствуйте,

Вышлите ваш вариант отчета с тестовыми данными для анализа.

Спасибо.
Я боюсь, это не представляется возможным.. Да и то не к чему, тот пример что вы мне скинули в моем другом вопросе (viewtopic.php?f=12&t=11887&p=36442#p36442) мне понравился, я сейчас пытаюсь разработать его. Однако там тоже возникли трудности..)
Спасибо :D