25.12.2003, 17:20 | #1 |
Участник
|
Сложный запрос в DataSource формы
PHP код:
Пытался строить следующую конструкцию: PHP код:
new SELECT * FROM CustTable USING INDEX AccountIdx WHERE (((CustTable.AccountNum like "1*") && (CustTable.AccountNum like "*2"))) но в super() ошибка. Кто может помогите!! Заранее благодарю!! |
|
25.12.2003, 17:45 | #2 |
Участник
|
Может быть так?
PHP код:
|
|
25.12.2003, 17:51 | #3 |
Участник
|
Здесь стоит вопрос больше о том как использовать like и связку "и". Согласен пример немного не удачен, был создан на скорую руку.
|
|
25.12.2003, 18:00 | #4 |
Участник
|
like в расширенной фильтрации в range не работает.
как сделать like и связку "и" для разных полей, вы наверно знаете. |
|
25.12.2003, 18:40 | #5 |
Участник
|
Жаль конечно, что не работает!!!
А то можно было бы таких вещей натворить (шутка). Спасибо за помощь!!! |
|
25.12.2003, 21:18 | #6 |
Administrator
|
Почему же, это сделать как раз можно.
Добавьте еще один DataSource с Table = CustTable, JoinSource = CustTable (или как там у вас первый DataSource называется) и LinkType = ExistJoin. Далее, на первый DataSource наложите фильтр "1*", а на второй - "*2". Получится как раз то, что вы хотели. Другое дело, что смысла в этом особо, ИМХО, нет. Если нужен LIKE и AND для разных полей, это эквивалентно добавлению range на эти поля. Если для одного поля, стоит задуматься об объединении их в один LIKE (что-то не могу придумать пример, где это не удастся сделать; может подскажете?).
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
26.12.2003, 11:58 | #7 |
Участник
|
Цитата:
Другое дело, что смысла в этом особо, ИМХО, нет. Если нужен LIKE и AND для разных полей, это эквивалентно добавлению range на эти поля. Если для одного поля, стоит задуматься об объединении их в один LIKE (что-то не могу придумать пример, где это не удастся сделать; может подскажете?).
Необходимо было отображать в LookUp записи которые удовлетворяют условиям: 1. Ключ должен удовлетворять условию, которое в поле задал пользователь - например: кл*, т.е. все запсиси начинающиеся на "кл". 2. Ключ не должен содержать символа ".". Задачу пытались решить через: PHP код:
Но наткнулись на проблему Цитата:
like в расширенной фильтрации в range не работает.
А вы? |
|
26.12.2003, 12:04 | #8 |
Участник
|
задачу решили как
Цитата:
PHP код:
|
|
27.12.2003, 09:36 | #9 |
Участник
|
Sanya, очень рад, что смог вам помочь!!)))
|
|
27.12.2003, 13:59 | #10 |
Administrator
|
2Sanya
Ваше решение совершенно не учитывает фильтрации и сортировки пользователя в форме. Я вам все-таки рекомендую воспользоваться стандартным Query, тем более, что я уже написал, как это делается. Соедините DataSource'ы по NotExistJoin. Отфильтруйте вложенный DataSource с rangeValue = "*.*", а основной с rangeValue = "кл*". Все Range установите в Init DataSource'ов и присвойте им статус Hidden или Locked.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
27.12.2003, 14:41 | #11 |
Участник
|
Цитата:
Ваше решение совершенно не учитывает фильтрации и сортировки пользователя в форме
И вот еще встречный вопрос, а что если критерии будут наращиваться, то прийдется и DataSource'ы наращивать!!??? |
|
27.12.2003, 14:54 | #12 |
Administrator
|
Цитата:
Изначально опубликовано Vasilenko Alexsandr
Об этом было сказано еще в самом первом сообщении. Но если в сложившейся ситуации эти фунуции не играют важной роли, то я думаю что ними можно пожертвовать. Цитата:
Изначально опубликовано Vasilenko Alexsandr
И вот еще встречный вопрос, а что если критерии будут наращиваться, то прийдется и DataSource'ы наращивать!!???
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
|