Динамическая двумерная таблица или обращение к элементам crossData в цикле

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

Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

Здравствуйте!
Меня не покидает безумная идея создать динамическую таблицу, которая сама бы отрисовывала необходимое количество строк и столбцов. Днями и ночами я думаю об этом, и сейчас у меня возник вопрос, ответ на который я не нашел в интернете: можно ли задавать значения для каждого отдельного, уже отрисованного, элемента CrossData?
Тоесть по идее это последовательность анонимных типов, на сколько я могу судить, тогда может быть к ним можно обращаться после отрисовки на втором проходе через цикл foreach?
Для общего понимания ситуации приложил скрин.
Заранее благодарю за помощь!
Вложения
Без имени.png
Без имени.png (12.03 КБ) 1827 просмотров
Aleksey
Сообщения: 2752
Зарегистрирован: 22 апр 2010, 06:57

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение Aleksey »

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

Посмотрите следующий пример.

Спасибо.
Вложения
Screenshot 2021-08-03 151944.png
Screenshot 2021-08-03 151944.png (125.25 КБ) 1819 просмотров
ReportSample.mrt
(17.95 КБ) 170 скачиваний
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

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

Посмотрите следующий пример.

Спасибо.
Это очень похоже на то что я ищу, нужно поизучать..
Спасибо!
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

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

Посмотрите следующий пример.

Спасибо.
А скажите, откуда там берутся данные?
В вашем примере я удалил все колонки из Sheet1, но вывод информации при этом никак не изменился..

Далее я подставил свои данные в ваш пример. И там я столкнулся со следующими проблемами:
1)Данные выводятся, но там получается что одинаковые данные выводятся в столбик(видно на скрине)
2)Я не понимаю откуда берутся данные, ведь если я удаляю какой то столбец из словаря, то при выводе он всё равно остается, более того, выводится больше столбцов с данными чем у меня есть в словаре.

PS
Важное уточнение -
1)Я беру данные из приложения которое их генерирует.
2)На скрине видно, что первым столбцом выводится дата, в зависимости от этой даты должны подтягиваться соответствующие значения других столбцов. Тоесть есть зависимость между датой и значениями. Но поскольку я почти ничего не менял в вашем примере, он так же как и остальные столбцы выводит одно и тоже значение.
Вложения
Без имени.png
Без имени.png (57.41 КБ) 1810 просмотров
Aleksey
Сообщения: 2752
Зарегистрирован: 22 апр 2010, 06:57

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение Aleksey »

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

1. Задается количество колонок - общее количество за минусом информационных статических - к примеру, ID.

2. В событии BeforePrint берутся данные из источника через обращение напрямую к DataTable.

Спасибо.
Вложения
Screenshot 2021-08-04 091622.png
Screenshot 2021-08-04 091622.png (95.68 КБ) 1806 просмотров
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

Aleksey писал(а): 04 авг 2021, 10:18 Здравствуйте,

1. Задается количество колонок - общее количество за минусом информационных статических - к примеру, ID.

2. В событии BeforePrint берутся данные из источника через обращение напрямую к DataTable.

Спасибо.
А, тоесть для такой конструкции даже не обязательно создавать столбцы в словаре, верно?
Но тогда я хотел бы узнать следующее - можно ли при такой же конструкции обращаться не к сырым данным из DataTable, а к уже подготовленным в stimulsoft?
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

У меня получается так что создается N страниц, в зависимости от ID если допустим ID имеет значения от 1 до 7 - то 7 страниц.
Но подставив данные в ваш пример я заметил что формируются не только одинаковые данные по столбцам, но и каждая страница идентична всем остальным, за исключением ID.
Тоесть все имеющиеся страницы одинаковы, и на них меняется только ID
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

Вообщем у меня получилось справить с большинством проблем.
Сейчас мне нужно как то настроить вывод на разных страницах по разным ID
molochnii
Сообщения: 47
Зарегистрирован: 29 июл 2021, 14:43

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение molochnii »

Окей,я добился вывода на разных страницах разной информации, там дело было в rowid, его значение обнулялось при создании новой страницы( потому что через 2 прохода его значение увеличивается в 2 раза,и тогда нумерация начинается уже с максимального значения), я (пока что) просто в формулу значения rowid добавил вычитание итогового числа всех строк, это, конечно, не правильно, но пока пойдет.
Теперь стоит другая задача - нужно убрать лишние столбцы. Тоесть не все столбцы должны быть выведены ,и потому лишние нужно убрать. Не подскажите, как это сделать лучше?
У меня пока только 1 вариант - сформировать список тех столбцов которые должны быть, и потом проверять, если столбец с таким именем не содержится в этом списке, то мне его нужно как то убрать - вопрос как..
Aleksey
Сообщения: 2752
Зарегистрирован: 22 апр 2010, 06:57

Re: Динамическая двумерная таблица или обращение к элементам crossData в цикле

Сообщение Aleksey »

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

Можно проверять как

Код: Выделить всё

if (Sheet1.DataTable.Columns[Line].ToString() != "col2")
{
	Variable1 = Sheet1.DataTable.Rows[rowid][Line].ToString();
}
else
	Variable1 = ""
Вложения
Screenshot 2021-08-04 144543.png
Screenshot 2021-08-04 144543.png (174.7 КБ) 1797 просмотров
Ответить