10.03.2005, 15:57 | #1 |
Участник
|
Какой тригер запускается при запусе формы?
(Например Карточка Клиента.) На сколько я знаю, то тригер OnRun выполняется при запуске, но просматриваю С/AL код и нихрена такого не вижу.. On.... есть, но OnRun нету. Может какой-то другой есть? Спасибо |
|
10.03.2005, 16:10 | #2 |
Moderator
|
OnRun - нет такого триггера в форме.
При запуске формы, сначала отрабатывает OnInit(), потом OnOpenForm(), а затем OnActivateForm(). Если при этом форма содержит TableBox, то последовательность будет несколько другая. |
|
10.03.2005, 16:19 | #3 |
Участник
|
Скажи пожалуйста, почему следующий код:
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 |
Участник
|
т.е. если я размещаю его в "нажатие кнопки", то всё работает.. а в "выполнение при запуске" нет
|
|
10.03.2005, 16:33 | #5 |
Moderator
|
Потому что в момент выполнения кода в триггере OnOpen() у вас еще нет ни "No." ни "Customer Posting Group"
|
|
10.03.2005, 16:34 | #6 |
Участник
|
аа.. и каковы мои действия? какой тригер выполняется после OnOpen()?
|
|
10.03.2005, 16:37 | #7 |
Участник
|
OnActivateForm.. сам нашёл..
Большое спасибо за помощь!!! |
|
10.03.2005, 16:37 | #8 |
Moderator
|
А что собственно надо сделать? Чтобы при открытии карточки клиента выскакивало "Da"?
|
|
10.03.2005, 16:50 | #9 |
Участник
|
Нет
Нужно что бы при открытии Первые две цифры Номера клиента сравнивались с первыми двумя символами Клиент Учётная Группа.. и если нет совпадения, то тогда она даёт сообщение "Лажа". Вот.. ну это часть того, что нужно. Скажи, а какой тригер выполняется при закрытии? |
|
10.03.2005, 16:54 | #10 |
Участник
|
Гы.. опять сам нашёл OnColseForm
А вот такая фишка ещё.. Я хочу сделать форму(галку), если она установлена, то прогарамма плюёт на все несовпадения Но с Кл.Уч.Группа.. но как мне сделать так, что бы установленная галка сохранялась? Я поэксперементировал.. со следующего запуска она опятьне установлена.. это где-то в параметрах формы ставится? или как? |
|
10.03.2005, 17:01 | #11 |
Moderator
|
Хм. Это конечно похвально - вот так триггеры искать, только я бы сначала рекомендовал документацию почитать
По поводу галки. Форма - это runtime-объект. Т.е. тот, который строится непосредственно на клиенте. Все поля, которые были созданы на форме и которые не связаны ни с какими таблицами в БД, при ее(формы) следующем открытии теряются. Чтобы этого избежать - обратите внимания на Properties формы, которые начинаются со слова Save (SaveTableView, SaveValues и т.д.). Если их выставить - поля формы будут сохраняться в файле fin.zup локально на компьютере клиента. Но эти же данные будут потеряны при любом изменении формы в дизайнере, поэтому вашу галку придется хранить в какой-нибудь таблице. |
|
10.03.2005, 17:20 | #12 |
Участник
|
Цитата:
Хм. Это конечно похвально - вот так триггеры искать, только я бы сначала рекомендовал документацию почитать
SaveTableView, SaveValues это для меня отличный вариант, но.. установил оба значения на Yes , однако галка всё равно скидывается |
|
10.03.2005, 17:24 | #13 |
Участник
|
оу.. извиняюсь.. всё работает.. просто я там кое-что перепутал.
Спасибо огромное вам за помощь!!! |
|
10.03.2005, 17:36 | #14 |
NavAx
|
Документация, конечно, на английском и не слишком удачно написана, но уж про триггеры и свойства форм/контролов там все нормально объясняется
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
10.03.2005, 18:22 | #15 |
Moderator
|
Не примите на личный счет, но как правило за такими разработчиками - которые вот так сразу бросаются в бой, без документации, без понимания принципов, практически всегда приходится переделывать и переписывать. Потому что изначально закладывается неправильная концепция .
|
|
15.03.2005, 19:06 | #16 |
Участник
|
Цитата:
Сообщение от tyrex
Не примите на личный счет, но как правило за такими разработчиками - которые вот так сразу бросаются в бой, без документации, без понимания принципов, практически всегда приходится переделывать и переписывать. Потому что изначально закладывается неправильная концепция .
Я например слышал обратное мнение: всё узнаётся именно на практиче и чем парится и рыться в документации, лучше спрашивай у знающих людей.. - почти прямая цитата сказанных мне слов. Человек, который должен меня обучать, сейчас занят.. и что бы не сидеть зря, я решил сам попрактиковаться.. А доку я читаю.. просто ApplDesigner большой.. но постепенно. |
|