|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
На форме имеется Grid по таблице SP c полями: SP_nomer, SP_name, produkt_name . Пример записей: SP_nomerSP_name produkt_name №1Наимен1 хлеб батон калач .... №2Наимен2 мука хлеб №3Наимен3 мясо колбаса сосиски .... .................. При открытии формы передается значение переменной produkt , например: produkt=бородинский хлеб или produkt=батон "праздничный" или produkt=молочный калач Как сделать фильтр записей в grid по полю produkt_name, совпадающие с частью выражения в переменной produkt? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 08:04 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
Yulia_P Как сделать фильтр записей в grid по полю produkt_name, совпадающие с частью выражения в переменной produkt? Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 08:41 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
rewareYulia_P Как сделать фильтр записей в grid по полю produkt_name, совпадающие с частью выражения в переменной produkt? Код: plaintext 1.
В такой конструкции ищется полное соответствие переменной produkt в поле produkt_name таблицы SP, т.е. работает только когда produkt=хлеб или produkt=батон...А мне нужно чтобы фильтровало при частичном совпадении, если produkt=бородинский хлеб или produkt=батон "праздничный"!!! Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 09:07 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
А обязательно это нужно делать в виде фильтра или достаточно обойтись курсором? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 09:14 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
DagА обязательно это нужно делать в виде фильтра или достаточно обойтись курсором? мне лишь бы работало, а через фильтр или курсор- все равно...Как сделать тогда через курсор? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 09:23 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
Yulia_P, Лучше всего в форму передавать не одно, а несколко т.н. ключевых слов. Например не "хлеб Бородинский" а "хлеб" и "Бородинский". И фильтр ставить по всем этим словам. Иначе придется при формальном подходе делить передаваемую фразу по словам по пробелам, а далее, возможно, еще перебирать по 1-2-3-4 и т.д. буквы, и все равно выходим на то, что лучше иметь несколько отдельных слов сразу. Кстати, вместо "Праздичный" можно передать "праздничн", чтобы нашлось больше совпадений, и искать именно оператором "$", например по "хлеб" тогда будут найдены и "хлеб подовый" и "хороший хлеб". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 09:55 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
Не советовал бы выражение фильтра помещать в переменную. Может добавить свойство формы и туда записывать фильтр? Фильтр можно строить с функцией LIKE(cExpression1, cExpression2) Можно сделать источником грида и курсор. select * from table where m.produkt like '%'+rtrim(produkt_name)+'%' Надо еще помнить, что для фоксика еще важен регистр. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 10:05 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
Yulia_P В такой конструкции ищется полное соответствие переменной produkt в поле produkt_name таблицы SP, т.е. работает только когда produkt=хлеб или produkt=батон...А мне нужно чтобы фильтровало при частичном совпадении, если produkt=бородинский хлеб или produkt=батон "праздничный"!!! Как это сделать? А надо яснее излагать, что такое "частичное совпадение". Перевожу в нормализованную форму (за вас) - при передаче переменной produkt="бородинский хлеб" требуется отфильтровать записи, где встречаются либо "бородинский", либо "хлеб", либо и то и другое. Если я угадал (опять в угадайки играем), то следует входную переменную produkt вначале разбить на составляющие слова функциями GETWORDCOUNT() и GETWORDNUM(). Назовем эти составляющие слова produkt1, produkt2... и т.д. Тогда фильтр будет такого типа Код: plaintext 1.
P.S. Только не надо так кричать и сыпать восклицаниями. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 10:22 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
GoshaSНе советовал бы выражение фильтра помещать в переменную. Может добавить свойство формы и туда записывать фильтр? Почему выражение в переменной и почему не разделить на слова - поясняю: есть форма1 на которой grid1 по таблице doc_prod. В эту таблицу заносят наименование продукта в поле name_prod и данные по продукту, при заполнении поля doc_sp отрывается форма2 в которой и находится вышеописанный grid по таблице SP, его и нужно отфильтровать по переменной produkt=doc_prod.name_prod...... авторФильтр можно строить с функцией LIKE(cExpression1, cExpression2) Можно сделать источником грида и курсор. select * from table where m.produkt like '%'+rtrim(produkt_name)+'%' Надо еще помнить, что для фоксика еще важен регистр. Не очень поняла где размещать :select * from sp where produkt like '%'+rtrim(produkt_name)+'%' в init формы? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 10:55 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
P.S. Только не надо так кричать и сыпать восклицаниями.[/quot] И вовсе не кричала..спасибки за советы!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 10:58 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
А что за функции такие GETWORDCOUNT() и GETWORDNUM() ? не могу найти описание. У меня VFP 8 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 11:01 |
|
Помогите с фильтром в grid
|
|||
---|---|---|---|
#18+
Yulia_PА что за функции такие GETWORDCOUNT() и GETWORDNUM() ? не могу найти описание. У меня VFP 8 Вы не в курсе, что следует указывать свою версию фокса ? Если не указано, подразумевается последняя. Или продолжаем играть в угадайки и ищем здесь телепатов, угадывающих реальное положение ваших проблем по одному сказанному слову ? Эти функции ищите в VFP9. По большому счету, не сильно трудно разложить символьную переменную на слова и без этих встроенных функций. Для совсем сильно занятых - функция Words() в Foxtools.fll (даже для VFP5). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2009, 12:27 |
|
|
start [/forum/topic.php?fid=41&msg=36309004&tid=1585875]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 147ms |
0 / 0 |