|
![]() |
#1 |
Участник
|
Как спрятать поля с формочки отчёта?
Есть класс отчёта (RunBaseReport), к нему подцепляем заранее собраный Query, в состав которого входит несколько табличек, одна из них InventLocation из которой по сути надо только одно поле (InventLocationId) причём т.к. множественный выбор в данном случае не нужен, мы делаем его заблокированым (Lock), значение в данное поле предполагается добавлять из вручную добавленого поля выбора на форме, дело в том что когда мы блокируем поле, система автоматически в правую сторону формы добавляет другое поле из данной таблицы, а наше поле не показывает, получается как-то некрасивенько. Как сделать, чтобы задать параметры можно было бы только для склада и чтобы видно было в форме только оно, но при этом поменять его в самом запросе (кнопка Выбор) было невозможно?
|
|
![]() |
#2 |
Участник
|
Создайте нужный вам рейнж два раза. Один раз его заблокируйте, а второй - нет. Значения изменяйте в обоих
PS Еще - надо перекрыть метод dialogUpdateQuery() и добавлять в нем второй датасорс - для восстановления после пользовательского фильтра (на примере InventTable и itemGroupId) X++: public void dialogUpdateQuery(Dialog dialog) { Query q; QueryBuildDatasource qbd; QueryBuildRange qbr; int line; ; q = queryRun.query(); qbd = q.dataSourceTable(tablenum(InventTable)); try { line = infolog.line(); qbr = qbd.rangeField(fieldnum(InventTable, itemGroupId), 2); } catch { infolog.cut(line, infolog.line()); qbr = qbd.addRange(fieldnum(InventTable, ItemGroupId)); qbr.value(qbd.rangeField(fieldnum(InventTable, itemGroupId)).value()); } super(dialog); }
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 26.04.2007 в 09:58. |
|
![]() |
#3 |
Участник
|
А как сделать так, чтобы печать отчёта не завершала работу вызвавшего класса?
|
|
![]() |
#4 |
Участник
|
в классе перекройте метод run()
После super() [Note: Собственно, печать отчета] можно добавить еще код. Правда непонятно, что еще может быть нужно.. |
|
|
За это сообщение автора поблагодарили: Aslan (1). |