24.03.2004, 11:14 | #1 |
Участник
|
Проблемы с повторной фильтрацией DS
Мне пришлось реализовывать задачу фильрации Закупок по строкам закупок в форме Закупка.
Для этого я разместил на форме checkBox. И если я ставлю галку, то выполнялся ниженаписанный запрос, а если ее нет, то не выполнялся. Я написал в методе checkBox следующее PHP код:
Убираю - и появляется все. Но вот во второй раз и все последующие, когда я опять ставлю галку, уже ничего не исчезает и запрос этот уже не строиться. Т.е. через Info(PurchTable_DS.query().dataSourceNo(1).tostring()); я вижу что у меня в запросе только PurchTable и все! Почему и как это исправить? |
|
24.03.2004, 13:01 | #2 |
Участник
|
При нажатии на галку ты каждый раз добавляешь новый источник, а удалять старые кто будет?
|
|
24.03.2004, 14:11 | #3 |
Участник
|
Цитата:
Изначально опубликовано dn
При нажатии на галку ты каждый раз добавляешь новый источник, а удалять старые кто будет? PHP код:
подскажите, пожалуйста, как нужно правильно сделать? |
|
24.03.2004, 14:33 | #4 |
Модератор
|
Это не поможет! создай новый qbds с теми же параметрами.
|
|
24.03.2004, 14:59 | #5 |
Участник
|
Цитата:
Изначально опубликовано George Nordic
Это не поможет! создай новый qbds с теми же параметрами. |
|
24.03.2004, 17:23 | #6 |
Модератор
|
попробуй:
PHP код:
|
|
24.03.2004, 17:46 | #7 |
Участник
|
Когда работаешь с Query, очень полезно написать такой кусок кода:
PHP код:
|
|
24.03.2004, 17:47 | #8 |
Участник
|
Нет, к сожалению, не помогает ...
Я через init() вижу следующие запросы Первый раз поставил галку SELECT * FROM PurchTable USING INDEX PurchIdx EXISTS JOIN * FROM PurchLine WHERE PurchTable.PurchId = PurchLine.PurchId все как надо Первый раз снял галку SELECT * FROM PurchTable USING INDEX PurchIdx Второй раз поставил галку SELECT * FROM PurchTable USING INDEX PurchIdx т.е. со второго раза у меня не создается моя связка ... Никак не пойму почему? |
|
24.03.2004, 18:19 | #9 |
Модератор
|
Имелось в виду:
PHP код:
а лучше так: query.dataSourceNo(1).toString; то же самое только без лишнего мусора. |
|
24.03.2004, 18:30 | #10 |
Участник
|
Использование exportXML()
показало, что у меня запросы добавляются друг за дружкой, а не подменяются. Т.е. как мне убирать предыдущий запрос? PHP код:
|
|
24.03.2004, 18:43 | #11 |
Участник
|
просто не стоит каждый раз при нажатии добавлять ЕЩЁ ОДИН DataSource, найди старый и сделай с ним, что душе угодно:
PHP код:
|
|
24.03.2004, 18:45 | #12 |
Модератор
|
Черт. сам перемудрил и Вас запутал. Мы как раз от этой строчки уйти пытались
Попробуйте создать переменную - query и в нее при начальном ините query = new Query(PurchTable_DS.query()); тогда в PHP код:
Может, есть и проще способ... |
|
24.03.2004, 18:47 | #13 |
Участник
|
Цитата:
Изначально опубликовано ArturK
Я выполняю следующее, когда снимаю галку PHP код:
а это нужно делать только один раз при первом нажатии (или вообще заранее). |
|
24.03.2004, 18:57 | #14 |
Модератор
|
Да, так все и происходит.
Может, в ините добавить qbds = PurchTable_DS.query().dataSourceNo(1).addDataSource(tableNum(PurchLine)); тогда код будет выглядеть так: PHP код:
|
|
25.03.2004, 06:47 | #15 |
Участник
|
PHP код:
|
|
25.03.2004, 09:57 | #16 |
Участник
|
Спасибо всем за помощь!
У меня все заработало так как надо... |
|
25.03.2004, 10:24 | #17 |
----------------
|
А теперь попробуй наложить фильтр по клиенту, а потом поставь галочку (фильтр по строкам)
|
|
25.03.2004, 10:47 | #18 |
Участник
|
Может заодно и меня кто просветит.
Я тут разбираю аналогичную ситуацию (динамическое изменение DataSource), так вот в разбираемом мной коде предпочитают разнести правку Query и его замену в DataSource, т.е. логика примерно следующая: PHP код:
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|