Событие в интерфейсе

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Событие в интерфейсе

Сообщение Deinis »

Какое событие вызывается после выбора из списка в скрине???
Window wParam 'Задайте параметры идентификатора &VIP[Obj:"MySumByKAU"]' (,,) EscClose;
Show at (17,5,95,13);
Screen scParam (,,);
Show at (,,,);
Fields
P1 ('Что требуется делать с суммой',,sci13EnEsc) :
[LIST 0 ' ',
1 'РАСПРЕДЕЛИТЬ ПО КАУ',
2 'ПРОСМОТРЕТЬ/ОТРЕДАКТИРОВАТЬ РАЗНОСКУ',
3 'ФОРМИРОВАТЬ ПРОВОДКИ',
4 'ЗАВЕРШИТЬ РАБОТУ'] , Protect;
P2 ('Какую сумму будем распределять',,sci13EnEsc) :
[LIST 0 ' ',
1 'ВСЯ СУММА ПО ХОЗОПЕРАЦИИ',
2 'ЗАПРОСИТЬ СУММУ',
3 'СУММА ПО БИЛЕТАМ И ИХ ВОЗВРАТАМ'] , Protect;
<<
Что делать с требуемой суммой: .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Сумма для распределения: .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
End;
HandleEvent // window
cmPick : {
Case CurField of
#P2 : { // Параметр P2 (сумма для распределения) имеет
// значение лишь для Действий: DISTRIBUTE и EDIT
if ( (P1 <> 1) and (P1 <> 2) )
then { Message ('Параметр "Cумма для распределения" имеет значение '+
'лишь для Действий:'#13+
'- РАСПРЕДЕЛИТЬ ПО КАУ;'#13+
'- ПРОСМОТРЕТЬ/ОТРЕДАКТИРОВАТЬ РАЗНОСКУ');
P2 := 0 ;
}

End; // HandleEvent
End; // window

cmPick вызывается до (!!!) выбора конкретного значения параметров.
cmCheckField вообще не отрабатывается...

Какое событие нужно обработать, чтобы параметр P2 закрывался для редактирования, если P1 <> 1 and P1 <> 2 ? ???
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Событие в интерфейсе

Сообщение m0p3e »

Насколько я помню cmCheckField панельное событие... ;)
Добавь панель.
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Событие в интерфейсе

Сообщение Deinis »

Заработало!!! Огромное спасибо!!!
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Событие в интерфейсе

Сообщение Maverick »

Вообще на будущее хорошо бы запомнить что хорошим тоном считается следующее - одна панель-одна таблица и синтаксис примерно такой:
Interface .....
Create View
...
As Select
...
From
....
WHERE
((
...
))
.....
;
Процедуры

Функции

Window Win1
Panel panWin1
тут скрин или броуз или дерево
HandleEvent //handle PanWin1

End;
End;
HandleEvent //handle Win1

End;
End;

Window Win2
Panel panWin2
тут скрин или броуз или дерево
HandleEvent //handle PanWin2

End;
End;
HandleEvent //handle win2

End;
End;
....
Panel Pan1
....
HandleEvent //handle Pan1

End;
End;

Panel Pan2
...
HandleEvent //handle Pan2

End;
End;
....

HandleEvent //main Handle Inter

End;

END.
Соответственно тогда события легко разбросать по соответствующим обработчикам
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Событие в интерфейсе

Сообщение Maverick »

Кстати, желающие могут проэкспериментировать с событиями.
для этог достаточно в главном обработчике интерфейса прописать хитрое событие:

Handleevent
....
Always : Message (CurCommand);
....
End;
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Событие в интерфейсе

Сообщение m0p3e »

Шаман, однако... ;)
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Событие в интерфейсе

Сообщение Deinis »

2 Maverick:
Насчет "Always : Message (CurCommand);" - очень и очень любопытная штука. :))
Ведь на самом деле вопрос о событиях в фейсе поднимался довольно часто в форуме.
Так что очень и очень полезная весчь :))

Спасибки!!!
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Событие в интерфейсе

Сообщение Maverick »

Поясню - данная штука вернет номер события, совпадающий с описанием в galnet.inc (относительно - в ccm-файлах)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
shuma
Постоянный гость
Сообщения: 76
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж
Контактная информация:

Re: Событие в интерфейсе

Сообщение shuma »

Не компилится у меня с Always. Говорит "Ожидалось арифметическое выражение".
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Событие в интерфейсе

Сообщение Deinis »

Не ставь двоеточие после Always
shuma
Постоянный гость
Сообщения: 76
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж
Контактная информация:

Re: Событие в интерфейсе

Сообщение shuma »

:o Сколько событий! Деинис, спасибо!
shuma
Постоянный гость
Сообщения: 76
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж
Контактная информация:

Re: Событие в интерфейсе

Сообщение shuma »

Может есть у кого файлы *.ccm и *.csc с константами событий? Намыльте пожалуйста.
uliacat@mail.ru
Ответить