Проверка условий при нажатии кнопки "ОК!"
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Проверка условий при нажатии кнопки "ОК!"
Добрый день, всем!
Как правильно написать код кнопки "Ок!", когда нужно проверить, например правильность заполнения полей, и если что не правильно,
то вернутся к редактированию формы, если правильно то закрыть форму?
Заранее благодарен.
Как правильно написать код кнопки "Ок!", когда нужно проверить, например правильность заполнения полей, и если что не правильно,
то вернутся к редактированию формы, если правильно то закрыть форму?
Заранее благодарен.
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Проверка условий при нажатии кнопки "ОК!"
Вы бы указали версию клариона и какие шаблоны используете (Clarion,ABC)...
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Проверка условий при нажатии кнопки "ОК!"
Самое простое, до Generated code в Event-е кнопки
Код: Выделить всё
IF a <> 0 THEN select(a); CYCLE END
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Проверка условий при нажатии кнопки "ОК!"
"CYCLE" не совсем здесь точно. Лучше сразу "return Level:Notify". Подозреваю, что обработка CYCLE в данных методах ABC-классов осталась для совместимости с Legacy.
We are hard at work… for you.
Проверка условий при нажатии кнопки "ОК!"
Что до меня, то меня вполне устраивает использование CYCLE. Только здесь есть одна ошибка. Надо бы так:gopstop2007 писал(а): Самое простое, до Generated code в Event-е кнопкиКод: Выделить всё
IF a <> 0 THEN select(a); CYCLE END
Код: Выделить всё
IF a <> 0 THEN select(?a); CYCLE END
- morkovin
- Ветеран
- Сообщения: 909
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Проверка условий при нажатии кнопки "ОК!"
Не понимаю, почему просто не использовать шаблоны Sv Business Rules (global / local)?когда нужно проверить, например правильность заполнения полей, и если что не правильно,
то вернутся к редактированию формы, если правильно то закрыть форму?
WBR, morkovin
Проверка условий при нажатии кнопки "ОК!"
CW6.3 ABC. Мне потребуется сделать несколько больше, реализовать причинно-следственную связь в последовательности записей. Поскольку содержимое очередной записи в моей задаче может зависеть от содержания предыдущей записи, то и при добавлении/редактировании последней записи я должен прочитать предыдущую, а по Ok! не только проверить заполнение полей в текущей, но и при определённом условии внести правку в предыдущую запись. Естественно, что сейчас я понятия не имею как это можно настроить и будет делать в АБС. Поделитесь возможными решениями, плиз!
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Проверка условий при нажатии кнопки "ОК!"
На мой взгляд, неправильный подход. Не знаю конкретики, но я бы сделал наоборот - сначала прочитал бы содержимое предыдущей записи, а потом позволил бы пользователю занести только то, что можно. Ну и пример недавний для понимания. У сотрудника в компании могут быть события: приём на работу, перемещение, увольнение. Так вот. Я проверяю, если нет записей совсем, то может быть только "приём". Если есть "приём", то только "перемещение" или "увольнение". Если есть "увольнение" - то только "приём". Как-то так.ACN писал(а):Поскольку содержимое очередной записи в моей задаче может зависеть от содержания предыдущей записи, то и при добавлении/редактировании последней записи я должен прочитать предыдущую, а по Ok! не только проверить заполнение полей в текущей, но и при определённом условии внести правку в предыдущую запись.
We are hard at work… for you.
Проверка условий при нажатии кнопки "ОК!"
Так и сделано под ДОС, об этом и писал. Причём возможна и цепочка таких связанных записей и не обязательно с предыдущей, но может и с предпредыдущей.
Пояснить суть можно на примере записей наблюдений над объектом. Некоторые наблюдения не получились, пишем то что получилось, ставим пометку повторить, а потом когда повторили возвращаемся и дописываем, что повторено токого то числа. Примерно так.
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Проверка условий при нажатии кнопки "ОК!"
Ну и не надо никаких изменений. Методика работы с реляционными БД не изменилась. Тем более это Clarion, поддерживает старые подходы. В Вашем случае (если всё же хочется писать в предыдущую запись, что неправильно, я бы сделал в новой ссылку на старую) нужно идти в метод окна Kill и там писать в Embeds до закрытия таблиц/файлов свой код, типа:ACN писал(а):Так и сделано под ДОС, об этом и писал.
Код: Выделить всё
if (self.Request=InsertRecord or self.Request=ChangeRecord) and self.Response=RequestCompleted
...
end
We are hard at work… for you.
Проверка условий при нажатии кнопки "ОК!"
Что значит неправильно? Мне понадобится читать старую запись при просмотрах и писать в отчётах и решать вопрос было или нет повторено неудачное наблюдение как и было запланировано. Смысл писать в новую запись есть только тогда когда нет задачи отчётов и контроля, я так понимаю. Другое дело подумать над вспомогательным файлом, но я что ничего не придумал пока.
Вся эта кухня в рамках одной транзакции, однако...
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Проверка условий при нажатии кнопки "ОК!"
Вы в новой записи делаете ссылку на старую. А при просмотрах старой и т.д. отображаете информацию, записанную в новой. Грубо говоря, связь "родитель-ребёнок".
We are hard at work… for you.
Проверка условий при нажатии кнопки "ОК!"
По Вашей методе мне всё равно надо в старой указывать ссылку на новую, потому что я понятия не имею в старой записи о том, что она исполнена должным образом и в какой конкретно очередной новой записи. У меня целые цепочки таких повторений наблюдений. Так что не прокатит писать только в новой, по крайней мере я такой механики пока не придумал.
Выкладывать запись контроля в отдельный дочерний файл тоже не здорово, лишние тормоза на отчётах и логика не проще.