13.01.2011, 10:57 | #1 |
Участник
|
Не могу разобраться почему так происходит.
Делаю тестовую табличную форму например на таблице Item. Добавляю TextBox1 c переменной txt. Код: OnValidate SETFILTER("Search Description",'*'+txt+'*'); IF FINDFIRST THEN; Компилирую.Запускаю. Ввожу в TextBox1 какой-нибудь текст (например 11) и перехожу на TextBox2. При этом в таблице все нормально фильтруется. НО когда я кликаю на какую-нибудь строчку в таблице выскакивает сообщение "Вы хотите переименовать запись?" Почему так получается и как от этого избавиться? Для эксперимента добавил на форму кнопку с кодом: Код: OnPush SETFILTER("Search Description",'*11*'); IF FINDFIRST THEN; Но если в этот триггер дописать в конце Код: CurrForm.UPDATE; |
|
13.01.2011, 11:31 | #2 |
Участник
|
А потому что нечего баловаться на открытой форме с Setfilter и Findfist.
Создайте переменную _Item и напишите OnValidate _Item.SETFILTER("Search Description",'*'+txt+'*'); IF _Item.FINDFIRST THEN get(_Item."No.") else ... |
|
13.01.2011, 11:40 | #3 |
Участник
|
Что-то не могу найти как сообщения редактировать.
Дополню. Что если писать: Код: SETFILTER("Search Description",'*11*'); То тоже фильтруется, но строчка на которой стоит курсор (по умолчанию самая верхняя) не обновляется, поэтому я и добавляю FINDFIRST. Видимо навижен думает что продолжает стоять на той же строчке а в поля подтягиваются значения найденные FINDFIRST'ом, и видимо поэтому и выскакивает это сообщение. Как это побороть? |
|
13.01.2011, 11:41 | #4 |
Участник
|
Цитата:
Ну вот я как раз в своих рассуждениях к этому и шел А как быть когда в фильтр не попадает ни одной записи (то что после else)? |
|
13.01.2011, 11:42 | #5 |
Участник
|
Обычно помогает CurrForm.UPDATE(FALSE)
|
|
13.01.2011, 12:02 | #6 |
Участник
|
|
|
13.01.2011, 13:07 | #7 |
Участник
|
|
|