Возможна ли группировка в динамическом отчёте
Добавлено: 03 июн 2009, 07:53
А вот и следующий вопрос У меня на GroupFooter есть текстовые компоненты, которые подбивают сумму столбцов, как мне их скрывать в зависимости от видимости заголовка подвала?
Спасибо.
Код формирования подвала таков:
Спасибо.
Код формирования подвала таков:
Код: Выделить всё
string[] arSummColumn = pstrSummColumn.Split('|');
for (int i = dt.Columns.Count - 1; i >= intCountGroup + 1; i -= 2)
{
//Create GroupHeaderBand - группировка по первому столбцу
StiGroupFooterBand groupFooterBand = StiActivator.CreateObject(StiOptions.Designer.ComponentsTypes.Bands.GroupFooterBand) as StiGroupFooterBand;
groupFooterBand.Name = "GroupFooter" + intNameText.ToString();
groupFooterBand.CanShrink = true; //Может сжиматься, если пустой
groupFooterBand.Height = 0.4;
page.Components.Add(groupFooterBand);
StiText TextGroupFooter;
TextGroupFooter = new Stimulsoft.Report.Components.StiText();
TextGroupFooter.ClientRectangle = new Stimulsoft.Base.Drawing.RectangleD(0, 0, page.Width + 0.2, 0.4);
TextGroupFooter.Name = "TextGroupFooter" + intNameText.ToString();
arlNameTextFooterGroup.Add(TextGroupFooter.Name);
TextGroupFooter.Text.Value = STR_ITOG + "{data." + dt.Columns[i - 1].ColumnName + "}";
TextGroupFooter.Border.Side = StiBorderSides.All;
TextGroupFooter.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 204);
groupFooterBand.Components.Add(TextGroupFooter);
intNameText++;
if (pstrSummColumn.Length > 0)//Если в модуль переданы столбцы по которым надо произвести сложение
{
double posicSumm = 0;
for (int ii = 0; ii = arPosColumn.Length)//Проверка диапазона
{
MessageBox.Show("Переданные параметр, столбца по которому необходимо подбить сумму выходит за приемлемый диапазон.", "Неправильно передан параметр.", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
posicSumm = arPosColumn[number - 1];
StiText TextGroupFooterSumm;
TextGroupFooterSumm = new Stimulsoft.Report.Components.StiText();
TextGroupFooterSumm.ClientRectangle = new Stimulsoft.Base.Drawing.RectangleD(posicSumm, 0, columnWidth, 0.4);
TextGroupFooterSumm.Name = "TextGroupFooter" + intNameText.ToString();
TextGroupFooterSumm.Text.Value = "{Sum(data." + dt.Columns[number].ColumnName + ")}";
TextGroupFooterSumm.Border.Side = StiBorderSides.All;
groupFooterBand.Components.Add(TextGroupFooterSumm);
intNameText++;
}
}
}