Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
есть ClientDataSet и необходимо делать фильтрацию по частичному соответствию в полях задаю в четырех TEdit подстроку для фильтра eClientCode eByProjCode eByNameFind eSite затем окончательная кнопка - на ней висит procedure TfLocalProjects.actSearchExecute(Sender: TObject); begin with dsProjects.DataSet do begin Filtered := False; Filtered := True; end; работает только по одному полю а надо чтоб работала комбинация тоже procedure TfLocalProjects.cdsProjectsFilterRecord(DataSet: TDataSet; var Accept: Boolean); begin // куски фильтрации по одному полю With GroupBox4 do begin If (rbClient.Checked) and (rbProjCode.Checked =False) and (rbName.Checked =False) and (rbSite.Checked =False) then Accept := Pos(LowerCase(eClientCode.text), LowerCase(dsProjects.Dataset.fieldbyname('ClientCode').asstring))>0; If (rbProjCode.Checked) and (rbClient.Checked =False) and (rbName.Checked =False) and (rbSite.Checked =False) then Accept := Pos(LowerCase(eByProjCode.text), LowerCase(dsProjects.Dataset.fieldbyname('ProjOrder').asstring))>0; If (rbClient.Checked=False) and (rbProjCode.Checked =False) and (rbName.Checked) and (rbSite.Checked =False) then Accept := Pos(LowerCase(eByNameFind.text), LowerCase(dsProjects.Dataset.fieldbyname('title').asstring))>0 ; If (rbClient.Checked =False) and (rbProjCode.Checked =False) and (rbName.Checked =False) and (rbSite.Checked) then Accept := Pos(LowerCase(eSite.text), LowerCase(dsProjects.Dataset.fieldbyname('Region').asstring))>0 ; //а тут хотелось чтоб совместный сработал - но не судьба If (rbClient.Checked) and (rbProjCode.Checked) and (rbName.Checked=False) and (rbSite.Checked= False) then Accept :=((Pos(LowerCase(eClientCode.text), LowerCase(dsProjects.Dataset.fieldbyname('ClientCode').asstring))>0) and (Pos(LowerCase(eByProjCode.text), LowerCase(dsProjects.Dataset.fieldbyname('ProjOrder').asstring))> 0)); // и так далее я уже не привожу все остальные комбинации // хотя бы добиться чтоб такой вариант сработал end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 06:27 |
|
||
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
Что происходит то, я не понял? Фильтрует неправильно или не фильтрует? Почему не пишешь так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Можно ещё код сократить (спроси меня как), но пусть сначала этот заработает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 08:04 |
|
||
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
окей буду пробовать спасибо ---------------- у меня работают только первые 4 куска взаимоисключающие если введен клиент, то фильтр только по нему должен быть если введен кодпроекта, то фильтр только по нему должен быть если введен имя проекта, то фильтр только по нему должен быть если введен регион, то фильтр только по нему должен быть а последний кусок я в качестве примера привел как хотелось бы чтоб работало он не работает почему-то (а о таком вариант как accept=accept and (.....) я даже не думал) если введен и клиент и код проекта а затем сочетания разные (все комбинации, их немного) в общем все варианты такие 1 2 3 4 1,2 1,3 1,4 2,3 2,4 3,4 1,2,3 1,2,4 1,3,4 2,3,4 1,2,3,4 максимальный фильтр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 09:20 |
|
||
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
Так ты и не написал, что не работает. Не фильтрует вообще или фильтрует неправильно? Или вообще ошибку даёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 10:02 |
|
||
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
дык я ж пишу "у меня работают только первые 4 куска взаимоисключающие " а последний кусок когда два TEdita заполнены и использоваться должны оба "а последний кусок я в качестве примера привел как хотелось бы чтоб работало не работает почему-то " не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 10:18 |
|
||
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
моя твоя не понимай... Я понял, что у тебя не работает фильтр сразу по двум полям. Но не понял что происходит . В чём выражается, что он не работает . Как это проявляется... Почему ты утверждаешь, что первые четыре куска работает, а пятый - нет? Должны же быть какие-то внешние признаки... Фильтр накладывается неправильно, совсем не накладывается или выдаётся сообщение об ошибке... Не знаю, как ещё спросить... Мой код попробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 10:45 |
|
||
|
ребята, утопаю !!!! ClientDataSet и фильтрация
|
|||
|---|---|---|---|
|
#18+
оказывается все у меня работает просто я в качестве флагов использовал RadioButtons статус а они взаимосисключающие, если сидят в groupbox убрал их нафиг и просто проверяю If (eClient.Text <> '') and (eProject.Text = '') and (eName.Text <> '') and (eSite.Text = '') then Accept:= (Pos(.....) > 0) and (Pos()>0); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 21:30 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32221794&tid=2117503]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 432ms |

| 0 / 0 |
