06.07.2005, 15:22 | #1 |
Участник
|
несколько Repot-ов и один class(RunBaseReport)
Здраствуйте!
У меня есть несколько отчётов с абсолютно одинаковыми параметрами. Есть класс (RunBaseReport). Хочу иметь возножность в диалоге выбирать какой отчёт надо показать. Сделал в диалоге комбо-бокс для выбора отчёта. Результат из него забираю в методе getFromDialog. В методе lastValueElementName в зависимости от результата возвращаю нужный репорт. Проблема в том, что метод lastValueElementName вызывается 2 раза до getFromDialog и 1 раз после. И очёт разумеется совсем не тот получается. Диалог инициализируется так: ret = DialogRunbase::newOnClient(this.caption(),this); т.е. super() не вызывается. Поскажите, как сделать правильно... и верный ли путь я выбрал? |
|
06.07.2005, 16:36 | #2 |
Участник
|
Я как-то так в свое время делал:
void run() { .... ; if(Условие1){ this.makeReportRun(reportStr(report1)); super(); } else if(Условие2){ this.makeReportRun(reportStr(report1)); super(); } А lastValueElementName() просто был: private identifiername lastValueElementName() { return reportStr(report1); } Для тех отчетов, применительно к которым делал, было нормально. Насчет общего случая может и некорректно. |
|
07.07.2005, 12:57 | #3 |
Участник
|
Спасибо!
|
|
08.07.2005, 11:35 | #4 |
Участник
|
Что-то какое-то странное поведение у моего класса, никак не могу разобраться с ним. Если в диалоге я выбираю другой отчёт (который не по умолчанию), то мои переменные не запаковываются, т.е. в этом случае я не могу сохранить параметры, которые выбрал пользователь. Если отрубить в run всё, кроме super, то всё пакуется нормально.
|
|
08.07.2005, 14:58 | #5 |
Участник
|
Разобрался с ошибкой.
|
|
|
|