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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.03.2005, 15:57   #1  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
Какой тригер запускается при запусе формы?
(Например Карточка Клиента.)

На сколько я знаю, то тригер OnRun выполняется при запуске, но просматриваю С/AL код и нихрена такого не вижу.. On.... есть, но OnRun нету. Может какой-то другой есть?

Спасибо
Старый 10.03.2005, 16:10   #2  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
OnRun - нет такого триггера в форме.

При запуске формы, сначала отрабатывает OnInit(), потом OnOpenForm(), а затем OnActivateForm().

Если при этом форма содержит TableBox, то последовательность будет несколько другая.
Старый 10.03.2005, 16:19   #3  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
Скажи пожалуйста, почему следующий код:


IF bool = FALSE THEN BEGIN
IF Customer.GET("No.") THEN BEGIN
MESSAGE('Da');
CustomerCode := Customer."No.";
MESSAGE('CustomerCode %1',CustomerCode);
ConCust1 := COPYSTR(CustomerCode, 1, 2);
MESSAGE('ConCust1 %1',ConCust1);
END
ELSE
MESSAGE('No');

IF CustPostGr.GET("Customer Posting Group") THEN BEGIN
MESSAGE('Da');
END
ELSE
MESSAGE('Net');
CustomerCode := "Customer Posting Group";
MESSAGE('CustomerCode %1',CustomerCode);
ConCust2 := COPYSTR(CustomerCode, 1, 2);
MESSAGE('ConCust1 %1',ConCust2);
END ;

прекрасно всё выполняет и отыскивает при нажатии кнопки OnPush, но не находит данные в том же OnInit?
Хотя всё локальные переменные я перенёс на новый тригер..
Старый 10.03.2005, 16:21   #4  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
т.е. если я размещаю его в "нажатие кнопки", то всё работает.. а в "выполнение при запуске" нет
Старый 10.03.2005, 16:33   #5  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Потому что в момент выполнения кода в триггере OnOpen() у вас еще нет ни "No." ни "Customer Posting Group"
Старый 10.03.2005, 16:34   #6  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
аа.. и каковы мои действия? какой тригер выполняется после OnOpen()?
Старый 10.03.2005, 16:37   #7  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
OnActivateForm.. сам нашёл..
Большое спасибо за помощь!!!
Старый 10.03.2005, 16:37   #8  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
А что собственно надо сделать? Чтобы при открытии карточки клиента выскакивало "Da"?
Старый 10.03.2005, 16:50   #9  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
Нет
Нужно что бы при открытии Первые две цифры Номера клиента сравнивались с первыми двумя символами Клиент Учётная Группа.. и если нет совпадения, то тогда она даёт сообщение "Лажа". Вот.. ну это часть того, что нужно.

Скажи, а какой тригер выполняется при закрытии?
Старый 10.03.2005, 16:54   #10  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
Гы.. опять сам нашёл OnColseForm

А вот такая фишка ещё.. Я хочу сделать форму(галку), если она установлена, то прогарамма плюёт на все несовпадения Но с Кл.Уч.Группа.. но как мне сделать так, что бы установленная галка сохранялась? Я поэксперементировал.. со следующего запуска она опятьне установлена.. это где-то в параметрах формы ставится? или как?
Старый 10.03.2005, 17:01   #11  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Хм. Это конечно похвально - вот так триггеры искать, только я бы сначала рекомендовал документацию почитать

По поводу галки. Форма - это runtime-объект. Т.е. тот, который строится непосредственно на клиенте. Все поля, которые были созданы на форме и которые не связаны ни с какими таблицами в БД, при ее(формы) следующем открытии теряются.
Чтобы этого избежать - обратите внимания на Properties формы, которые начинаются со слова Save (SaveTableView, SaveValues и т.д.). Если их выставить - поля формы будут сохраняться в файле fin.zup локально на компьютере клиента.
Но эти же данные будут потеряны при любом изменении формы в дизайнере, поэтому вашу галку придется хранить в какой-нибудь таблице.
Старый 10.03.2005, 17:20   #12  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
Цитата:
Хм. Это конечно похвально - вот так триггеры искать, только я бы сначала рекомендовал документацию почитать
да да.. кто-то мне это уже говорил но всё равно я убеждён, что лучшее обучение на практике.. Я многие вопросы вычитывал в документации.. но она на английском, да и написана не очень удачно и многие вопросы в ней для меня ещё так и не раскрыты..


SaveTableView, SaveValues это для меня отличный вариант, но.. установил оба значения на Yes , однако галка всё равно скидывается
Старый 10.03.2005, 17:24   #13  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
оу.. извиняюсь.. всё работает.. просто я там кое-что перепутал.
Спасибо огромное вам за помощь!!!
Старый 10.03.2005, 17:36   #14  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Документация, конечно, на английском и не слишком удачно написана, но уж про триггеры и свойства форм/контролов там все нормально объясняется
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 10.03.2005, 18:22   #15  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Не примите на личный счет, но как правило за такими разработчиками - которые вот так сразу бросаются в бой, без документации, без понимания принципов, практически всегда приходится переделывать и переписывать. Потому что изначально закладывается неправильная концепция .
Старый 15.03.2005, 19:06   #16  
Inso is offline
Inso
Участник
 
18 / 10 (1) +
Регистрация: 28.02.2005
Цитата:
Сообщение от tyrex
Не примите на личный счет, но как правило за такими разработчиками - которые вот так сразу бросаются в бой, без документации, без понимания принципов, практически всегда приходится переделывать и переписывать. Потому что изначально закладывается неправильная концепция .
возможно вы и правы.. хотя, все говорят по-разному.

Я например слышал обратное мнение: всё узнаётся именно на практиче и чем парится и рыться в документации, лучше спрашивай у знающих людей.. - почти прямая цитата сказанных мне слов.
Человек, который должен меня обучать, сейчас занят.. и что бы не сидеть зря, я решил сам попрактиковаться..
А доку я читаю.. просто ApplDesigner большой.. но постепенно.
 


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

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

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