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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.06.2013, 18:58   #1  
ferioney is offline
ferioney
Участник
 
1 / 10 (1) +
Регистрация: 13.06.2013
Недавно начал заниматься Nav.
И вот никак не могу решить первую поставленною задачу.

Когда в форме заказы (модуль продажи и клиенты) в поле "Продажа клиент Но." кнопкой LookUp выбираю клиента (или вручную набираю его код), то после покидания поля все остальные поля на вкладках заполняются автоматически. Вопрос: каким образом можно сделать это программно. Т.е. программно создать запись в таблице Sales Header, но не присваивать значение каждому полю, а по коду клиента сымитировать авто вставку значений в остальные поля. Где-то же реализована вставка значений при работе с формой
Старый 13.06.2013, 23:45   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от ferioney Посмотреть сообщение
Недавно начал заниматься Nav.
И вот никак не могу решить первую поставленною задачу.

Когда в форме заказы (модуль продажи и клиенты) в поле "Продажа клиент Но." кнопкой LookUp выбираю клиента (или вручную набираю его код), то после покидания поля все остальные поля на вкладках заполняются автоматически. Вопрос: каким образом можно сделать это программно. Т.е. программно создать запись в таблице Sales Header, но не присваивать значение каждому полю, а по коду клиента сымитировать авто вставку значений в остальные поля. Где-то же реализована вставка значений при работе с формой
Тяжел и долог будет путь начинающего программиста) Не в обиду вам лично (вот честно), но не понимаю работодателей, которые предпочитают оплачивать рабочее время (часики), а не быстро сделанную работу.
Но вернемся к делу.
В любом объекте навижена есть триггеры. Откройте таблицу 36 в дизайнере. Ткните в поле Селл-ту кастомер Но. и нажмите клавишу F9. В открывшемся окне курсор будет стоять на первом из двух триггеров этого поля. OnValidate(). Есть еще OnLookup(). Вот в триггере OnValidate() и написан весь интересующий вас код.
Когда делаете программное создание документа объявите переменную на таблице 36. Rec. Скажем имя ей будет SalesHeader. И напишите.
Код:
SalesHeader.INIT;
SalesHeader."Document Type" := SalesHeader."Document Type"::Order; // пусть новый док будет заказом продажи
SalesHeader."No." := '';
SalesHeader.INSERT(TRUE); // здесь присвоится номер по серии номеров. OnInsert() - это тоже триггер в таблице. Параметр TRUE означает, что код в нем будет выполнен
SalesHeader.VALIDATE("Sell-to Customer No.", 'КодКлиента'); // это интересующее вас место. Тут заполнится довольно много полей автоматом
SalesHeader.MODIFY(FALSE);
 


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

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

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