CREATE PLAN NHC 3 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) (Новая страница: «CREATE_PLAN_NHC_3 - это функция из справочника R266 = Полный текст функции = parameters kod local fld, active, …») |
Hisava (обсуждение | вклад) м (→Смотрите также) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | CREATE_PLAN_NHC_3 - это функция из справочника [[R266]] | + | [[CREATE_PLAN_NHC_3]] - это функция из справочника [[R266]] |
− | + | Вернуть рецептуру распакованным массивом | |
− | = | + | = Текст = |
− | + | ||
parameters kod | parameters kod | ||
Строка 61: | Строка 60: | ||
// _3 - наименование | // _3 - наименование | ||
// _4 - количество на тонну TON_AMNT | // _4 - количество на тонну TON_AMNT | ||
+ | = Смотрите также = | ||
+ | [[CREATE_PLAN_NHC_2]] | ||
+ | |||
+ | [[CREATE_PLAN_NHC]] |
Текущая версия на 11:36, 18 августа 2020
CREATE_PLAN_NHC_3 - это функция из справочника R266
Вернуть рецептуру распакованным массивом
Текст
parameters kod local fld, active, _, sql, aa active := Active_Rec( kod ) fld := ' _1,C,4; _2,N,5; _3,C,30; _4,N,14,4; ' try _ := CreateTmpFile( fld, '_', ~IsFreeDel := true ) sql := [ Select REFL, KOD, TON_AMNT From R71 Where KODPROD = ] + kod + [ and VAR_NUM = ] + active SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _2, _4 ) ] + sql, ReflisPath ) // r08 sql := [ Update _ Set _3 = Left( PNAME, 30 ) From ] + TmpFilePath( _ ) + [ _ left outer join R08 ON _2 = KOD Where _1 = 'R08 ' ] SimpleSql( sql, ReflisPath ) // r11 sql := [ Update _ ; Set _3 = Left( PNAME, 30 ) ; From ] + TmpFilePath( _ ) + [ _ ; left outer join R11 ON _2 = KOD ; Where _1 = 'R11 ' ] SimpleSql( sql, ReflisPath ) ( _ )->( DbGoTop() ) while !( _ )->( eof() ) if ( _ )->_1 = 'R11 ' aa := StrTran( str( Round( ( _ )->_4 * R11Wght( ( _ )->_2 ), 4 ) ) , ',', '.' ) sql := [ Select REFL, KOD, Round( TON_AMNT * ] + aa + [ / 1000, 4 ); From R71 ; Where KODPROD = ] + ( _ )->_2 + [ and VAR_NUM = ] + Active_Rec( ( _ )->_2 ) SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _2, _4 ) ; ] + sql, ReflisPath ) endif ( _ )->( DbSkip() ) end // в результате возвращаю массив sql := [ Select _2, Sum( _4 ) _4 ; From ] + TmpFilePath( _ ) + [ ; Where _1 = 'R08 ' ; Group by _2 ] aa := SqlToArr( sql, { '_2', '_4' } ) if !IsEmpty( aa ) result := aa endif finally CloseTable( _ ) end // _1 - справочник // _2 - код // _3 - наименование // _4 - количество на тонну TON_AMNT