Событие в интерфейсе
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Событие в интерфейсе
Какое событие вызывается после выбора из списка в скрине???
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 ? ???
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: Событие в интерфейсе
Насколько я помню cmCheckField панельное событие...
Добавь панель.
Добавь панель.
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Событие в интерфейсе
Заработало!!! Огромное спасибо!!!
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Событие в интерфейсе
Вообще на будущее хорошо бы запомнить что хорошим тоном считается следующее - одна панель-одна таблица и синтаксис примерно такой:
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.
Соответственно тогда события легко разбросать по соответствующим обработчикам
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.
Соответственно тогда события легко разбросать по соответствующим обработчикам
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Событие в интерфейсе
Кстати, желающие могут проэкспериментировать с событиями.
для этог достаточно в главном обработчике интерфейса прописать хитрое событие:
Handleevent
....
Always : Message (CurCommand);
....
End;
для этог достаточно в главном обработчике интерфейса прописать хитрое событие:
Handleevent
....
Always : Message (CurCommand);
....
End;
Re: Событие в интерфейсе
Шаман, однако...
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Событие в интерфейсе
2 Maverick:
Насчет "Always : Message (CurCommand);" - очень и очень любопытная штука. )
Ведь на самом деле вопрос о событиях в фейсе поднимался довольно часто в форуме.
Так что очень и очень полезная весчь )
Спасибки!!!
Насчет "Always : Message (CurCommand);" - очень и очень любопытная штука. )
Ведь на самом деле вопрос о событиях в фейсе поднимался довольно часто в форуме.
Так что очень и очень полезная весчь )
Спасибки!!!
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Событие в интерфейсе
Поясню - данная штука вернет номер события, совпадающий с описанием в galnet.inc (относительно - в ccm-файлах)
-
- Постоянный гость
- Сообщения: 76
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж
- Контактная информация:
Re: Событие в интерфейсе
Не компилится у меня с Always. Говорит "Ожидалось арифметическое выражение".
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Событие в интерфейсе
Не ставь двоеточие после Always
-
- Постоянный гость
- Сообщения: 76
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж
- Контактная информация:
Re: Событие в интерфейсе
Сколько событий! Деинис, спасибо!
-
- Постоянный гость
- Сообщения: 76
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж
- Контактная информация:
Re: Событие в интерфейсе
Может есть у кого файлы *.ccm и *.csc с константами событий? Намыльте пожалуйста.
uliacat@mail.ru
uliacat@mail.ru