![]() |
#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; |
|
![]() |
#2 |
Участник
|
А потому что нечего баловаться на открытой форме с Setfilter и Findfist.
Создайте переменную _Item и напишите OnValidate _Item.SETFILTER("Search Description",'*'+txt+'*'); IF _Item.FINDFIRST THEN get(_Item."No.") else ... |
|
![]() |
#3 |
Участник
|
Что-то не могу найти как сообщения редактировать.
Дополню. Что если писать: Код: SETFILTER("Search Description",'*11*'); То тоже фильтруется, но строчка на которой стоит курсор (по умолчанию самая верхняя) не обновляется, поэтому я и добавляю FINDFIRST. Видимо навижен думает что продолжает стоять на той же строчке а в поля подтягиваются значения найденные FINDFIRST'ом, и видимо поэтому и выскакивает это сообщение. Как это побороть? |
|
![]() |
#4 |
Участник
|
Цитата:
Ну вот я как раз в своих рассуждениях к этому и шел ![]() А как быть когда в фильтр не попадает ни одной записи (то что после else)? |
|
![]() |
#5 |
Участник
|
Обычно помогает CurrForm.UPDATE(FALSE)
|
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
|
|