itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 06 Dec 2005 14:35 Post subject: Функции ДТС, ДТС0, ДТ, КТ .. |
|
|
Какие функции для получения остатков, оборотов по счетам?
Для использования в спецфункциях. |
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 06 Dec 2005 15:42 Post subject: |
|
|
// ДТС0 КТС0 ДТС КТС
CASE nFunc == 1 .OR. ;
nFunc == 2 .OR. ;
nFunc == 4 .OR. ;
nFunc == 5
nLen := MyLen( aPar, 1 )
aType := MyType( aPar, { 'C', 'CD' } )
IF nLen > 1
IF ValType(aPar[2])=='C' .AND. SUBSTR(aPar[2],5,1) == '.'
// период опеделен ГГГГ.ММ
aPar[2] := EOM(STOD( LEFT(aPar[2],4)+RIGHT(aPar[2],2)+'01'))//ALEX
ELSE
dDate := MyDate( aPar[2], aType[2], .F. )
if nLen>2
dDate1 := MyDate( aPar[3], aType[2], .F. )
endif
IF EMPTY(dDate)
aPar[2] := dSet_Date
ELSE
aPar[2] := dDate
if nLen>2
aPar[3] := dDate1
endif
ENDIF
ENDIF
ENDIF
IF nLen == 1
RBalans()
nRez := Saldo({'00','10','','01','11'}[nFunc], aPar )
ELSE
nRez := DaySaldo({'00','10','','01','11'}[nFunc], aPar, at('*',aPar[1])<>0 )
ENDIF
CASE nFunc == 6 .OR. nFunc == 7 // ДТ КТ
nLen := MyLen( aPar, 1 )
aType := MyType( aPar, { 'C', 'CD', 'CD' } )
IF nLen > 1
IF ValType(aPar[2])=='C' .AND. SUBSTR(aPar[2],5,1) == '.'
// период опеделен ГГГГ.ММ
ASIZE( aPar, 3 )
aPar[2] := STOD( LEFT(aPar[2],4)+RIGHT(aPar[2],2)+'01')//ALEX
aPar[3] := EOM(IF( EMPTY(aPar[3]),aPar[ 2], STOD( LEFT(aPar[3],4)+RIGHT(aPar[3],2)+'01') ))
ELSE
dDate := MyDate( aPar[2], aType[2], .T. )
aPar[2] := dDate
IF nLen > 2
dDate := MyDate( aPar[3], aType[3], .F. )
aPar[3] := dDate
ENDIF
ENDIF
ENDIF
IF nLen == 1
RBalans()
nRez := Oborot({'0','1'}[nFunc-5], aPar )
ELSE
nRez := DayOborot({'0','1'}[nFunc-5], aPar )
ENDIF |
|