| 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
 |  |