COOLMATONE2 — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
(Новая страница: «COOLMATONE2 - это программа из справочника R266 Подробное движение сырья = Полный текст прогр…»)
(нет различий)

Версия 15:36, 1 июня 2016

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

Подробное движение сырья

Полный текст программы

// Сделать Grid оборотки с ценами

local sql, fld, t, ip, taskanal, tbl

taskanal := GetPrm( 'TASKANAL', TaskName, TaskNum )

if Empty( taskanal )
  taskanal := ChoiceRefr( 'R10', 'KOD', { 'KOD', 'PNAME', 'CODEGROUP' } )
endif

ip := InputPeriod()
if Empty( ip )
  return
endif

fld := ' t_ACNT,C,12; t_REFL,C,4; t_KOD,N,5; t_PNAME,C,20; t_BAMNT,N,10,3; t_BDSUM,N,10,2;;
  t_DAMNT,N,10,3; t_DSUM,N,10,2; t_KAMNT,N,10,3; t_KSUM,N,10,2; t_EAMNT,N,10,3; t_EDSUM,N,10,2; '

try
  t := CreateTmpFile( fld, 't', ~IsFreeDel := true )
  sql := [ Select BKACNT, REFL, KOD, PNAME, BAMNT, BDSUM, DAMNT, DSUM, KAMNT, KSUM, EAMNT, EDSUM ;
    From MTUN] + Ret_f_ext( StoD( ip[1] ) ) + [ ;
    Where Left( BKACNT, 2 ) = '10' and REFLANAL = 'R10 ' and ANAL = ] + TaskAnal
  SimpleSql( [ Insert into ] + TmpFilePath( t ) + [ ] + sql, OpdataPath )
  ( t )->( DbGoTop() )

  tbl := { ;
    { 'Title', 'Материальный отчет' }, ;
    { 'ShowType', 2 } ;
  }

  fld := { ;
    { { 'FldName', 't_ACNT'  }, { 'FldTitl', 'Счет'         } }, ;
    { { 'FldName', 't_KOD'   }, { 'FldTitl', 'Код'          } }, ;
    { { 'FldName', 't_PNAME' }, { 'FldTitl', 'Наименование' } }, ;
    { { 'FldName', 't_BAMNT' }, { 'FldTitl', 'Вх.кол-во'    } }, ;
    { { 'FldName', 't_BDSUM' }, { 'FldTitl', 'Вх.сумма'     } }, ;
    { { 'FldName', 't_DAMNT' }, { 'FldTitl', 'Прих.кол.'    } }, ;
    { { 'FldName', 't_DSUM'  }, { 'FldTitl', 'Прих.сумма'   } }, ;
    { { 'FldName', 't_KAMNT' }, { 'FldTitl', 'Расх.кол.'    } }, ;
    { { 'FldName', 't_KSUM'  }, { 'FldTitl', 'Расх.сумма'   } }, ;
    { { 'FldName', 't_EAMNT' }, { 'FldTitl', 'Вых.кол-во'   } }, ;
    { { 'FldName', 't_EDSUM' }, { 'FldTitl', 'Вых.сумма'    } } ;
  }

  MyGrid( t, tbl, fld, ~Modal := true )

finally
  CloseTable( t )
end

// описание таблицы t
// t_ACNT  - счет
// t_REFL  - справочник
// t_KOD   - код
// t_PNAME - наименование
// t_BAMNT - входящее количество
// t_BDSUM - входящая сумма
// t_DAMNT - приход кол-во
// t_DSUM  - приход сумма
// t_KAMNT - расход кол-во
// t_KSUM  - расход сумма
// t_EAMNT - остаток кол-во
// t_ESUM  - остаток сумма