SetRange???
4 отговора
122 прегледа
SetRange???
Налага ми са да ранжирам една таблица по два или три вторични индекса създадени предварително.
Опитвам примерно
table1. IndexName='sort' --> sort e вторичен индекс от две полета / имена и градове/;
SetRange(['A','София'],['Б','София']) или SetRange(['A','С'],['Б','Т'])
Но нещо не се получава, ранжира само по първото поле?
Ако можете помогнете и предварително благодаря.
Опитвам примерно
table1. IndexName='sort' --> sort e вторичен индекс от две полета / имена и градове/;
SetRange(['A','София'],['Б','София']) или SetRange(['A','С'],['Б','Т'])
Но нещо не се получава, ранжира само по първото поле?
Ако можете помогнете и предварително благодаря.
Re: SetRange???
Какво значи само по първото поле ?!
Че то SetRange(['A','София'],['Б','София'])
включва всичко от АСофия до БСофия вкл. и АЯмбол
Че то SetRange(['A','София'],['Б','София'])
включва всичко от АСофия до БСофия вкл. и АЯмбол
Re: SetRange???
Искам да бъдат ранжирани всички които започват с буквата А и те
да са само от София. Иначе си прав, че зададено по този начин сега включва и Ямбол.
да са само от София. Иначе си прав, че зададено по този начин сега включва и Ямбол.
Re: SetRange???
Имаш различни възможности за това.
Според мен най-добре е с TQuery => select * from MyTable where (Ltr like"A%")AND(City="София")
Aко държиш на TTable можеш да поставиш Filter='(Ltr="A%")AND(City="София")', но това е бавно решение.
За ускоряване можеш да оставиш SetRange... Така Filter ще пребърква само в избраната област
Според мен най-добре е с TQuery => select * from MyTable where (Ltr like"A%")AND(City="София")
Aко държиш на TTable можеш да поставиш Filter='(Ltr="A%")AND(City="София")', но това е бавно решение.
За ускоряване можеш да оставиш SetRange... Така Filter ще пребърква само в избраната област
Редактирано от NDeu на
Re: SetRange???
благобдая NDeu , ще опитам твойте решения , макър, че го направих по друг начин първо филтрирах данните и след това ги ранжирах.