CrossDataBand

Обсуждение Stimulsoft Reports.NET
Ответить
ask
Сообщения: 50
Зарегистрирован: 21 ноя 2007, 11:02
Откуда: Kazan

CrossDataBand

Сообщение ask »

У меня в источнике данных есть таблица. Нужно чтобы в отчете данные из нее появились записанными в строчку через запятую в заголовке отчета. Я использую версию 2007.3.100. Я пытался поставить в заголовок Container, в него положить CrossDataBand привязанный к этой таблице. Если контейнер меньше чем длина данных, то CrossDataBand вылезает из контейнера. Никакие параметры контейнера РастиВВысоту и расти в ширину не помогают.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

CrossDataBand

Сообщение Edward »

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

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

Categories.First();
string s = "";
while (!Categories.IsEof)
{
	if (s != "")
	{
		s = s+", ";
	}
s = s + Categories.CategoryID.ToString();
Categories.Next();
}

Text1.TextValue = s;
Спасибо.
ask
Сообщения: 50
Зарегистрирован: 21 ноя 2007, 11:02
Откуда: Kazan

CrossDataBand

Сообщение ask »

Это понятно. Тогда в каких случаях следует использовать компонент CrossDataBand? А то все примеры построены с использованием CrossTable.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

CrossDataBand

Сообщение Edward »

Вы можете положить в контейнер DataBand, рассчитать количество строк для него:

DataBand.CountData = Decimal.ToInt32(DataSource.Count/Количество элементов в CrossDataBand)

Также нужно увеличить высоту контейнера на высоту всех строк в DataBand. Для прокрутки
DataSource в BeforePrintEvent у CrossDataBand необходимо добавить команду:

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

DataSource.Next();
Работу прикрепленного отчета вы можете посмотреть в программе Demo из стандартной поставки.

http://forum.stimulsoft.com/upload/CrossDataBand2.zip

Спасибо.
Ответить