Страница 1 из 1

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

Добавлено: 28 авг 2003, 14:36
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 ? ???

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

Добавлено: 28 авг 2003, 14:49
m0p3e
Насколько я помню cmCheckField панельное событие... ;)
Добавь панель.

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

Добавлено: 28 авг 2003, 15:15
Deinis
Заработало!!! Огромное спасибо!!!

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

Добавлено: 04 сен 2003, 08:56
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.
Соответственно тогда события легко разбросать по соответствующим обработчикам

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

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

Handleevent
....
Always : Message (CurCommand);
....
End;

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

Добавлено: 15 сен 2003, 14:01
m0p3e
Шаман, однако... ;)

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

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

Спасибки!!!

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

Добавлено: 16 сен 2003, 17:12
Maverick
Поясню - данная штука вернет номер события, совпадающий с описанием в galnet.inc (относительно - в ccm-файлах)

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

Добавлено: 03 мар 2004, 12:17
shuma
Не компилится у меня с Always. Говорит "Ожидалось арифметическое выражение".

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

Добавлено: 03 мар 2004, 12:23
Deinis
Не ставь двоеточие после Always

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

Добавлено: 04 мар 2004, 18:20
shuma
:o Сколько событий! Деинис, спасибо!

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

Добавлено: 04 мар 2004, 18:35
shuma
Может есть у кого файлы *.ccm и *.csc с константами событий? Намыльте пожалуйста.
uliacat@mail.ru