Текущий архив: 2004.04.18;
Скачать: CL | DM;
ВнизBeforePost и LookUp поле Найти похожие ветки
← →
td (2004-03-22 22:50) [0]Есть большое количество маленьких дочерних таблиц, привязанных к основной - родительской.
Их структура почти одинаковая (первые три поля везде называются одинаково):
1. Идентификатор
2. Код родительской таблицы
3. Код записи из справочника - для каждого такого поля создано поле LookUp
4. Одно-два числовых поля.
Большинство таблиц связаны с собственными справочниками, некоторые - с одинаковыми.
Каждая из них открывается в одной и той же форме (модальной, которая при закрытии всякий раз уничтожается). В форму передается TTable.
На событие BeforePost стоит обработчик - проверка на дублирование, на целостность.
Так почему открытием выпадающего списка (для выбора значения из справочника) у одной таблицы срабатывает BEFOREPOST?
Причем, если отключить обработку, перед открытием списка и после выбора появляется сообщение об ошибке "TableSPS: DataSet not in edit or Insert mode." А TableSPS - это справочник!!
Отчаявшись найти ошибку в коде, я удалил эту таблицу из датамодуля, перекомпилировал без нее, никаких следов не должно было остаться. Создал заново. Тоже самое.
Потом подумал, может, это глюк DBGridEh - мало ли, сделал именно для этой таблицы свою собственную форму с обычным DBGrid. Тоже самое.
Ко всему прочему, есть дочерние таблицы, имеющие точно такую же структуру, связанные с этим же справочником - и для них все работает без проблем.
Где ошибку искать?
Спасибо!
← →
Zacho © (2004-03-22 22:58) [1]Пришли мне свой проект. Всё: исходники, таблицы. Мыло есть в анкете. Не обещаю - но если будет время завтра посмотрю.
← →
td (2004-03-23 17:24) [2]спасибо, но там большой проект.
И потом, он военный. Типа секретность и все такое %)
Но хотя бы примерно. С чего бы ты начал искать?
← →
служивый (2004-03-23 20:43) [3]На событие BeforePost стоит обработчик - проверка на дублирование, на целостность.
Проверка делается не с помощью locate?
Если да то таблицу надо после этого перевести в режим редактирования
← →
td (2004-03-23 20:47) [4]
> служивый (23.03.04 20:43) [3]
Проверка делается с помощью запроса.
Но в чем загвоздка - все прекрасно работает для 30 таких же таблиц, ничего не понимаю
← →
служивый (2004-03-23 21:30) [5]1 проверь какие еще есть обработчики для этой таблицы
2 поставь прерывание и пройди пошагово все циклы
← →
td (2004-03-24 19:16) [6]никаких больше обработчиков нет у этой таблицы, которых бы не было у других.
Т.е. я ее даже специально удалял, чтобы убедиться
с пошаговым все уходит в недра DBGridEh :(
← →
служивый (2004-03-24 20:20) [7]TableSPS это тавлица из которой берутся значения или куда вставляются?
← →
служивый (2004-03-24 20:28) [8]e-mail есть ?
← →
td (2004-03-24 22:56) [9]TableSPS - это справочник
lety@mail.ru
Страницы: 1 вся ветка
Текущий архив: 2004.04.18;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.024 c