Смена Page динамически

отредактировано 10:22 Раздел: FastReport .NET
Хочу реализовать такой отчет.
В отчете две страницы (Page1 и Page2).
Мне необходимо в зависимости от значения в данных выводить либо Page1, либо Page2.
Причем в запросе оба значения могут присутствовать.

Написала такой скрипт
private void _StartReport(object sender, EventArgs e)
    {
      DataSourceBase ds = Report.GetDataSource("Table1");
 
      // инициализируем его

      ds.Init();
      Page1.Visible = false;
      Page2.Visible = false;
      if (((String)Report.GetColumnValue("Table1.Priznak")) == "51" )
       Page1.Visible = true;
      else
      Page2.Visible = true;
      
      
    }

В этом случае понятное дело инициализация и установка идет в самом начале отчета и уже не меняется. Поэтому страница всегда подгружается соответствующая первому признаку.
Подскажите на какое событие поставить код, чтобы страницы менялись динамически.

Комментарии

  • отредактировано 10:22
    Здравствуйте,

    Не совсем понятно, как Вы хотите менять страницы. Дело в том, что сначала строится отчет из всех объектов на странице1 (готовый отчет может содержать много страниц), затем - из объектов на странице2. Если нужно вывести часть объектов страницы1, затем страницу2 полностью, затем оставшуюся часть страницы1 - нужно использовать объект "Вложенный отчет".
  • отредактировано 10:22
    Посмотри в эту сторону.
    пример
    Т.е. как бы я это делал: не создавал бы две страницы, а просто "разруливал" отображением, что и когда (в зависимости от каких условий) показывать (какие бенды).
  • отредактировано 10:22
    Столкнулся с похожей проблемой. Нужно в зависимости от условия выводить или одну или другую страницу. Осложняется все тем, что FR встроен в программу и пользоваться можно только его средствами, а от них я далек.
    Подскажите пожалуйста, как задать условие для смены страниц или для инициализации вложенного отчета
  • отредактировано 10:22
    Здравствуйте,

    Отключать одну из страниц (Page1.Visible = false) можно в скрипте в обработчике события Report.StartReport (или, если есть диалоговая форма, в обработчике OKButton.Click).
  • отредактировано 10:22
    Есть отчет с 2 страницами. Если в БД есть Х, то надо показывать страницу 1, если нет- то страницу 2. Можно поподробнее, что где прописывать?

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.