GET FRONTOL REPORT — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м (Текст)
м (Содержимое страницы заменено на «GET_FRONTOL_REPORT - это программа из справочника R266 Загрузить продажи = Смотр…»)
 
Строка 1: Строка 1:
 
GET_FRONTOL_REPORT - это программа из справочника [[R266]]
 
GET_FRONTOL_REPORT - это программа из справочника [[R266]]
 
  Загрузить продажи
 
  Загрузить продажи
= Текст =
 
local file_name, folderatol, path, file_frontol, sql, i, del, data
 
 
local r179_kod, r20_kod, fld, msg, _, aa, dd, ftl1, ff
 
 
r179_kod := [[GetPrm]]( 'TASKANAL', '[[CASH_SHOP]]', TaskNum )
 
r20_kod := [[SeekRef]]( '[[R179]]', r179_kod, 'CASH_KOD2', 1 )
 
 
folderatol := [[GetPrm]]( 'CASHBOX', '[[CASH_SHOP]]', TaskNum )
 
path := [[Nice_Path]]( folderatol )
 
file_name := [[GetParam]]( 'FROM_ATOL', '[[SHOP]]',, r20_kod )
 
file_name := path + file_name
 
 
if ![[YesNo]]( 'Загрузить операции из файла ' + file_name + ' ?', false )
 
  return
 
endif
 
 
fld := ' _0,C,200; _1,D,4; _2,C,20; '
 
 
try
 
  msg := [[WaitMsg]]( 'Обработка данных' )
 
  _ := [[CreateTmpFile]]( fld, '_', ~IsFreeDel := true )
 
 
  file_frontol := [[AssignFile]]( file_name )
 
  if [[Empty]]( file_frontol )
 
    return
 
  endif
 
  [[TextReset]]( file_frontol )
 
  aa := [[ReadLn]]( file_frontol )
 
 
  // заполнение временной таблицы
 
  while ![[TextEof]]( file_frontol )
 
    aa := [[ReadLn]]( file_frontol )
 
    [[WaitMsg]]( Left( aa, 16 ), msg )
 
    if [[len]]( aa ) > 10
 
      ( _ )->( [[DbAppend]]() )
 
      ( _ )->_0 := aa
 
      ( _ )->_1 := [[CtoD]]( Token( aa, 2 ) )
 
      ( _ )->_2 := [[Left]]( folderatol, 20 )
 
    endif
 
  end
 
 
  sql := [ Select DISTINCT _1 From ] + TmpFilePath( _ )
 
  aa := [[SqlToArr]]( sql, { '_1' } )
 
 
  if [[IsEmpty]]( aa )
 
    return
 
  endif
 
 
  aa := [[PrepareArr]]( aa )
 
 
  for i := 1 to [[len]]( aa )
 
 
    data := aa[i]
 
 
    try
 
      [[WaitMsg]]( 'Удаление ранее загруженных данных за ' + aa[i], msg )
 
      sql := [ Delete From DOCP] + Ret_f_ext( data ) + [ Where KINDDOC = '[[FTL]]' and DATDOC = '] + [[SQlDate]]( data ) + [' and K3NAME = '] + [[Left]]( folderatol, 20 ) + [' ]
 
      [[SimpleSql]]( sql, OpdataPath )
 
    finally
 
      [[HideMsg]]( msg )
 
    end
 
 
    // добавление первого этажа
 
    fld := { 'DATDOC', 'K3NAME', 'DREFL1', 'DANAL1' }
 
    del := [ KINDDOC = '[[FTL]]' and LVLNUM = '1' and DtoS( DATDOC ) = '] + [[DtoS]]( data )+ [' and K3NAME = '] + [[Left]]( folderatol, 20 ) + [' ]
 
    dd := { { data, Left( folderatol, 20 ), 'R20 ', r20_kod } }
 
 
    [[AddAll]]( '[[FTL]]', '1', " ",, fld, dd,,,, [[Year]]( data ), [[Month]]( data ),,, true,, del )
 
    ftl1 := [[OpenChildDoc]]( '[[FTL]]', '1', ~ParentForm := "", ~IsCondition := false, ~Month := [[Month]]( data ), ~Year := [[Year]]( data )  )
 
    ( ftl1 )->( [[SetFilter]]( del ) )
 
    ( ftl1 )->( [[Refresh]]() )
 
 
    fld := { 'FRONTOL', 'K3NAME' }
 
    sql := [ Select _0 FRONTOL, _2 K3NAME From ] + TmpFilePath( _ ) + [ Where _1 = '] + SqlDate( aa[i] ) + [' ]
 
    ff := [[SqlToArr]]( sql, fld )
 
 
    if ![[IsEmpty]]( ff )
 
      [[AddAll]]( '[[FTL]]', '2', ( ftl1 )->RGNUM,, fld, ff,, ( ftl1 )->( GetForm( GetArea() ) ) )
 
    endif
 
  next
 
 
finally
 
  if ![[Empty]]( file_frontol )
 
    [[CloseFile]]( file_frontol )
 
  endif
 
  [[CloseTable]]( _ )
 
  [[HideMsg]]( msg )
 
end
 
 
// _0 - текст из файла ( одна строка )
 
// _1 - дата
 
// _2 - путь к файлу
 
 
// и в загруженном отчете по продажам менять # на @
 
 
try
 
  msg := [[WaitMsg]]( 'Проверка данных' )
 
  aa := {}
 
  try
 
    file_frontol := [[AssignFile]]( file_name )
 
    if [[Empty]]( file_frontol )
 
      return
 
    endif
 
    [[TextReset]]( file_frontol )
 
    while ![[TextEof]]( file_frontol )
 
      [[Aadd]]( aa, [[ReadLn]]( file_frontol ) )
 
    end
 
  finally
 
    if ![[Empty]]( file_frontol )
 
      [[CloseFile]]( file_frontol )
 
    endif
 
  end
 
 
  if ![[IsEmpty]]( aa )
 
    aa[1] := "@"
 
  endif
 
 
  // WriteTxtFile( aa, file_name, path, true )
 
  file_name := [[GetParam]]( 'FROM_ATOL', '[[SHOP]]',, r20_kod )
 
  [[WriteTxtFile]]( aa, file_name, path, true )
 
finally
 
  [[HideMsg]]( msg )
 
end
 
 
[[Message]]( 'Продажи успешно загружены' + Chr( 13 )+ Chr( 10 ) + '( [[Документы]] за месяц - Операции Frontol )' )
 
 
 
= Смотрите также =
 
= Смотрите также =
 
[[Полезные функции]]
 
[[Полезные функции]]
  
 
[[Функции Delphi]]
 
[[Функции Delphi]]

Текущая версия на 12:16, 11 октября 2021

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

Загрузить продажи

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

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

Функции Delphi