NAH 170512
Материал из Фабиус wiki
Версия от 09:52, 29 декабря 2017; Hisava (обсуждение | вклад) (Новая страница: «NAH_170512 - это свод из справочника R238 = Условие отбора WHERE = local fld, _, _2, sql, ip, my, end_data, msg ip := I…»)
NAH_170512 - это свод из справочника R238
Условие отбора WHERE
local fld, _, _2, sql, ip, my, end_data, msg
ip := InputPeriod( true )
try
WaitMsg( 'Подготовка данных', msg )
fld := ' _1,N,5; _2,N,14,4; _3,N,14,4; _4,N,14,4; _5,N,14,4; '
_ := CreateTmpFile( fld, '_', ~IsFreeDel := true, ~Own := Self )
_2 := CreateTmpFile( fld, '_2', ~IsFreeDel := true, ~Own := Self )
if Empty( ip )
return
endif
M->QwrTitle := ' ( ' + StoD( ip[1] ) + ' - ' + StoD( ip[2] ) + ' )'
my := StoD( ip[1] )
end_data := StoD( ip[2] ) + 1
while my <> end_data
WaitMsg( 'Подготовка данных за ' + Date_Str( my ) + ' года', msg )
// 28 43
sql := [ Select DANAL2, AMNT From PRVS] + Ret_f_ext( my ) + [ Where DEBT = '28 ' and ;
KRED = '43 ' and DATDOC = '] + SqlDate( my ) + [' ]
SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _4 ) ] + sql, OpdataPath )
// до переделов
sql := [ Update _2 Set _1 = UNTILPACK From ] + TmpFilePath( _2 ) + [ _2 left outer join R11 ON _1 = KOD ;
Where UNTILPACK > 0 ]
SimpleSql( sql, ReflisPath )
// PAC4 ( только изделия с расходом муки )
sql := [ Select DANAL2, AMNT From DOCP] + Ret_f_ext( my ) + [ Where KINDDOC = 'PAC' and LVLNUM = '4' and DREFL1 = 'R10 ' and DANAL1 > 0 and ;
] + SqlField( 'PAIN_AMNT' ) + [ <> 0 and DATDOC = '] + SqlDate( my ) + [' ]
SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2 ) ] + sql, OpdataPath )
my := my + 1
end
// _2 -> _
sql := [ Select _1, Sum( _2 ), Sum( _4 ) From ] + TmpFilePath( _2 ) + [ Group by _1 ]
SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _2, _4 ) ] + sql, OpdataPath )
// r11
sql := [ Update _ Set _3 = Round( _2 * WEIGHT, 1 ), _5 = Round( _4 * WEIGHT, 1 ) From ] + TmpFilePath( _ ) + [ _ left outer join R11 ON _1 = KOD ]
SimpleSql( sql, ReflisPath )
( _ )->( DbGoTop() )
result := _
// _1 код
// _2 выработка, штук
// _3 выработка, кг
// _4 брак, штук
// _5 брак, кг
finally
HideMsg( msg )
end