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

Выборка данных

Добавлено: 26 ноя 2012, 11:58
Marisha_P
Подскажите, пожалуйста, как осуществить выборку данных...
Есть свой интерфейс с накладными

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

Create View Nakl
var
 bdate  :date;
 edate  :date;
 markers,FieldMarkers,IndexNo : longint;
 vidsopr: word;
 marker_str:string;
select
  if (SearchMarker(Markers, katsopr.nrec, IndexNo) = True, '√', ' ') (FieldName=Picked),
 katsopr.nsopr,
 katsopr.dsopr,
 katpodr.name,
 katpodr1.name
from
 katsopr(readonly),katpodr, synonym katpodr katpodr1,sklorder
Where
  ((
    vidsopr==Katsopr.vidsopr and
    bdate<<=katsopr.dsopr and
    edate>>=katsopr.dsopr and
    katsopr.cpodrfrom==katpodr.nrec and
    katsopr.cpodrto==katpodr1.nrec
    and Katsopr.nrec/==SklOrder.csopr
   ))
   ;
Parameters bdate,edate,vidsopr,marker_str;
Нужно добавить еще один параметр в выборку - множественный выбор из интерфейса GetAnyPodr для подразделений , выбранные значения хранятся в pick.. Можно для view сделать ограничения по выбранным подразделениям?

Re: Выборка данных

Добавлено: 26 ноя 2012, 12:37
edward_K
Все зависит для чего.
Если для отчета, то лучше добавить в сам запрос
типа

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

and      11 == Pick.wlist
and Pick.crec == Katsopr.cpodrto
и обход делать соотв по Pick + Katsopr
Если для просмотра, то можно добавить баундс

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

bounds byPick 11 == Pick.wlist
and  Katsopr.cpodrto /== Pick.crec 
и где то проверить что есть пометка и добавить AddBounds(tbbyPick)
Для ускорения лучше перегрузить Pick во временную таблу(с одним полем - nrec), хотя сам Pick и так кэшируется, но там может быть много другой инфы.

Re: Выборка данных

Добавлено: 26 ноя 2012, 12:47
Marisha_P
Спасибо!
Нужно для просмотра - ограничить накладные по подразделениям и складам в своем интерфейсе

Re: Выборка данных

Добавлено: 26 ноя 2012, 12:59
Marisha_P
Правильно выбирает нужные значения, но почему то первая строка в интерфейсе всегда отображается одинаково, независимо от ограничений:(

Re: Выборка данных

Добавлено: 26 ноя 2012, 14:45
edward_K
Ну после наложения ограничения нужно еще обновить окно

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

if getfirst katsopr=0 {}
Rescanpanel(#katsopr)

Re: Выборка данных

Добавлено: 26 ноя 2012, 15:23
Marisha_P
Спасибо большое за помощь!
Забыла про getfirst:(