Как управлять показом DialogPage?
Не получается показывать/не показывать DialogPage по условию...
Даже на тупое:
Что-то не так делаю?
Даже на тупое:
DialogPage.ModalResult := mrCancel;
определенное в DialogPage.OnActivate (OnShow) форма все равно показывается...Что-то не так делаю?
Комментарии
Попробуй их снести или сделать невидимыми.
Снести - это как ?
А сделать невидимыми - не помогает! Буттоны невидимы, а форма показывается.
А вообще - где бы почитать о таком сокровенном? ProgrammerManual явно скрывает все самое интересное...
А вы сами пробовали? У меня ни фига не действует!
Вообще, можно много гадать и экспериментировать.. Странно только, почему нельзя узнать об этом достоверно.
И еще:
Вот что интересно: никто не делает отчеты, к-рые могут работать как StandAlone с выбором параметров на DialogPage, так и вызываемыми из формы приложения с заполненными параметрами?
С уважением, Забурдаев Юрий.
А как ты думаешь?
P.S. Вправкой рук и прочих частей не занимаюсь.
Не нашел хозяина события OnStartReport
To Markus:
Можно еще раз - в событии Form1OnActivate пишу:
Form1.Visible := False;
Результат нулевой! Т.е. форма выскакивает на экран.
Если же пишу:
TfrxDialogPage(Sender).Visible := False;
то форма, мелькнув, исчезает, но отчет не выводится! Т.е. окно Preview серое без отчета и конкретно неактивное (закрывается только нажатием Esc, кнопка Close не доступна).
Дополнительное указание:
Form1.ModalResult := mrOK;
ничего не меняет (указывал это и в Show и в Activate и до и перед Visible:=False)
Что не так делаю ?
OnStartReport обработчик у самого отчета в списке объектов frxReport1:TfrxReport или как ты его там обозвал.
в крайнем случае напиши
в коде скрипта между последними
Нашел OnStartReport! Работает! Работает и в гл. блоке begin...end.
Огромное спасибо всем откликнувшимся!
Блин, а все же - где-то ведь описаны такие вещи? Ведь попервоначалу голову свернешь наощупь! Теперь вот думаю - а вдруг овзможно и из DialogPage1 вызывать DialogPage2 и возвращаться обартно? Чем черт не шутит...
Смешно...
А если серьезно, то:
Я с большим пониманием прочел ветку о том, как группа товарищей просит не удалять DialogPage после Previw, а возвращаться туда обратно. В самом деле - настроили параметры, посмотрели отчет, ну почему бы тут же не посмотреть его еще раз с др. параметрами? И ведь автор (вроде) согласился...
А теперь продолжим мысль: как лучше настраивать эти самые параметры? ComboBox? LookUpComboBox? Ну очень неудобно! У меня на форме лежит ListBox, к-рый заполняется выборкой по условию в поле ввода. А уж из него значения из выбранной строки передаются обратно в поля ввода. И все равно некрасиво!
Почему бы не сделать доп. форму (формы), к-рые вызываются из основной и в них обрабатывать условие и возвращать обратно выбранное значение?
Короче, все то, что так легко реализуется в Delphi?
Я, разумеется, понимаю, что это генератор отчетов, а не среда разработки пользовательского интерфейса. Но уж больно подкупает заявленная возможность создания StandAlone отчетов, а там без параметров никак.
И, если можно, вопрос: а Вы как реализуете выбор параметров на DialogPage?
(только не надо про ComboBox!)
Итак, в скрипте имею: Переменная SkipDialogPage нигде в скрипте не инициализируется явно.
Отчет отрабатывает с показом Form1. Все ОК.
Теперь из своего приложения пишу: и получаю в ответ ошибку:
Identifier redeclared: 'SkipDialogPage'
Так... Иду в дизайнер отчета и убираю объявление var SkipDialogPage.
Теперь в run-time отчет выводится без показа Form1. Тоже вроде бы ОК.
Зато при запуске отчета из дизайнера ловлю:
Undeclared identifier : 'SkipDialogPage'
Блин! Еще раз читаю ProgrammerManual (стр. 36):
Работа со скриптовыми переменными очень проста...
frxReport.Script.Variables := 'test';
При этом если переменная не существовала, она создается, иначе ей просто присваивается значение...
И все!
Понимаю, что все д.б. просто, а вот не догоняю...
OK, лирикой обменялись, про собств. компоненты понял...
А вот на простой практический вопрос новичка (наверняка ведь ответ прост) ответить было уже лень ? (я не в претензии, просто обидно...)
тогда сможешь обратиться через возможно что исправляя ошибки автор как всегда немного отошёл от того что написано в документации.
Я снова в непонятках:
1)Если я объявляю SkipDialogPage в списке переменных отчета со значением 0 и в скрипте отчета пишу: то обращение из внешней (дельфийской) прогр. вида: приводит к показу Form1. Т.е. значение 1 не присваивается переменной отчета, а (очевидно?) создается некая скриптовая переменная???
А вот вызов вида: работает, как и хотелось. Вроде бы неконец-то все ОК... Да не тут-то было!
2)Шаблоны отчетов храню в BLOB полях таблицы. С изумлением обнаружил, что введенные в дизайнере переменные отчета не сохраняются в нем при следующем открытии дизайнера! Совсем обалдев, стал проверять: если сохраняю шаблон отчета в файле, то переменные отчета сохраняются, а если в BLOB - то ни фига! Скрипт сохраняется, макет страницы, диалоговая форма тоже, а переменные очищаются! Ума не приложу почему.
Просто беда какая-то...
А, отцы?
Не знаю у меня все нормально сохраняется. Поищи FAQ на форуме, там было описано как в блоб сохранять, ну или могу свою реализацию бросить.
А можно посмотреть др. вариант?
Выхода 2:
1. Убрать эту строку и как мне кажется будет тебе счастье.
2. Делать со списком то что делает Konst, а именно наполнять его руками из дельфи.
Yes! Я действительно, забыл про эту фичу Konst'a. Теперь сохраняются.
Осталось просто любопытство; так все-такм, можно-ли снаружи переопределять скриптовые переменные?
Если перед заполнением переменны отчета вызвать frxReport.PrepareScript, то вроде ошибки пропадают, но и переменные не присваиваются.
А разработчики действительно пропали, три раза в ньюсах вопросы задавал, ноль внимания.