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

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

Версия 09:25, 2 мая 2017

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