Страница 2 из 2

Re: PROP:SQLFilter

Добавлено: 25 Январь 2014, 17:36
artgkx
Может кому окажется полезным.
После долгих мучений и созданием тестового примера получилось следующее.
В тестовом примере тоже фильтр не работал. Выражение для фильтра скопировал из скрипта созданного в dbForge Studio.
В этой же строке подставил свои переменные и о чудо, фильтр заработал. Чем объяснить не могу. До этого фильтр набирал просто в sourse. И еще может быть полезным KREATOR. Фильтр тоже определяется в методе Init. Но на этом же окне вводятся переменные для фильтра. После ввода переменных снова формирую строку для фильтра, {PROP:SQLFilter} = 'строка' , и ThisWindow.Reset(1). Browse обновляется согласно новым значениям переменных.

Re: PROP:SQLFilter

Добавлено: 27 Январь 2014, 10:09
kreator
Фильтр определяется в методе ApplyFilter. Свой фильтр надо задавать после Parent Call. Если нужно обновить Browse вручную, то как-то так:

Код: Выделить всё

BRW1.ApplyFilter()
BRW1.ResetQueue(Reset:Queue)
ThisWindow.Reset обновляет всё на окне. Это может быть не нужно, а, во-вторых, долго.

Re: PROP:SQLFilter

Добавлено: 27 Январь 2014, 11:34
Yufil
... И когда мне надоело очередной раз считать апострофы, для своих низменных потребностей написал функцию DateInRange, специально для формирования фильтра по дате

Код: Выделить всё

DateInRange          PROCEDURE  (String FieldName,Long DateFrom=0, Long DateTo=0) ! Declare Procedure
  CODE
  If DateFrom=0 And DateTo=0
    Return(' 1=1 ')
  Elsif DateFrom>0 And DateTo=0
    Return(' (' & FieldName & '>=''' & Format(DateFrom,@d12) & ''') ')
  Elsif DateFrom=0 And DateTo>0
    Return(' (' & FieldName & '<<=''' & Format(DateTo,@d12) & ''') ')
  Else
    Return(' (' & FieldName & ' Between ''' & Format(DateFrom,@d12) & ''' AND ''' & Format(DateTo,@d12) & ''') ' )
  End
Правда, под Мелкософтовский сервер, под Мускул надо адаптировать. Наверное...
Тогда Brw....{Prop:SQLFilter} = ... ' And ' & DateInRange('opl:dat', Loc:dateFrom, Loc:DateTo)

Re: PROP:SQLFilter

Добавлено: 27 Январь 2014, 15:16
Дед Пахом
я всегда использую формат @d10-, как канонический для любого odbc

Re: PROP:SQLFilter

Добавлено: 27 Январь 2014, 16:47
kreator
У меня в FireBird'е d12 не прокатило, прокатывает с любыми разделителями. Кажись, Oracle всеяден.

Re: PROP:SQLFilter

Добавлено: 27 Январь 2014, 16:52
Yufil
У меня @d10- работает на результатах запроса, но не работает в тексте самих запросов. @d12 работает в MS SQL в тексте запросов 100%, @d5 и @d10- зависят от локализации и ненадёжны. Но речь была не об этом, а о том, как слегка сэкономить силы и мозги...