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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.05.2014, 11:02   #1  
userax2009 is offline
userax2009
Участник
 
24 / 10 (1) +
Регистрация: 16.05.2014
форма Б, которая открывается по кнопке, должна показывать историю изменения для выбранного поля на форме А
Старый 16.05.2014, 14:16   #2  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от userax2009 Посмотреть сообщение
форма Б, которая открывается по кнопке, должна показывать историю изменения для выбранного поля на форме А
по кнопке не получится, так как при нажатии на кнопку на гриде уже никакой объект не выбран. В общем случае свойства вызываеомго контрола можно получить вот так:
X++:
client static container getCallerControlProperty(Args args, container   _propertyCon)
{
    container           res;
    Object              callerControl;
    FormRun             caller;
    SysDictClass        dictClass;
    ContainerEnumerator ce;
    IdentifierName      methodName;
    #Properties
    ;

    if (args && args.caller())
    {
        if (SysDictClass::isEqualOrSuperclass(args.caller().handle(), classnum(FormRun)))
        {
            caller = args.caller();
            callerControl = caller.selectedControl();

            dictClass = new SysDictClass(classidget(callerControl));

            ce = new ContainerEnumerator(_propertyCon);

            while (ce.moveNext())
            {
                methodName = ce.current();

                if (dictClass.hasObjectMethod(methodName))
                    res += dictClass.callObject(methodName, callerControl);
                else
                    res += "";
            }


        }
    }

    return res;
}
В вашем случае на той форме откуда вызываете перекройте task и при определенном его значении вызывайте свою форму.
на вызываемой форме вызовите следующий код:
X++:
c = getCallerControlProperty(element.args(), [#PropertyDatasource, #PropertyDataField]);
Что быльше делать, я так понимаю, ясно
Старый 16.05.2014, 18:54   #3  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,514 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от userax2009 Посмотреть сообщение
форма Б, которая открывается по кнопке, должна показывать историю изменения для выбранного поля на форме А
На мой взгляд, вы не ту проблему решаете.
Такого рода кунштюки обычно нужны для разборок типа "кто накосячил". Если в каком-то поле кто-то регулярно косячит с данными, то это говорит о наличии трёх возможных проблем:
1) кривое разграничение прав доступа (не те люди имеют разрешение на правку)
2) ошибка программирования (не сделаны нужные проверки для ввода данных в поле)
3) ошибочная реализация бизнес-процессов (данные вводят не те, кто должен это делать)

вот с этим и надо разобраться в первую очередь.
__________________
С уважением,
Вячеслав
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поле в гриде не из датасорса Katuxa DAX: Программирование 9 01.03.2013 16:24
Закрыто поле на таблице kaw DAX: Программирование 2 15.03.2012 10:55
Пробелы теряются в текстовом поле erudit DAX: Программирование 20 07.04.2011 17:47
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
Поле "Оплатить до" в строке общего журнала longson DAX: Функционал 7 29.03.2008 14:38

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

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

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