Возможна ли группировка в динамическом отчёте

Обсуждение Stimulsoft Reports.NET
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

А вот и следующий вопрос :) У меня на 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++;
                    }
                }
            }
Вложения
Summ.JPG
Summ.JPG (37.37 КБ) 6115 просмотров
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Возможна ли группировка в динамическом отчёте

Сообщение Jan »

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

Не совсем понял структуру отчета, то что выделено красным цветом это текстовые компоненты которые лежат на GroupFooterBand?

Спасибо.
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

Да, Jan.
Мне их надо отключить также как и текстовый компонент наименования FooterBand.
Спасибо.
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Возможна ли группировка в динамическом отчёте

Сообщение Andrew »

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

Нам не совсем понятна Ваша задача. Пожалуйста, опишите свою задачу более подробно. Будем признательны и сможем быстрее разобраться во всем и помочь Вам.

Спасибо.
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

У меня есть FooterBand - ы, которые добавляються в цикле, на каждом StiText я ложу StiText который отображает наименование итог по группе:
Вложения
Summ.JPG
Summ.JPG (37.65 КБ) 3043 просмотра
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

Итоговые StiText, которые не содержат информации, я отключаю их видимость событием. Так же как я и отключал пустые заголовки групп.
Спасибо, Вы мне в этом помогли :biggrin:
Получаю я такой вид отчёта:
Вложения
Summ.JPG
Summ.JPG (34.26 КБ) 3043 просмотра
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

Отключал так:

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

private const string STR_ITOG = "итог по ";
......
 //После компиляции (а это важно), присваиваем события текстовым компонентам группировкам
  report.Compile();
  for (int i = 0; i < arlNameTextFooterGroup.Count; i++)
  {
     StiText TextGroupFooterEvent = report.CompiledReport.GetComponents()[arlNameTextFooterGroup[i].ToString()] as StiText;
     TextGroupFooterEvent.GetValue += new Stimulsoft.Report.Events.StiGetValueEventHandler(Text_Conditions_GroupFooterBand);
   }
   report.Show();
..........
private void Text_Conditions_GroupFooterBand(object sender, Stimulsoft.Report.Events.StiGetValueEventArgs e)
        {//Обработчик события отображения/неотображения подвалов названий группировки
            if (e.Value != STR_ITOG.ToString().ToLower())
                ((StiComponent)(sender)).Enabled = true;
            else
                ((StiComponent)(sender)).Enabled = false;
        }
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

Теперь я подошёл к следующему шагу - мне надо отдновременно отключить StiText, которые содержат итоговые суммы в подвалах, которых содержание наименования подвала отключено:
Вложения
Summ.JPG
Summ.JPG (34.84 КБ) 3048 просмотров
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Возможна ли группировка в динамическом отчёте

Сообщение Jan »

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

Если я верно понял Вам нужно текстовые компоненты с одинаковым значением заменить одним текстовым компонентом с этим значением?

Спасибо.
Master
Сообщения: 39
Зарегистрирован: 08 апр 2009, 05:10

Возможна ли группировка в динамическом отчёте

Сообщение Master »

Нет :)

После добавления группировки я имею:
Вложения
Summ.JPG
Summ.JPG (51.58 КБ) 3037 просмотров
Ответить