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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.06.2009, 14:19   #1  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Какой метод перекрыть?
Очередной глупый вопрос:
При нажатии Ctrl-n в гриде (или каком-то другом вводе новой строчки), привязанному к таблице, хочется, чтобы некоторые поля заполнились определенным образом. При первом рассмотрении ничего похожего не нашел. Как обычно такие трюки в Аксапте проделывают?
__________________
Мой http://erp-blog.ru
Старый 10.06.2009, 14:25   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Опасно делать изменения в системе, когда мало знаешь про систему. Для начала я бы порекомендовал не пожалеть время и прочитать книжку. Ну а если очень надо то смотри метод таблици initValue или метод DataSource с таким же названием.
За это сообщение автора поблагодарили: Бигудь (1).
Старый 10.06.2009, 14:29   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Бигудь Посмотреть сообщение
Очередной глупый вопрос:
При нажатии Ctrl-n в гриде (или каком-то другом вводе новой строчки), привязанному к таблице, хочется, чтобы некоторые поля заполнились определенным образом. При первом рассмотрении ничего похожего не нашел. Как обычно такие трюки в Аксапте проделывают?
Ничего программировать не нужно.
Читайте про шаблоны http://axapta.mazzy.ru/lib/recordtemplates/
__________________
полезное на axForum, github, vk, coub.
Старый 10.06.2009, 14:38   #4  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от konopello Посмотреть сообщение
Опасно делать изменения в системе, когда мало знаешь про систему. Для начала я бы порекомендовал не пожалеть время и прочитать книжку. Ну а если очень надо то смотри метод таблици initValue или метод DataSource с таким же названием.
Я не изменяю, я пытаюсь добавить удобств в созданную мной таблицу. Спасибо, initValue помог!
__________________
Мой http://erp-blog.ru
Старый 10.06.2009, 14:42   #5  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
Ничего программировать не нужно.
Читайте про шаблоны http://axapta.mazzy.ru/lib/recordtemplates/
К сожалению, видимо, шаблоны немного не то (или применять их придется как-то очень нетривиально), дело в том, что вставлять надо то, что зависит от определенной строчки другой таблицы.
__________________
Мой http://erp-blog.ru
Старый 10.06.2009, 15:02   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Бигудь Посмотреть сообщение
К сожалению, видимо, шаблоны немного не то (или применять их придется как-то очень нетривиально), дело в том, что вставлять надо то, что зависит от определенной строчки другой таблицы.
если это "что вставлять надо" является кодом "справочника-владельца" (использую 1Совскую терминологию), то ничего программировать не нужно. Настройте нормальный relation и вызывайте из формы "справочника-владельца", Аксапта сама код подставит.
__________________
полезное на axForum, github, vk, coub.
Старый 10.06.2009, 15:08   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,309 / 3546 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Шаблоны хороши, когда надо по умолчанию вставлять статическую информацию.
Например при добавлении альтернативного адреса - всегда проставлять регион RU.
Если же надо проставлять что-то зависящее от логики системы - то нужно программировать.
И еще хинт. При наложении фильтра - в поля, на которые наложен фильтр - автоматически подставляется значение фильтра.
Т.е. если к примеру, сделан фильтр по текущему сотруднику - то и при создании записи - подставится текущий сотрудник
__________________
Возможно сделать все. Вопрос времени
Старый 10.06.2009, 15:26   #8  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
если это "что вставлять надо" является кодом "справочника-владельца" (использую 1Совскую терминологию), то ничего программировать не нужно. Настройте нормальный relation и вызывайте из формы "справочника-владельца", Аксапта сама код подставит.
Еще чуть-чуть интереснее. Нужно взять булево значение из справочника владельца, и в зависимости от этого значения, присвоить или не присвоить еще одно значение элементу подчиненного справочника. Кстати таблицы у меня связаны не relation, а только joinSource на форме. Можно как-то достучаться до "текущего элемента справочника владельца", т.е. на котором сейчас стоит курсор? Получается так, что этот самый код владельца виден нормально при вводе нового элемента, но this.Numder дает 0. Я полагаю, что это потому, что, по сути элемент еще не записан в бд. Тогда где это хранится? В гриде? Как до грида добраться из метода таблицы?
__________________
Мой http://erp-blog.ru
Старый 10.06.2009, 15:29   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Бигудь Посмотреть сообщение
Еще чуть-чуть интереснее. Нужно взять булево значение из справочника владельца, и в зависимости от этого значения, присвоить или не присвоить еще одно значение элементу подчиненного справочника.
Если бы это было в relation таблиц, то аксапта бы сама сделала.

Цитата:
Сообщение от Бигудь Посмотреть сообщение
Кстати таблицы у меня связаны не relation, а только joinSource на форме.
Зря. В этом случае вся работа ложится на программиста.
__________________
полезное на axForum, github, vk, coub.
Старый 10.06.2009, 16:05   #10  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
Если бы это было в relation таблиц, то аксапта бы сама сделала.
Простите, не очень понял, как это возможно.
Подробнее поясню. Задачка примерно такая: есть документ. У документа есть строчки с колонками: номенклатура и характеристики. Характеристики могут быть разными или одинаковыми во всей накладной. Хочется сделать галочку "Одинаковые", при которой для облегчения ввода характеристика с первой номенклатуры будет применяться ко всем остальным. Именно при вводе новой строчки характеристика будет заполнена значением из первой строки. Как же это реализовать, используя только relation и не программируя?
__________________
Мой http://erp-blog.ru
Старый 10.06.2009, 16:43   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Бигудь Посмотреть сообщение
Простите, не очень понял, как это возможно.
В смысле? Как установить relation с константой?
Берете и устанавливаете.
Название: 1.PNG
Просмотров: 2221

Размер: 40.8 Кб

Цитата:
Сообщение от Бигудь Посмотреть сообщение
Подробнее поясню. Задачка примерно такая: есть документ. У документа есть строчки с колонками: номенклатура и характеристики. Характеристики могут быть разными или одинаковыми во всей накладной. Хочется сделать галочку "Одинаковые", при которой для облегчения ввода характеристика с первой номенклатуры будет применяться ко всем остальным. Именно при вводе новой строчки характеристика будет заполнена значением из первой строки. Как же это реализовать, используя только relation и не программируя?
Такую задачу без программирования не решить, согласен.
Но если "документ" - это заказ или закупка, то в Аксапте уже есть механизм для подобного. Расширьте его для своих полей
http://axapta.mazzy.ru/lib/salestable2line/
__________________
полезное на axForum, github, vk, coub.
Старый 10.06.2009, 17:05   #12  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
для облегчения ввода характеристика с первой номенклатуры будет применяться ко всем остальным
Если это требуется не часто, то можно научить пользователей после ввода первой строки и заполнения поля значением, устанавливать фильтр по этому полю. Тогда при вводе последующих строк данное поле будет заполняться значением фильтра (если, конечно, в каких-то методах оно не переопределяется).
Старый 10.06.2009, 17:51   #13  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Если это требуется не часто, то можно научить пользователей после ввода первой строки и заполнения поля значением, устанавливать фильтр по этому полю. Тогда при вводе последующих строк данное поле будет заполняться значением фильтра (если, конечно, в каких-то методах оно не переопределяется).
А может это программно можно инициировать?
__________________
Мой http://erp-blog.ru
Старый 22.07.2009, 11:57   #14  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
Такую задачу без программирования не решить, согласен.
Но если "документ" - это заказ или закупка, то в Аксапте уже есть механизм для подобного. Расширьте его для своих полей
http://axapta.mazzy.ru/lib/salestable2line/
Кстати про джоб из примера по ссылке:
X++:
static void Job1(Args _args)
{
    SalesTable2LineParameters::initiate();
}
При попытке выполнения вываливается синтаксическая ошибка
__________________
Мой http://erp-blog.ru
Старый 22.07.2009, 12:02   #15  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от Бигудь Посмотреть сообщение
Кстати про джоб из примера по ссылке:
X++:
static void Job1(Args _args)
{
    SalesTable2LineParameters::initiate();
}
При попытке выполнения вываливается синтаксическая ошибка
Поставьте ; (точка с запятой) перед SalesTable2LineParameters, это признак разделения объявления переменных от кода
X++:
static void Job1(Args _args)
{
;    
SalesTable2LineParameters::initiate();
}
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 22.07.2009 в 12:05.
За это сообщение автора поблагодарили: Бигудь (1).
Старый 22.07.2009, 12:08   #16  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Ноги у этого растут из-за "бага" компилятора. Он не всегда может отличить, где объявление переменных, а где код программы. Поэтому, точку с запятой лучше всегда ставить.

Чуть другое, но похоже: чудеса компиляции
Старый 22.07.2009, 12:23   #17  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
Расширьте его для своих полей
http://axapta.mazzy.ru/lib/salestable2line/
А еще в AX4 нет таблицы SalesTable2LineField.
__________________
Мой http://erp-blog.ru
Старый 22.07.2009, 13:01   #18  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от Бигудь Посмотреть сообщение
А еще в AX4 нет таблицы SalesTable2LineField.
А кто Вам сказал, что SalesTable2LineField это таблица, а не класс ?

Такой класс присутствует и в AX4, только вот в статье метод указан не верно, насколько я понимаю нужно внести изменения в методе lineUpdateDescription класса SalesTable2LineField
__________________
Sergey Nefedov
Старый 23.07.2009, 12:10   #19  
Бигудь is offline
Бигудь
Участник
 
101 / 15 (1) ++
Регистрация: 17.06.2008
Да, действительно, класс. Спасибо!
__________________
Мой http://erp-blog.ru
Теги
relation, автозаполнение, шаблон

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
какой метод выполняется на форме... lev DAX: Программирование 8 02.10.2007 16:29
Какой метод возвращает последний день месяца? vasiliy DAX: Программирование 4 27.02.2006 13:43
Какой метод какого класса может вернуть величину прихода/расходa по номенклатуре ATimTim DAX: Программирование 3 21.02.2005 13:06
Как можно перекрыть метод контрола формы, создаваемого в runtime? chi DAX: База знаний и проекты 7 16.12.2004 17:48
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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