AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.04.2007, 09:16   #1  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Как спрятать поля с формочки отчёта?
Есть класс отчёта (RunBaseReport), к нему подцепляем заранее собраный Query, в состав которого входит несколько табличек, одна из них InventLocation из которой по сути надо только одно поле (InventLocationId) причём т.к. множественный выбор в данном случае не нужен, мы делаем его заблокированым (Lock), значение в данное поле предполагается добавлять из вручную добавленого поля выбора на форме, дело в том что когда мы блокируем поле, система автоматически в правую сторону формы добавляет другое поле из данной таблицы, а наше поле не показывает, получается как-то некрасивенько. Как сделать, чтобы задать параметры можно было бы только для склада и чтобы видно было в форме только оно, но при этом поменять его в самом запросе (кнопка Выбор) было невозможно?
Старый 26.04.2007, 09:45   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Создайте нужный вам рейнж два раза. Один раз его заблокируйте, а второй - нет. Значения изменяйте в обоих

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.
Старый 26.04.2007, 11:34   #3  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
А как сделать так, чтобы печать отчёта не завершала работу вызвавшего класса?
Старый 26.04.2007, 12:07   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
в классе перекройте метод run()
После super() [Note: Собственно, печать отчета] можно добавить еще код.
Правда непонятно, что еще может быть нужно..
За это сообщение автора поблагодарили: Aslan (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Спрятать поле в запросе отчета или удалить? laxel DAX: Программирование 2 22.01.2009 06:59
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
При выводе отчета поля в табличной части съезжают. vasiliy DAX: Программирование 7 03.11.2005 17:39
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:22.