#Include "FiveWin.ch"
#Include "xBrowse.ch"
STATIC oDlg,oBrw2
STATIC S12, S13
STATIC nTCarg,nTCred,aSum
MemVar oWnd, oMOpc, nNumEmp, cDescrEmp, Mes_Per, Ano_Per, nStation
//------------------------------------------------------------------------------
FUNCTION MOD_PBAS()
LOCAL oItem:=oMOpc,oBrw
S12 := Abre_Dbf(12,12) // Abre: POLZxMxA.DBF
S13 := Abre_Dbf(13,13) // Abre: MOVTxMxA.DBF
nTCarg := 0
nTCred := 0
Refr_MovPol()
DEFINE DIALOG oDlg RESOURCE "INTEGFACT" TITLE 'Listado de Pólizas y Movimientos'
REDEFINE XBROWSE oBrw ID 101 OF oDlg ;
ALIAS (S12)->(ALIAS()) ;
HEADERS "Tipo", "Número","Fecha","Concepto","Cargo","Abono","Fec Capt" ;
COLUMNS "A_TIPO","A_NUMPOL","A_FHAMOV","A_CONCEP", ;
"A_TOTCARG","A_TOTCRED", "FECALTA" ;
COLSIZES 30,45,52,180,80,80,52 ;
JUSTIFY .F., .T., .F., .F., .T., .T.,.T. ;
CELL FOOTERS
* // CONFIGURACION DEL xBROWSE
* // Activa Footers
* oBrw:lFooter := .T.
* // Estilos de lineas
* oBrw:nColDividerStyle := LINESTYLE_BLACK
* *oBrw:nRowDividerStyle := LINESTYLE_BLACK
* oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
* oBrw:lColDividerComplete := .T. // Completa pintado hasta el Footer cuando lineas no llenan todo ;
* // el Browse Headers Y Footers
oBrw:bChange:= { || Refr_MovDet() }
oBrw:aCols[3]:nHeadStrAlign:= AL_CENTER
oBrw:aCols[4]:nHeadStrAlign:= AL_CENTER
oBrw:aCols[5]:nHeadStrAlign:= AL_CENTER
oBrw:aCols[5]:nFootStrAlign := 1
oBrw:aCols[5]:nTotal := 0 // TRANS(nTCarg,"99,999,999.99") // PARA TOTALIZAR COL.
oBrw:aCols[6]:nHeadStrAlign:= AL_CENTER
oBrw:aCols[6]:nFootStrAlign := 1
oBrw:aCols[6]:nTotal := TRANS(nTCred,"99,999,999.99") // PARA TOTALIZAR COL.
oDlg:bStart := { || oBrw:Setfocus(),oBrw:Refresh() }
REDEFINE XBROWSE oBrw2 ID 102 OF oDlg ;
ALIAS (S13)->(ALIAS()) ;
HEADERS "Cuentas", "Segm","Fecha","Refer.","Concepto","Cargo","Abono" ;
FIELDS EXT_xNIV((S13)->MV_NCTA),STR((S13)->SEGNEG),DTOC( (S13)->MV_FHAM ),(S13)->MV_REFE, ;
SUBS((S13)->MV_CONC,1,35), TRANS( (S13)->MV_CARG,"99,999,999.99"),TRANS( (S13)->MV_ABON,"99,999,999.99") ;
COLSIZES 112,35,52,85,180,80,80 ;
JUSTIFY .F., AL_CENTER, .F., .F., ,.F.,.T., .T.
// Activa Footers
oBrw2:lFooter := .T.
// Estilos de lineas
oBrw2:nColDividerStyle := LINESTYLE_BLACK
*oBrw2:nRowDividerStyle := LINESTYLE_BLACK
oBrw2:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw2:lColDividerComplete := .T. // Completa pintado hasta el Footer cuando lineas no llenan todo ;
// el Browse Headers Y Footers
oBrw2:aCols[1]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[3]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[5]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[6]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[6]:nFootStrAlign := 1
oBrw2:aCols[6]:lTotal := .T. // PARA TOTALIZAR COL.
oBrw2:aCols[6]:nTotal := Trans( aSum[1,2],"99,999,999.99") // Total Cargo
oBrw2:aCols[7]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[7]:nFootStrAlign := 1
oBrw2:aCols[7]:nTotal := Trans( aSum[1,3],"99,999,999.99") // Total Credito
ACTIVATE DIALOG oDlg CENTERED ON INIT Refresca(oBrw,oBrw2)
(S13)->( OrdScope(0,nil) )
(S13)->( OrdScope(0,nil) )
oItem:Enable()
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION Refr_MovDet()
(S13)->(OrdScope( 0,(S12)->A_TIPO+STR((S12)->A_NUMPOL,5) ))
(S13)->(OrdScope( 1,(S12)->A_TIPO+STR((S12)->A_NUMPOL,5) ))
(S13)->(DbGoTop())
Refr_MovPol()
oBrw2:aCols[1]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[1]:nTotal := STR(aSum[1,1])+" Mov(s)" // Num de Movimientos
oBrw2:aCols[6]:nTotal := Trans( aSum[1,2],"99,999,999.99") // Total Cargo
oBrw2:aCols[7]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[7]:nFootStrAlign := 1
oBrw2:aCols[7]:nTotal := Trans( aSum[1,3],"99,999,999.99") // Total Credito
oBrw2:Refresh()
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION TotCarAbo(nTCarg,nTCred)
(S13)->(DbEval({|| nTCarg+=(S13)->MV_CARG},,,,,.f.))
(S13)->(DbEval({|| nTCred+=(S13)->MV_ABON},,,,,.f.))
SysRefresh()
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION Refr_MovPol()
aSum := {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
(S13)->(DbSeek((S12)->A_TIPO+STR((S12)->A_NUMPOL,5)))
DO WHILE (S13)->MV_TIPO = (S12)->A_TIPO .AND. (S13)->MV_NUMP = (S12)->A_NUMPOL .AND. (S13)->(!EOF())
aSum[1, 1] := aSum[1,1] + 1 // Num de movimientos de partidas
aSum[1, 2] += (S13)->MV_CARG
aSum[1, 3] += (S13)->MV_ABON
IF (S13)->TIPOMOV == "C"
aSum[1, 4] += (S13)->IMPBS1
aSum[1, 5] += (S13)->IVA_1
aSum[1, 6] += (S13)->IMPBS2
aSum[1, 7] += (S13)->IVA_2
aSum[1, 8] += (S13)->T_0
aSum[1, 9] += (S13)->T_EXENT
aSum[1,10] += (S13)->OTROS
aSum[1,11] += (S13)->IMPBS3
aSum[1,12] += (S13)->T_Otras
aSum[1,13] += (S13)->RET_IVA
aSum[1,14] += (S13)->RET_ISR
ENDIF
(S13)->(DbSkip())
SysRefresh()
ENDDO
*MsgInfo(aSum[1, 2])
*MsgInfo(aSum[1, 3])
(S13)->(DbGoTop())
(S13)->(DbSeek((S12)->A_TIPO+STR((S12)->A_NUMPOL,5)))
Return NIL
//------------------------------------------------------------------------------
STATIC FUNCTION Refresca(oBrw,oBrw2)
(S13)->(OrdScope( 0,(S12)->A_TIPO+STR((S12)->A_NUMPOL,5) ))
(S13)->(OrdScope( 1,(S12)->A_TIPO+STR((S12)->A_NUMPOL,5) ))
(S13)->(DbGoTop())
oBrw2:aCols[1]:nHeadStrAlign:= AL_CENTER
oBrw2:aCols[1]:nTotal := STR(aSum[1,1])+" Mov(s)" // Num de Movimientos
// Luego lo checo!
*oBrw2:GoTop()
*oBrw2:refresh()
oBrw:SetFocus()
oBrw2:SetFocus()
oBrw:Refresh()
oBrw2:Refresh()
RETURN Nil