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

Обсуждение Stimulsoft Reports.WPF
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

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

Сообщение molochnii »

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

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

Сообщение Aleksey »

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

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

Спасибо.
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

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

Сообщение molochnii »

Aleksey писал(а): 30 июл 2021, 11:43 Здравствуйте,

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

Спасибо.
Скажите, но есть все таки возможность прямо во время построения отчета передавать в выражения ячеек какие то значения?
Может это можно делать с помощью нескольких проходов?
Aleksey
Сообщения: 2752
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

К сожалению, нет. В самом отчете неполучится это сделать.
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

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

Сообщение molochnii »

Aleksey писал(а): 30 июл 2021, 13:56 Здравствуйте,

К сожалению, нет. В самом отчете неполучится это сделать.
Эх, печалька(
Но спасибо за помощь! ;)
Aleksey
Сообщения: 2752
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

Всегда рады помочь.
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

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

Сообщение 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 раз, и он выводит одно и тоже значение столько раз, сколько было создано ячеек на первом проходе. Хотя значения по вертикали разные ( по горизонтали, соответственно - нет)..
Может у вас есть идеи как развить эту тему?
Вложения
Без имени.png
Без имени.png (11.65 КБ) 1468 просмотров
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

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

Сообщение 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 раз, и во время ее работы невозможно изменить это значение.. может есть обходные пути?
По крайней мере вы теперь лучше понимаете что я хочу сделать..)
Aleksey
Сообщения: 2752
Зарегистрирован: 22 апр 2010, 06:57

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

Сообщение Aleksey »

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

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

Спасибо.
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

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

Сообщение molochnii »

Aleksey писал(а): 03 авг 2021, 16:06 Здравствуйте,

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

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