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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.10.2004, 13:33   #1  
Greggy is offline
Greggy
Участник
 
90 / 14 (1) ++
Регистрация: 19.10.2004
Адрес: г. Томск
Lightbulb Вызов функций одной формы из другой
Здравствуйте!
Помогите пожалуйста! У меня возникла проблема:
Задача изначально была такова - есть форма с текс боксами - рядом с каждым текстбоксом находится кнопка по которой открывается справочник при выборе элемента справочник и выхода из него в текстбокс формы должено копироваться значение справочника (т.е. с помощью справочника мы можем составлять строку из элементов справочника они должны складываться).
Я написал функцию которая изменяет Sourse ТекстБокса - входной параметр у функции - переменная которая должна прибавляться к значению ТекстБокса - Вызываю эту функцию из тригера на закрытие справочника - функция не выполнятеся
Старый 19.10.2004, 15:29   #2  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Если я правильно понял, то вопрос в следующем: при использовании свойства Lookup = Yes у текстбокса при выборе значения из списка новое значение замещает старое, а Вам надо, чтобы эти значения "складывались".
В таком случае проще всего использовать триггер OnLookup текстбокса.
Например, нужно составлять значение текстбокса из кодов товаров из таблицы Item.

Пусть SourceExpression у текстбокса - некая переменная Value:Text.
Больше никаких свойств у текстбокса трогать не надо (в том числе свойство Lookup оставить No)
Заводим переменную OldValue:Text; ItemList: Form Item List; Item: Record Item.
В триггер OnLookup текстбокса напишите следующий код.

PHP код:
OldValue := Value;
CLEAR(ItemList);
ItemList.LOOKUPMODE := TRUE;
IF 
ItemList.RUNMODAL ACTION::LookupOK THEN
  BEGIN
    ItemList
.GETRECORD(Item);
    
Value := OldValue ' ' +Item."No.";
  
END
Старый 20.10.2004, 08:03   #3  
Greggy is offline
Greggy
Участник
 
90 / 14 (1) ++
Регистрация: 19.10.2004
Адрес: г. Томск
Yoil
Спасибо огромное - все работает
Еще я добавил для записи в таблицу
OldValue := Value;
CLEAR(ItemList);
ItemList.LOOKUPMODE := TRUE;
IF ItemList.RUNMODAL = ACTION::LookupOK THEN
BEGIN
ItemList.GETRECORD(Item);
Value := OldValue + ' ' +Item."No.";
-> Поле := Value;
END;
Старый 26.01.2005, 12:36   #4  
zinius is offline
zinius
Участник
 
24 / 11 (1) +
Регистрация: 26.01.2005
OnLookup
Насколько я понимаю в OnLookUp надо делать EXIT(TRUE) дабы показать что выбор произошёл иначе присваивания не произойдёт. Это нужно в случае если значение пихать через переменную OnLookup 'Text'
Пример:
PHP код:
CLEAR(EmplListForm);
EmplListForm.LOOKUPMODE := TRUE;
IF 
EmplListForm.RUNMODAL ACTION::LookupOK THEN BEGIN
  EmplListForm
.GETRECORD(Employee);
  IF 
STRLEN(Text) + STRLEN(Employee."No.") > MAXSTRLEN(TextTHEN
    ERROR
(Text57000);
  
Text += Employee."No.";
  EXIT(
TRUE);
END
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
триггер OnLookup поля формы Alex_V NAV: Программирование 4 14.07.2004 15:12
формы бухг и налоговой отчетности Maxi NAV: Функционал 0 08.12.2003 16:55
Проверка при закрытии формы Nataly NAV: Программирование 5 21.10.2003 13:01
Navision 3.60.03 Открыть документ одной фирмы из другой KuDm NAV: Программирование 8 22.08.2003 17:20
Navision 3.60 Учет документа одной фирмы из другой фирмы KuDm NAV: Функционал 1 04.07.2003 13:54
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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