02.02.2005, 14:28 | #1 |
Участник
|
Как прог-но проставить "галочки" в диалоге отчета.
МНе нужно изменить отчет InventDimPhys (отчет по остаткам), так, чтобы в независимости от того, какие галочки проставил юзер в группе Просмотр (это какие поля аналитике выводить) - всегда показывалось одно и тоже - как будто он выбрал только партию.
Я так думаю это делается в fetch, inventDimReport.parmInventDimParm(). В качестве пар-ма передается InventDimParm - таблица, где 1 и 0 стоят в соответсвующих параметрах. Только у меня почему-то не получается сгенерить запись в этой таблице и передать её в качестве пар-ма. Может я чего по кривому делаю? Или можно вообще это всё как-то по-другому сделать.. Спасбо. |
|
02.02.2005, 14:53 | #2 |
Участник
|
В таблицу InventDimParm вообще никогда не надо ничего вставлять.
Эта таблица по сути своей используется лишь как запись (record, struct) в памяти компьютера, определяющая тот или иной режим обработки складских аналитик в InventDim (в отчётах и запросах - как правило - какие аналитики отображать, т.е. по каких сворачивать итоги, а какие вообще не выводить). В родителе класса, выводящего отчёт (InventReport_DimPhys) есть метод: PHP код:
А в отчёте в методе init есть код: PHP код:
Самый правильный способ - отказаться от такой затеи. Ограничивать стандартный функционал, имхо, нехорошо, такими варварскими методами. Но если крайне требуют, то самым аккуратным было бы перепопределение initQuery в InventReport_DimPhys таким образом: PHP код:
|
|
02.02.2005, 15:01 | #3 |
Участник
|
ну на самом деле этот отчет я откопировал и делаю уже что-то своё... Т.е. стандарт не корячу... Но это очень надо.
Ну и можно пример, как этот InventDimParm поменять? Я так понимаю по умолчанию - всё пусто. Как сделать чтобы галочка стояла к примеру на партиях? |
|
02.02.2005, 15:08 | #4 |
Участник
|
Query initQuery()
{ ; // меняем inventDimParm inventDimParm.clear(); inventDimParm.inventBatchIdFlag = NoYes::Yes; ... return super(); } |
|
02.02.2005, 17:47 | #5 |
Участник
|
Супер. Спасибо. Работает.
А если не сложно, то еще вопрос - а как сделать так, чтобы и окно диалога не вызывалось? А прям сразу отчет формировался... А уж параметры я сам задам... |
|
03.02.2005, 06:21 | #6 |
Участник
|
Цитата:
Изначально опубликовано NJD
Супер. Спасибо. Работает. А если не сложно, то еще вопрос - а как сделать так, чтобы и окно диалога не вызывалось? А прям сразу отчет формировался... А уж параметры я сам задам... В отчёте и его query есть свойства interactive, которst определя.т будут ли появлятся стандартные диалоги при запуске отчёта (когда работаете через RunbaseReport он сам подавляет их появление, но выводит свой диалог. |
|
03.02.2005, 09:46 | #7 |
Участник
|
Да мне вообще этот отчет надо программно запускать. И уже всё сделано (там были еще переделки), вот только осталось подавить этот диалог... Или это так сложно?
|
|
03.02.2005, 11:24 | #8 |
Участник
|
Слишком коряво получается. Можно конечно копать в сторону метода prompt, но лучше переделать как я сказал - это несложно.
Оставьте только сам отчёт, класс уже тут не нужен. В методах отчёта все обращения к свойствам класса (fromDate/toDate,inventDimParm и т.п.) замените на свои константы. Что сделать чтобы в чистом отчёте не появлялось никаких диалогов я уже сказал. Про то как правильно программно активировать отчёты сказано в dev guide. |
|
03.02.2005, 15:22 | #9 |
Участник
|
да... чтобы форму вызова отчета спрятать, надо в RunBase лесть, что конечно же очень плохо...
нужно в самом отчете менять а тогда параметры для отчета как мне задавать? так-? это метод отчета... InventDimParm parmInventDimParm() { InventDimParm _InventDimParmD; _InventDimParmD.clear(); _InventDimParmD.inventBatchIdFlag = NoYes::Yes; _InventDimParmD.SPT_GBidFlag = NoYes::Yes; return(_InventDimParmD); } вызов в отчете InventDimParm inventDimParmCriteria = this.parmInventDimParm(); |
|
03.02.2005, 17:32 | #10 |
Участник
|
и про программную активацию отчетов - я так понима это делается так
new MenuFunction(MenuItemOutputStr(MY_InventDimPhys), MenuItemType::Output).run(); где MY_InventDimPhys - название пункта меню, на который этот отчет повешен. а можно в этой строке еще передавать параметр в отчет (например дату)? |
|
03.02.2005, 18:27 | #11 |
Участник
|
Охх... читайте стандартную докукументацию - там этот вопрос подробно освещен.
|
|
03.02.2005, 18:29 | #12 |
Участник
|
А InventDimParm как мне в отчете задать? -)
Ну кинь примерчик пож-та.. А я уж сам разберусь. |
|
04.02.2005, 16:02 | #13 |
Участник
|
А не... галочки верно инициализируются...
qRun = new QueryRun(query); query как-то не так инициализируется... |
|