|
|
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
Вообщем, поделителсь идеями, как отследить изменение данных записи, а не отдельного поля ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 13:20 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
Скажи цель, для чего нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 13:33 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
Если ты имеешь ввиду что тебе нужно отследить что любое поле в текушей записи изменилось , то у меня например в гриде на AfterRowColChange стоит вызов метода формы IsDataChanged с таким кодом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. также можно использовать GETNEXTMODIFIED и GETFLDSTATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 13:39 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
PaulWistСкажи цель, для чего нужно. К примеру для корректности ввод. Ну скажем, поле А должно быть всегда меньше Б, а С = {10,20,30} и А<=C<=B. Потм все они могут корректироватся естественно. И не очень хочется ставить обработчик на каждое поле, лучше бы отловить момент, когда пользователь отредактировал то, что ему надо было и уходит с записи на следующую. А если повесить что на AfterRowColChange, то может быть так, к примеру: А=5, С=10, В=15, дальше пользователь меняет, к примеру С=20 - и что дальше ? А<=C<=B - ошибка ? или он хочет продолжить редакрирование ? Примеров может быть масса. Вообщем хотелось бы отловить событие окончания редактирования записи. Вообщем, еcли кто знаком с Access, там есть событие AfterUpdate для формы, хотелось бы такое для Grid-a. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 15:54 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
SergeyVZ PaulWistСкажи цель, для чего нужно. К примеру для корректности ввод. Ну скажем, поле А должно быть всегда меньше Б, а С = {10,20,30} и А<=C<=B. Потм все они могут корректироватся естественно. И не очень хочется ставить обработчик на каждое поле, лучше бы отловить момент, когда пользователь отредактировал то, что ему надо было и уходит с записи на следующую. А если повесить что на AfterRowColChange, то может быть так, к примеру: А=5, С=10, В=15, дальше пользователь меняет, к примеру С=20 - и что дальше ? А<=C<=B - ошибка ? или он хочет продолжить редакрирование ? Примеров может быть масса. Вообщем хотелось бы отловить событие окончания редактирования записи. Вообщем, еcли кто знаком с Access, там есть событие AfterUpdate для формы, хотелось бы такое для Grid-a. Ну это просто, для таких задач используют правила поля Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 16:25 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
PaulWistНу это просто, для таких задач используют правила поля В общем случае не Rule поля, а Rule уровня записи, поскольку заранее неизвестно в каком порядке будут заполняться поля. Например, если стоит условие A<B, то ни в коем случае нельзя заполнять поле "A" до того, как будет заполнено поле "B". Но в общем случае этого гарантировать невозможно. Также можно делать такую проверки в триггерах на вставку и обновление. Отличие в том, что RULE будет срабатывать и при изменении в буфере таблицы, а триггер только в момент собственно записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 17:01 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
Может оно и просто, но где это все должно работать ? И если это не база, а просто набор разбросанных таблиц и эти А,В,С, это ключи никак не связанных таблиц, тогда опять чего то искать. Видать выражаюсь не совсем понятно. Попробую проще: в Grid-e есть событие BefoRowColChange, которое реагирует на смену и столбца и строки, а я хочу событие ну типа BefoRowChange, т.е. такое, которое будет реагировать ТОЛЬКО на смену строки. Можно такое сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 17:02 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
У Grid есть свойство RowColChange, которое показывает какое было перемещение - по строкам или по столбцам. Вот внутри BeforRowColChange() и анализируй. Только не спрашивай "почему у меня его нет". Версию FoxPro надо писать. Кроме того, поскольку ты не даешь ВСЮ постановку задачи, а только то как ТЫ видишь ее решение, то ничего вразумительного в ответ не получишь. Диалог имеет вид: - Сделай вот так - Я так не могу, потому что у меня вот этого нет - Ну, сделай вот так - Я так не могу, потому что мне этого нельзя Так приведи ПОЛНОСТЬЮ что у тебя есть, что надо получить и ЗАЧЕМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 17:13 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
ВладимирМ В общем случае не Rule поля, а Rule уровня записи, поскольку заранее неизвестно в каком порядке будут заполняться поля. Например, если стоит условие A<B, то ни в коем случае нельзя заполнять поле "A" до того, как будет заполнено поле "B". Но в общем случае этого гарантировать невозможно. Вот именно мне и надо Rule уровня записи. А в VFP 5.0 это можно как-то сделать, если базы как таковой нет, а просто есть набор таблиц ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 17:21 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
Конечно лучше положить таблицу в базу и навесить проверки на тригера или на правила записи. Для VFP9 можно пользовать RowColChange. ******** Ну ежели на базу проверки перенести нельзя, и версия фокса старая то делаем так : создаем свойство формы sRID в него мы будем запоминать значение идентификатора записи или если его нет то Recno() и инициируем его несуществующим значением. в AfteRowСolChange пишем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. кстати я таким способом продолжаю пользоваться и в 9, поскольку RowColChange после рефреша сбрасывается в 0, что не всегда есть хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 17:28 |
|
||
|
Как реализовать событие типа AfterUpdate в Grid-e для записи ?
|
|||
|---|---|---|---|
|
#18+
ВладимирМ PaulWistНу это просто, для таких задач используют правила поля В общем случае не Rule поля, а Rule уровня записи, поскольку заранее неизвестно в каком порядке будут заполняться поля. В данном примере "общий случай" разбивается на два 1. Модификация данных командами update, insert 2. Модификация интерактивно. Так вот, правило поля будет срабатывать только при переходе на др. запись при интерактивном режиме, те ошибку будем получать тогда , когда заполнили все поля. Поэтому твою фразу надо переписать В общем случае Rule поля И Rule уровня записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 17:36 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33967840&tid=1590832]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 517ms |

| 0 / 0 |
