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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.08.2014, 16:15   #1  
JonAx is offline
JonAx
Участник
 
67 / 11 (1) +
Регистрация: 25.07.2014
Заполнения при изменении))
Добрый день!!)) Ребята не подскажете как написать метод чтобы поле ItemName заполнялось при изменении ItemId??

Или подскажите где мне можно посмотреть пример этого метода?
Старый 12.08.2014, 16:24   #2  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от JonAx Посмотреть сообщение
Добрый день!!)) Ребята не подскажете как написать метод чтобы поле ItemName заполнялось при изменении ItemId??

Или подскажите где мне можно посмотреть пример этого метода?
Имеется ввиду отображать ItemName при выборе кода номенклатуры? Тогда Вам нужен дисплей метод для отображения ItemName.

Один из примеров вот SalesLine.ItemName().
Старый 12.08.2014, 16:32   #3  
JonAx is offline
JonAx
Участник
 
67 / 11 (1) +
Регистрация: 25.07.2014
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Имеется ввиду отображать ItemName при выборе кода номенклатуры? Тогда Вам нужен дисплей метод для отображения ItemName.

Один из примеров вот SalesLine.ItemName().
Я тоже так думал, но это обычное поле которое должно заполнятся автоматически при изменении
Старый 12.08.2014, 16:47   #4  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от JonAx Посмотреть сообщение
Я тоже так думал, но это обычное поле которое должно заполнятся автоматически при изменении
Обычно подобное делают с помощью дисплей-методов. А с чем связано создание отдельного поля? Хотят фильтровать по нему?
Старый 12.08.2014, 16:57   #5  
JonAx is offline
JonAx
Участник
 
67 / 11 (1) +
Регистрация: 25.07.2014
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Обычно подобное делают с помощью дисплей-методов. А с чем связано создание отдельного поля? Хотят фильтровать по нему?
будет два поля, одно наименование номенклатуры, а второе краткое наименование, думаю будут фильтровать))
Старый 12.08.2014, 17:08   #6  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от JonAx Посмотреть сообщение
будет два поля, одно наименование номенклатуры, а второе краткое наименование, думаю будут фильтровать))
Лучше ещё раз уточнить цель именно создания полей в таблице, исходя из того, что писал в предыдущих сообщениях.

Но, если все уверены, что должны быть именно поля, можете посмотреть методы modifiedField на таблицах. Также подобное можно реализовать в методе modified для ItemId-field'а датасорса формы.

UPD: Если будет принято решение реализации на таблице, то учтите, что реакция на изменение значения в поле ItemId будет производиться для всех форм, использующих эту таблицу как источник данных.

Последний раз редактировалось Cardagant; 12.08.2014 в 17:19.
Старый 13.08.2014, 10:08   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от JonAx Посмотреть сообщение
будет два поля, одно наименование номенклатуры, а второе краткое наименование, думаю будут фильтровать))
Какая версия Аксапты?
В Ax2012 можно накладывать фильтр по display'ным полям.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: Cardagant (1).
Старый 12.08.2014, 18:36   #8  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Если это только для одной формы, достаточно перекрыть метод modified на поле Itemid датасорса и в нём заполнять itemname согласно itemid с помощью
X++:
InventTable::find(this.itemid);
Старый 12.08.2014, 19:06   #9  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,512 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Имейте в виду, что для формы с большим количеством строк любой дисплей-метод чреват тормозами
__________________
С уважением,
Вячеслав
Старый 12.08.2014, 23:08   #10  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от pitersky Посмотреть сообщение
Имейте в виду, что для формы с большим количеством строк любой дисплей-метод чреват тормозами
На мой взгляд лучше именно дисплей-методы, так как не нужно будет следить за синхронизацией имён в номенклатурнике и "внешних" таблицах.

А чтоб улучшить производительность, если потребуется, на мой взгляд, методы, возвращающие данные такого типа можно добавить в кеш.
Старый 14.08.2014, 19:34   #11  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от JonAx Посмотреть сообщение
Добрый день!!)) Ребята не подскажете как написать метод чтобы поле ItemName заполнялось при изменении ItemId??

Или подскажите где мне можно посмотреть пример этого метода?
Что то тема ушла от истоков

Итого, если не вникать что, зачем и почему, а просто ответить на Ваш вопрос, тогда:
1. Перекройте на вашей таблице метод modifiedField();
2. В нем после super() напишите код:
X++:
switch (fieldExt2Id(_fieldId))
{
        case fieldnum(MyTable, ItemId):
            this.ItemName   = InventTable::find(this.ItemId).NameAlias;
            break;
}
все.
теперь поле ItemName изменяется при изменении поля itemId.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 14.08.2014, 22:36   #12  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
Что то тема ушла от истоков

Итого, если не вникать что, зачем и почему, а просто ответить на Ваш вопрос, тогда:
1. Перекройте на вашей таблице метод modifiedField();
2. В нем после super() напишите код:
X++:
switch (fieldExt2Id(_fieldId))
{
        case fieldnum(MyTable, ItemId):
            this.ItemName   = InventTable::find(this.ItemId).NameAlias;
            break;
}
все.
теперь поле ItemName изменяется при изменении поля itemId.
А если нужно изменять лишь на одной форме, а не на каждой, где есть itemid? Тогда Ваш вариант немного не подходит.
Старый 15.08.2014, 08:44   #13  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
А если нужно изменять лишь на одной форме, а не на каждой, где есть itemid? Тогда Ваш вариант немного не подходит.
Нет. Так не пойдет.
Если у нас в таблице есть поле, зависимое от другого поля, то его надо заполнять из любых форм! А то получится на форме один таблицу заполняю есть, например, наименование номенклатуры, а на другой форме нет. Это бред. Никакой целостности данных.

Более того, писать код на формах это BadPractice (только в крайних случаях).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 15.08.2014, 13:24   #14  
JonAx is offline
JonAx
Участник
 
67 / 11 (1) +
Регистрация: 25.07.2014
Цитата:
Сообщение от lev Посмотреть сообщение
Нет. Так не пойдет.
Если у нас в таблице есть поле, зависимое от другого поля, то его надо заполнять из любых форм! А то получится на форме один таблицу заполняю есть, например, наименование номенклатуры, а на другой форме нет. Это бред. Никакой целостности данных.

Более того, писать код на формах это BadPractice (только в крайних случаях).
Более того, писать код на формах это BadPractice ???
Старый 15.08.2014, 14:06   #15  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1776 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от JonAx Посмотреть сообщение
Более того, писать код на формах это BadPractice ???
http://msdn.microsoft.com/RU-RU/library/aa879485.aspx
За это сообщение автора поблагодарили: lev (2).
Старый 15.08.2014, 16:07   #16  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от JonAx Посмотреть сообщение
Более того, писать код на формах это BadPractice ???
Есть BestPractices (хорошая практика, хороший тон при написании кода). Ссылку на него Вам дал S.Kuskov. Спасибо ему за это!
А есть BadPractices (плохая практика, плохой тон написания кода).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обнуление Цены при изменении Суммы в строке Заказа на покупку Arseniy_F DAX: Функционал 8 05.04.2012 16:38
Оповещение внешней системы при изменении заказа IKA DAX: Программирование 5 19.01.2011 12:19
как мне отслеживать изменении в таблице Daido DAX: Программирование 33 06.02.2008 17:13
Добавление строк при изменении значения контрола 36AC DAX: Программирование 3 11.08.2005 12:56
При изменении количества в заявке ошибка создания партии. ddadream DAX: Функционал 0 17.10.2003 15:31

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

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

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