AXForum  
Zurück   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

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

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
триггер 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 17:27 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.