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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2018, 00:10   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
D365 Добавляю адрес на экстеншене формы. Как перекрыть super() на write()?
D365 8.1 pu20.
На форме в чужой модели уже есть logisticsLocationPostalAddress datasource для отображения и выбора адреса с помощью стандартного LogisticsLocationFormHandler. Я добавила еще один - в своей модели на экстеншене формы.
Все работает отлично, если запись не редактируется на уровне формы или если редактируется и значение второго адреса не пустое.
Если значение второго адреса пустое, но на logisticsLocationPostalAddress_ds.validateWrite пользователь получает сообщение о том что поле location пустое. Потому что в классическом исполнении на датасорсе надо перекрыть методы write и validateWrite для датасорса, чтобы super не вызывался.
как это сделать на экстеншене?

Проблема именно на форме, потому что из table browser все работает как задумано.

Нашелся вот такой вариант, ошибка так не появляется, но со строки уйти нельзя.
X++:
[FormDataSourceEventHandler(formDataSourceStr(CreditCardTable, *****LogisticsPostalAddress), FormDataSourceEventType::ValidatingWrite)]
    public static void ****LogisticsPostalAddress_OnValidatingWrite(FormDataSource sender, FormDataSourceEventArgs e)
    {
        var datasource = sender as FormDataSource;
        var args = e as FormDataSourceCancelEventArgs;
        if (args != null && datasource != null)
        {
            args.cancel(true);

        }
    }
Миниатюры
Нажмите на изображение для увеличения
Название: addressOnFormExtension.jpg
Просмотров: 158
Размер:	148.2 Кб
ID:	12165  
Старый 15.12.2018, 00:52   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
ValidateEventArgs validateEventArgs = e;
validateEventArgs.parmValidateResult(true);

так вы, по идее, уйдёте со строки
но не факт, что это заменит перекрытие супера
__________________
С уважением,
Вячеслав
Старый 15.12.2018, 00:55   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Как вариант - немного подождать

Цитата:
Add the ability to skip the Write and ValidateWrite form datasource methods on extended datasources so they can be made read-only (Ref# 198754).
https://docs.microsoft.com/en-us/bus...extensibility3
Старый 15.12.2018, 01:04   #4  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от pitersky Посмотреть сообщение
ValidateEventArgs validateEventArgs = e;
validateEventArgs.parmValidateResult(true);

так вы, по идее, уйдёте со строки
но не факт, что это заменит перекрытие супера
ValidateEventArgs и FormDataSourceEventArgs это разные типы, а на таблице и так все работает (
X++:
Error		Cannot implicitly convert from type 'FormDataSourceEventArgs' to type 'ValidateEventArgs'.
Старый 15.12.2018, 04:00   #5  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
22 должен быть ну очень скоро, подождите уже.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод модальной формы перед super в кнопке менютембаттона at5454 DAX: Программирование 7 12.02.2015 10:06
Как перекрыть метод для runtime источника данных формы? uchenik DAX: Программирование 1 06.06.2013 15:06
Не исполняется код в CustTable.write() из формы Delfins_imported DAX: Программирование 1 29.11.2005 20:10
Как можно перекрыть метод контрола формы, создаваемого в runtime? chi DAX: База знаний и проекты 7 16.12.2004 17:48
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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