Создал mrt-файл отчета. В отчете имеется 5 листов и стартовая форма с чекбоксами, установкой значений которых пользователь указывает какие из 5-ти отчетов ему нужны, а так же какие из бендов в указанных отчетах нужно скрыть/показать. Все работает, но есть один не приятный момент:
В клиентском приложении юзер кликает мышью на кнопке, которая запускает отчет (report.Show()). Открывается диалоговое окошко, юзер устанавливает комбинацию галочек и жмет кнопку окей. В результате получает отчет (или группу отчетов) согласно установленным настройкам. аке. закрывает отчет. Снова жмет на кнопку открытия отчета, так же открывается окно формы с чекбоксами, юзер снова устанавливает нужные галочки (но уже другую комбинацию) и получаю ерунду, а именно:
пустые листы. Если закрыть клиентское приложение, затем снова открыть его и установить иную комбинацию галочек - снова все нормально. но это все работает только в первый раз открытия отчета. Почему? Для наглядности выкладываю
Данные (xsd-схема и xml-данные) и Файл отчета (mrt-файл)
Не приятный момент открытия отчета
- compositum
- Сообщения: 252
- Зарегистрирован: 15 янв 2008, 15:12
- Откуда: Санкт-Петербург
Не приятный момент открытия отчета
Если отчет уже был построен, у него установлено свойство IsRendered = true. Метод Show() просто отображает коллекцию построенных страниц в этом случае.
Если же перед вызовом Show() присвоить report.IsRendered = false, то произойдет перепостроение отчета с вызовом опять всех диалоговых форм.
Если эти действия не исправят ситуацию, покажите, пожалуйста код, который Вы вызываете для перегенерации отчета и группы отчетов.
Спасибо.
Если же перед вызовом Show() присвоить report.IsRendered = false, то произойдет перепостроение отчета с вызовом опять всех диалоговых форм.
Если эти действия не исправят ситуацию, покажите, пожалуйста код, который Вы вызываете для перегенерации отчета и группы отчетов.
Спасибо.
Не приятный момент открытия отчета
Здравствуйте.
Если отчет уже был построен, у него установлено свойство IsRendered = true. Метод Show() просто отображает коллекцию построенных страниц в этом случае.
Если же перед вызовом Show() присвоить report.IsRendered = false, то произойдет перепостроение отчета с вызовом опять всех диалоговых форм.
Если эти действия не исправят ситуацию, покажите, пожалуйста код, который Вы вызываете для перегенерации отчета и группы отчетов.
Спасибо.
Если отчет уже был построен, у него установлено свойство IsRendered = true. Метод Show() просто отображает коллекцию построенных страниц в этом случае.
Если же перед вызовом Show() присвоить report.IsRendered = false, то произойдет перепостроение отчета с вызовом опять всех диалоговых форм.
Если эти действия не исправят ситуацию, покажите, пожалуйста код, который Вы вызываете для перегенерации отчета и группы отчетов.
Спасибо.
- compositum
- Сообщения: 252
- Зарегистрирован: 15 янв 2008, 15:12
- Откуда: Санкт-Петербург
Не приятный момент открытия отчета
не исправят, т.к. у меня уже реализовано в коде то, о чем вы говорите. Показываю код:Edward писал(а):Здравствуйте.
Если отчет уже был построен, у него установлено свойство IsRendered = true. Метод Show() просто отображает коллекцию построенных страниц в этом случае.
Если же перед вызовом Show() присвоить report.IsRendered = false, то произойдет перепостроение отчета с вызовом опять всех диалоговых форм.
Если эти действия не исправят ситуацию, покажите, пожалуйста код, который Вы вызываете для перегенерации отчета и группы отчетов.
Спасибо.
Код: Выделить всё
[STAThread]
private void openShow()
{
report.IsRendered = false;
report.Show(true);
}
public void Show()
{
report.RegData(dsName, ds);
Thread t1 = new Thread(new ThreadStart(openShow));
t1.SetApartmentState(ApartmentState.STA);
t1.Start();
}
Не приятный момент открытия отчета
Здравствуйте,
Лучше всего просто вызывать метод Render перед методом Show.
Спасибо.
Лучше всего просто вызывать метод Render перед методом Show.
Спасибо.