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

CrossDataBand

Добавлено: 22 май 2008, 14:40
ask
У меня в источнике данных есть таблица. Нужно чтобы в отчете данные из нее появились записанными в строчку через запятую в заголовке отчета. Я использую версию 2007.3.100. Я пытался поставить в заголовок Container, в него положить CrossDataBand привязанный к этой таблице. Если контейнер меньше чем длина данных, то CrossDataBand вылезает из контейнера. Никакие параметры контейнера РастиВВысоту и расти в ширину не помогают.

CrossDataBand

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

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

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

Text1.TextValue = s;
Спасибо.

CrossDataBand

Добавлено: 23 май 2008, 04:43
ask
Это понятно. Тогда в каких случаях следует использовать компонент CrossDataBand? А то все примеры построены с использованием CrossTable.

CrossDataBand

Добавлено: 23 май 2008, 06:22
Edward
Вы можете положить в контейнер DataBand, рассчитать количество строк для него:

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

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

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

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

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

Спасибо.