KLS 171208

Материал из Фабиус wiki
Версия от 09:24, 31 мая 2018; Hisava (обсуждение | вклад) (Новая страница: «KLS_171208 - это свод из справочника R238 Среднее количество продаж в рознице = Условие = loca…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

KLS_171208 - это свод из справочника R238

Среднее количество продаж в рознице

Условие

local sql, fld, _, i, _2, r20_kods

r20_kods := CHOICEREFR( 'R20', "GRPRECORD( 'KOD' )", { 'KOD', 'PNAME' }, ;
  'KODORG = ' + FACTORYkod, ~Title := 'Пожалуйста, выберите магазин ( один или несколько )' )
if EMPTY( r20_kods )
  return
endif
if ValType( r20_kods ) = 'N'
  r20_kods := { r20_kods }
endif

fld := ' _1,N,5; _2,N,5; _3,C,4; _4,C,40; _5,N,14,4; _6,N,14,4; _7,N,14,4; _8,N,14,4; _9,N,5; _0,D,4; '
_ := CreateTmpFile( fld, '_', ~IsFreeDel := true, ~Own := Self )
_2 := CreateTmpFile( fld, '_2', ~IsFreeDel := true, ~Own := Self )
local ip, my, end_data
ip := INPUTPERIOD( true )
if EMPTY( ip )
  return
endif
M->QwrTitle := ' ( ' + StoD( ip[1] ) + ' - ' + StoD( ip[2] ) + ' )'
my := STOD( ip[1] )
end_data := STOD( ip[2] ) + 1
i := 0
while my <> end_data
  i := i + 1
  sql := [ Select DATDOC, KANAL1, KANAL2, KREFL2, SUM( AMNT ), SUM( "SUM" ) From DOCP] + RET_F_EXT( my ) + [ ;
    Where KINDDOC = 'FRO' and LVLNUM = '2' and DATDOC = '] + SQLDATE( my ) + [' and KREFL1 = 'R20 ' and KANAL2 > 0 and ;
      KANAL1 in ( ] + ARRASSTRING( r20_kods ) + [ ) ;
    Group by DATDOC, KANAL1, KANAL2, KREFL2 ]
  SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _0, _1, _2, _3, _5, _6 ) ] + sql, OpdataPath )
  my := my + 1
end
sql := [ Update ] + TmpFilePath( _2 ) + [ Set _9 = 1 ]
SIMPLESQL( sql, TempPath )
sql := [ Update _2 Set _4 = LEFT( PNAME ,40 ) From ] + TmpFilePath( _2 ) + [ _2 left outer join R08 on _2 = KOD ;
  Where _3 = 'R08 ' ]
SIMPLESQL( sql, ReflisPath )
sql := [ Update _2 Set _4 = LEFT( PNAME ,40 ) From ] + TmpFilePath( _2 ) + [ _2 left outer join R11 on _2 = KOD ;
  Where _3 = 'R11 ' ]
SIMPLESQL( sql, ReflisPath )
( _2 )->( DBGOTOP() )
result := _2
// _1 магазин, код
// _2 товар, код
// _3 товар, справочник
// _4 товар, имя
// _5 количество
// _6 сумма
// _7 среднее количество
// _8 средняя сумма
// _9 количество дней
// _0 дата

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

R238