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