AT2 TO AT2 2 — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
Строка 4: Строка 4:
  
 
data - дата для определения месяца
 
data - дата для определения месяца
 +
= Текст =
 +
parameters data
 +
if EMPTY( data )
 +
  data := DATE() - 10
 +
endif
 +
local path, kinddoc, sql2, aa, fld, msg, at2, del, i, sql
 +
fld := {}
 +
kinddoc := 'AT2'
 +
path := '\\FABIUS\FABIUS\OPDATA'
 +
del := [ KINDDOC = '] + kinddoc + [' and LVLNUM = '1' ]
 +
try
 +
  WAITMSG( 'Выполняется перенос документов' + CHR( 10 ) + kinddoc + ' ' + REALNAME( 'R169', kinddoc ), msg )
 +
  at2 := OPENCHILDDOC( 'AT2', '1', ~ParentForm := "", ~IsCondition := false, ~Month := MONTH( data ), ~Year := YEAR( data ) )
 +
  ( at2 )->( SETFILTER( del ) )
 +
  ( at2 )->( REFRESH() )
 +
  aa := ( at2 )->( DBSTRUCT() )
 +
  if !ISEMPTY( aa )
 +
    for i := 6 to LEN( aa )
 +
      AADD( fld, aa[i,1] )
 +
    next
 +
  endif
 +
  sql := [ Select ]
 +
  if !EMPTY( fld )
 +
    for i := 1 to LEN( fld )
 +
      sql := sql + fld[i] + [, ]
 +
    next
 +
  endif
 +
  sql := LEFT( sql, LEN( sql ) - 2 )
 +
  sql := STRTRAN( sql, [ SUM,], [ "SUM",] )
 +
  sql := sql + [ From DOCS] + RET_F_EXT( data ) + [ Where KINDDOC = '] + kinddoc + [' and LVLNUM = '2' and NUMDOC = ']
 +
  ( at2 )->( DBGOTOP() )
 +
  while !( at2 )->( EOF() )
 +
    WAITMSG( 'Документ номер ' + ( at2 )->NUMDOC + ' от ' + ( at2 )->DATDOC + Chr( 10 ) + kinddoc + ' ' + RealName( 'R169', kinddoc ), msg )
 +
    sql2 := sql + ( at2 )->NUMDOC + [' ]
 +
    aa := SqlToArr( sql2, fld, path )
 +
    if !IsEmpty( aa )
 +
      AddAll( kinddoc, '2', ( at2 )->RGNUM,, fld, aa,, ( at2 )->( GETFORM( GETAREA() ) ),,,,,, false,,, { false, false, false, false, false } )
 +
    endif
 +
    ( at2 )->( DBSKIP() )
 +
  end
 +
finally
 +
  HIDEMSG( msg )
 +
  CLOSEFORM( ( at2 )->( GETFORM( GETAREA() ) ) )
 +
end
 
= Смотрите также =
 
= Смотрите также =
 
[[Полезные функции]]
 
[[Полезные функции]]

Версия 09:33, 11 января 2018

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

Копирование документа AT2 уровень 2

AT2_TO_AT2_2( data )

data - дата для определения месяца

Текст

parameters data
if EMPTY( data )
  data := DATE() - 10
endif
local path, kinddoc, sql2, aa, fld, msg, at2, del, i, sql
fld := {}
kinddoc := 'AT2'
path := '\\FABIUS\FABIUS\OPDATA'
del := [ KINDDOC = '] + kinddoc + [' and LVLNUM = '1' ]
try
  WAITMSG( 'Выполняется перенос документов' + CHR( 10 ) + kinddoc + ' ' + REALNAME( 'R169', kinddoc ), msg )
  at2 := OPENCHILDDOC( 'AT2', '1', ~ParentForm := "", ~IsCondition := false, ~Month := MONTH( data ), ~Year := YEAR( data ) )
  ( at2 )->( SETFILTER( del ) )
  ( at2 )->( REFRESH() )
  aa := ( at2 )->( DBSTRUCT() )
  if !ISEMPTY( aa )
    for i := 6 to LEN( aa )
      AADD( fld, aa[i,1] )
    next
  endif
  sql := [ Select ]
  if !EMPTY( fld )
    for i := 1 to LEN( fld )
      sql := sql + fld[i] + [, ]
    next
  endif
  sql := LEFT( sql, LEN( sql ) - 2 )
  sql := STRTRAN( sql, [ SUM,], [ "SUM",] )
  sql := sql + [ From DOCS] + RET_F_EXT( data ) + [ Where KINDDOC = '] + kinddoc + [' and LVLNUM = '2' and NUMDOC = ']
  ( at2 )->( DBGOTOP() )
  while !( at2 )->( EOF() )
    WAITMSG( 'Документ номер ' + ( at2 )->NUMDOC + ' от ' + ( at2 )->DATDOC + Chr( 10 ) + kinddoc + ' ' + RealName( 'R169', kinddoc ), msg )
    sql2 := sql + ( at2 )->NUMDOC + [' ]
    aa := SqlToArr( sql2, fld, path )
    if !IsEmpty( aa )
      AddAll( kinddoc, '2', ( at2 )->RGNUM,, fld, aa,, ( at2 )->( GETFORM( GETAREA() ) ),,,,,, false,,, { false, false, false, false, false } )
    endif
    ( at2 )->( DBSKIP() )
  end
finally
  HIDEMSG( msg )
  CLOSEFORM( ( at2 )->( GETFORM( GETAREA() ) ) )
end

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

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

Функции Delphi

AT2_TO_AT2