вопрос по grid и set filter | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
Добырй день, передаю параметры в форму и делаю set filter по этим параметрам и вроде бы все работает, НО после окончания init в set filter ничего нет, в init filter() выдает все что нужно в lfilt , но если нажму на самой форме кнопку c messagebox(filter()), то будет пустое сообщение,и вся проблема в том что если нажать на grid то появл еще записи которых не должно быть
сам код в init
Исправлено 3 раз(а). Последнее : axeum, 08.07.21 12:27 |
Re: вопрос по grid и set filter | |
---|---|
Burn Сообщений: 5643 Откуда: Днепр Дата регистрации: 02.01.2002 |
lFilt ЛОКАЛЬНАЯ переменная, существующая только в INIT формы. Объявляйте ее как PUBLIC и будет вам счастье.
|
Re: вопрос по grid и set filter | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
на всякий случай так делал в самом начале но не помогло,
вот так делал
Исправлено 1 раз(а). Последнее : axeum, 08.07.21 13:05 |
Re: вопрос по grid и set filter | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Что говорит об очистке фильтра где-то еще. Ищите. ------------------ Лень - это неосознанная мудрость. |
Re: вопрос по grid и set filter | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
понятно что искать а где искать если в методах формы(unload и keypress) кроме init и load я уже и так все закоментил а в методах грида код есть только в AfterRowColChange но там я и это тоже закоментил на всякий случай но не помогло
AfterRowColChange
load
Исправлено 2 раз(а). Последнее : axeum, 08.07.21 13:23 |
Re: вопрос по grid и set filter | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Однако не она влияет, поскольку это макро. А набор переменных pk*, которые часть макро. В текст их преобразовать. ++ доб. pKks анализируется, но в текст макро повторно включается pKkd. Исправлено 2 раз(а). Последнее : Taran, 08.07.21 13:42 |
Re: вопрос по grid и set filter | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
в текст преобразовать т.е. сделать str(pKkd)=str(Kkd)?
с kks немного не удачно получилось, но я всеровно делаю
Исправлено 2 раз(а). Последнее : axeum, 08.07.21 13:50 |
Re: вопрос по grid и set filter | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
В отладчике. ------------------ Лень - это неосознанная мудрость. |
Re: вопрос по grid и set filter | |
---|---|
Burn Сообщений: 5643 Откуда: Днепр Дата регистрации: 02.01.2002 |
У меня работает |
Re: вопрос по grid и set filter | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
А там случайно нет другой открытой таблицы? А то может алиасы путаются. Для этого стоит на всякий случай указывать в каком алиасе что-то делается:
Кроме того:
Объявление имеет смысл делать не в init, а в load. Да и лучше таки же не объявлять public, а просто создать свойство формы, которое и использовать. Скажем просто в дизайнере заранее создать свойство формы lFilt (странно кстати, что ты назвал его так, а не как-то типа cFilt - для текстовой строки как-то более логичнее вроде). И потом просто присваивать этому свойству нужную строку при загрузке и подгружать фильтр, используя это свойство формы. Оно всегда будет видно, пока форма не закрыта. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 3 раз(а). Последнее : Crispy, 08.07.21 15:26 |
Re: вопрос по grid и set filter | |
---|---|
axeum Автор Сообщений: 107 Дата регистрации: 07.07.2020 |
Нашел в чем была ошибка, исправил ее и все заработало так как надо.
Собсно в чем проблема то было, а она была в setfocus я его начал изменять для таблицы но в итоге забыл про него(раньше он ссылался на поле edit)
и отдельное спасибо тебе , без отладчика никогда не нашел бы эту ошибку, теперь с отладчиком я прямо преисполнился в знаниях
|
Re: вопрос по grid и set filter | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Неожиданная развязка.
Вдруг когда случится такое, а я ничего не понял, в чем ошибка была. Ну это риторически. |
Re: вопрос по grid и set filter | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Что ж тут непонятного? Если у тебя вдруг случится "обнуление" фильтра, то это потому, что ты начал, но не закончил изменять setfocus для таблицы - любую работу следует доводить до конца! А отладчик - как навигатор для водителя - запустил, а он и говорит человеческим голосом - "Закончи изменять Setfocus и будет тебе... фильтр!" |
Re: вопрос по grid и set filter | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Красивые слова. Новое узнал: setfocus для таблицы. Надо поизучать. И "отладчик" тоже красиво звучит. Он действительно может сам что-то отладить? Впрочем понятно что я далёк от фильтров, да и вообще от ... Механику бы понять. Где теряется установка фильтра? И, неплохо бы, почему? Но! Такими делами, размером в простынь, здесь занимались единицы. Максимов, Королёв. Честь им и хвала. И многие другие. Полторы руки хватит чтоб пересчитать. Куда и когда делся фильтр? И как это можно отследить именно в дебаггере? |
Re: вопрос по grid и set filter | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Ну поизучай. Тока не для таблицы, а для грида как бы ж. Вообще похоже у автора просто где-то не совсем верный подход. У меня к примеру никогда никакие фокусы ни на что в этом плане не влияли. Т.е. проблем такого рода с фильтрами не возникало от слова "вообще". Не скажу наверняка, но скорее всего тут дело таки вовсе не в "фокусе" как таковом - а именно в другом алиасе, к которому возможно привязан Thisform.Edit1, о чем я и упоминал выше. При активности которого никакого фильтра естественно и нет. Т.е. вещь банальная, без всяких там чудес и волхвований. Иначе все это выглядит, как шаманизм какой-то. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: вопрос по grid и set filter | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Какова, на твой взгляд, вероятность того, что такой "нехилый" фильтр, как показано в задании, безошибочно подойдёт для другой таблицы? Да и в коде игры с Setfocus начинаются позже установки фильтра:
Кстати, последняя строчка выглядит реально круто. Неужели работала? Вот выше был совет про PUBLIC-переменную iFilt. А какое отношение эта переменная может иметь к фильтру после его установки? Вот сообщение от ТС, объясняющее нам действительную причину всех его проблем: И она явно глубже внезапного "обнуления" фильтра - нет базовых знаний. |
Re: вопрос по grid и set filter | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
lFilt используется только в этом методе, её не нужно делать глобальной. А вот переменные pK* должны быть видимы и после завершения работы метода, т.к. фильтр проверяется постоянно, не в момент установки SET FILTER, а во время перехода между записями таблицы, или вывода этих записей в grid/browse и т.п. Но это плохой подход, если уж оставлять фильтр, то стоит сформировать его там, чтобы он не зависел от внешних переменных. Т.к. все эти pK* судя по всему содержат числа и лишь pFn содержит символы, то формировать строку фильтра нужно примерно так:
UPPER(ALLTRIM(FN)) == "что-то-тут" and Kkd=123 and ...И не будет требовать для работы постоянно видимых переменных. ------------------ WBR, Igor |
Re: вопрос по grid и set filter | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
А вот нам выше сообщили, что проблема решилась простым переносом фокуса. Исправлено 1 раз(а). Последнее : akvvohinc, 11.07.21 01:54 |
Re: вопрос по grid и set filter | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
По этой причине, а также из-за того, что в общем случае в символьном или memo-поле могут быть допустимыми и какие-то "неподходящие" символы (например, с кодом 13), из-за которых "так просто" выражение фильтра не построишь, можно "не думая" приводить такие значения к типу Blob (ну, или экранировать всё значение через CHR() - несимпатично):
|
Re: вопрос по grid и set filter | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Как вариант: Если переменные, используемые в выражении фильтра "исчезли", а ошибки автор "глушит", то результат будет именно таким - фильтр сбросится "по-тихому". А то, что он, возможно, "глушит" ошибки следует из такой команды в коде:
|
© 2000-2024 Fox Club  |