Безопасный ввод данных в табличной форме; Оформление табличной формы;

grey.karapetyan
Дата: 20.11.2009 14:47:57
Здравствуйте!
1)В табличной форме есть активная строка с которой работает пользователь (вводит данные), после ввода данных пользователь переходит на следующую строку или вообще на другую вкладку(активная строка теряет фокус). В этот момент мне нужно проверять данные введенные пользователем в строку потерявшую фокус.
в случае выполнения условий нужно показать сообщение поясняющее то, где данные введены некорректно и не вернуть фокус на ту строку с которой он пытался уйти.

подскажите, пожалуйста:
Какое событие табличной формы в данном случае следует использовать?

2)При открытии табличной формы в режиме конструктора я вижу саму форму и компоненты на ней (поле и поле со списком)
при попытке изменить цвет текста или цвет заливки\фона - в режиме конструктора изменения отображаются, а при открытии формы для работы - нет.
Почему так?
ё
Дата: 20.11.2009 14:51:37
grey.karapetyan
Здравствуйте!
1)В табличной форме есть активная строка с которой работает пользователь (вводит данные), после ввода данных пользователь переходит на следующую строку или вообще на другую вкладку(активная строка теряет фокус). В этот момент мне нужно проверять данные введенные пользователем в строку потерявшую фокус.
в случае выполнения условий нужно показать сообщение поясняющее то, где данные введены некорректно и не вернуть фокус на ту строку с которой он пытался уйти.

подскажите, пожалуйста:
Какое событие табличной формы в данном случае следует использовать?

Form_BeforeInsert

grey.karapetyan

2)При открытии табличной формы в режиме конструктора я вижу саму форму и компоненты на ней (поле и поле со списком)
при попытке изменить цвет текста или цвет заливки\фона - в режиме конструктора изменения отображаются, а при открытии формы для работы - нет.
Почему так?

типа - глюк
можно использовать условное форматирование с всегда выполняющимся условием
grey.karapetyan
Дата: 20.11.2009 15:51:36
ё,
1)
Form_BeforeInsert
Срабатывает уже после того как произошла потеря фокуса, то есть когда пользователь начинает вводить данные в строку.
- Не срабатывает тогда, когда пользователь возвращается к одной из предыдущих строк, где данные уже есть и меняет что-то там

- Не срабатывает если пользователь переходит к работе с совершенно другим компонентом на другой вкладке.


2)Хм, странно
выбрал компонент "поле со списком" на табличной форме в режиме конструктора -> клик правой кнопкой мыши -> условное форматирование:
Условие 1:
Значение поле; Не равно; xxxxx123123123 (в моем случае условие выполняется всегда)
Сделал красный цвет фона.
В режиме конструктора - отображается.
При открытии формы - нет.
ё
Дата: 20.11.2009 16:00:37
grey.karapetyan
ё,
1)
Form_BeforeInsert
Срабатывает уже после того как произошла потеря фокуса, то есть когда пользователь начинает вводить данные в строку.
- Не срабатывает тогда, когда пользователь возвращается к одной из предыдущих строк, где данные уже есть и меняет что-то там

- Не срабатывает если пользователь переходит к работе с совершенно другим компонентом на другой вкладке.

ну так Вы же начинали с
автор

с которой работает пользователь (вводит данные),

вот для ввода и ответ
для изменения - Form_BeforeUpdate

> Не срабатывает
что значит "не срабатывает"?
у обоих этих методов/событий есть параметр - Cancel
проверяйте свои условия, и если оно/они не соблюдено
то - Cancel = True
и пользователь НЕСМОЖЕТ НИКУДА ВЫЙТИ из этой строки пока не исправит
и само-собой - ничего не сохранится - ни вставка, ни обновление

grey.karapetyan

2)Хм, странно
выбрал компонент "поле со списком" на табличной форме в режиме конструктора -> клик правой кнопкой мыши -> условное форматирование:
Условие 1:
Значение поле; Не равно; xxxxx123123123 (в моем случае условие выполняется всегда)
Сделал красный цвет фона.
В режиме конструктора - отображается.
При открытии формы - нет.


даже интересно, как это Вы в режиме конструктора
(КОГДА В КОНТРОЛЕ НЕТ ДАННЫХ ДЛЯ АНАЛИЗА УСЛОВНЫМ ФОРМАТИРОВАНИЕМ!!!)
сумели пронаблюдать работу этого условного форматирования???
grey.karapetyan
Дата: 20.11.2009 17:49:28
ё,
Не срабатывает - значит, я создал событие написал в VBA Msgbox ("hello!") и проверяю срабатывание события.


автор
даже интересно, как это Вы в режиме конструктора
(КОГДА В КОНТРОЛЕ НЕТ ДАННЫХ ДЛЯ АНАЛИЗА УСЛОВНЫМ ФОРМАТИРОВАНИЕМ!!!)
сумели пронаблюдать работу этого условного форматирования???


С режимом конструктора я, конечно, ошибся :) цвет был задан в свойствах "поля со списком".
Но в остальном написал как есть. Могу прислать базу, где ситуация видна
ё
Дата: 20.11.2009 17:59:22
grey.karapetyan
....
Могу прислать базу, где ситуация видна


выложи,
посмотрю
grey.karapetyan
Дата: 20.11.2009 18:12:04
ё,
выложил на ifolder, т.к. размер ~300кб
ё
Дата: 20.11.2009 18:21:00
grey.karapetyan
...
т.к. размер ~300кб


удалите все несвязанные с вопросом формы
оставьте минимум данных в таб.
сжать/восстановить (можна пару раз)
в 100 кб - влезит
grey.karapetyan
Дата: 20.11.2009 18:35:24
ё,

ок
grey.karapetyan
Дата: 20.11.2009 18:40:25
ё,
1)по оформлению: см. в режиме конструктора форму Reception_double_query компонент поле со списком "client_id"

2)по отлавливанию событий
см ту же форму событие "До вставки"