R473PRICE WO SUPPL — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м (Текст программы)
Строка 16: Строка 16:
 
  Parameters  r08_kod, need_date, prc_fld:='OTP_PRICE'
 
  Parameters  r08_kod, need_date, prc_fld:='OTP_PRICE'
 
  Local  prc_arr:={'OTP_PRICE','PRICE1','PRICE2','PRICE3'}, num:=0, tmp_arr, ss
 
  Local  prc_arr:={'OTP_PRICE','PRICE1','PRICE2','PRICE3'}, num:=0, tmp_arr, ss
  if  !Empty(prc_fld);  num:=AScan(prc_arr,prc_fld);  /*num:=max(num,1);*/  endif
+
  if  ![[Empty]](prc_fld);  num:=AScan(prc_arr,prc_fld);  /*num:=max(num,1);*/  endif
 
  if  num!=0;  prc_arr:={prc_arr[num]};  endif
 
  if  num!=0;  prc_arr:={prc_arr[num]};  endif
 
  ss:=ArrAsString(prc_arr)
 
  ss:=ArrAsString(prc_arr)

Версия 08:28, 15 сентября 2016

R473PRICE_WO_SUPPL - это программа из справочника R266

Возвращает цену по заданной номенклатуре на заданную дату из справочника R473

R473PRICE_WO_SUPPL(<r08_kod>, <need_date>, <prc_fld='OTP_PRICE'>)

Пример

R473PRICE_WO_SUPPL( DANAL2, DATDOC, 'PRICE4' )

15-09-2016 8-32-32.png

Текст программы

//Возвращает цену по заданной номенклатуре на заданную дату - поставщик/договор/прайс не существенны.

Parameters  r08_kod, need_date, prc_fld:='OTP_PRICE'
Local  prc_arr:={'OTP_PRICE','PRICE1','PRICE2','PRICE3'}, num:=0, tmp_arr, ss
if  !Empty(prc_fld);  num:=AScan(prc_arr,prc_fld);  /*num:=max(num,1);*/  endif
if  num!=0;  prc_arr:={prc_arr[num]};  endif
ss:=ArrAsString(prc_arr)
result:=ArrCreate(len(prc_arr),0)

tmp_arr:=selectSQLToArr('select R473.VAR_DATE, R473.KOD, '+ss+' from R473, (select MAX(VAR_DATE) VAR_DATE, KOD from '+;
         '(select VAR_DATE, KOD, '+ss+" from R473 where VAR_DATE<='"+SQLDate(need_date)+"') SS group by KOD) DD "+;
         'where R473.KOD='+r08_kod+' and R473.VAR_DATE=DD.VAR_DATE and R473.KOD=DD.KOD', prc_arr, ReflisPath)
if  len(tmp_arr)!=0
  if  len(prc_arr)=1;  result:=tmp_arr[1,1];  else;  result:=tmp_arr[1];  endif
elseif  len(prc_arr)=1;  result:=0
endif

Смотрите также

Функции Delphi

Полезные функции