AT2 TO AT2 2 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 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