#Include "FiveWin.ch"
#Include "xBrowse.ch"
STATIC oDlg
Static S08, S09, S10,S12, S13 // Alias de base de datos
STATIC nTCarg,nTCred
STATIC lSelSeg,NivBal
STATIC SdoMesAnt,SdoIni,Cta1,Cta2,Cta3,Cta4,nReg,nCol,aSum, aTot // Reportes
STATIC aDato1,aDato2,aClrRowBack
STATIC nMA_Ini, nMA_Fin
MemVar oWnd, oMOpc, nNumEmp, cDescrEmp, Mes_Per, Ano_Per, nStation,EjeMAIn
//------------------------------------------------------------------------------
FUNCTION MOD_PBAS()
LOCAL oItem:=oMOpc,oBrw1,oBrw2,oBrw3
lSelSeg:= .F.
NivBal := 4
aTot := {{0,0,0,0}}
nReg := 0
aDato1 := {}
aDato2 := {}
aDato1 := CargaDatos() // Aqui si lo quito NO ME MUESTRA TODOS LOS HEADERS, aunque le ponga oBrw1:lColDividerComplete := .T.
DEFINE DIALOG oDlg RESOURCE "CONSBALANZ" TITLE 'Listado de Pólizas y Movimientos'
// Consulta Balanza cuentas acumulados \\
REDEFINE XBROWSE oBrw1 ID 101 ;
HEADERS 'Cuentas','Descripción','Sdo Ant','Cargo','Abono','Sdo Act' ;
COLSIZES 112,260,85,85,85,85;
PICTURES "@!","@!","999,999,999.99","999,999,999.99","999,999,999.99","999,999,999.99";
OF oDlg ARRAY aDato1 FOOTERS AUTOCOLS LINES CELL
oBrw1:lColDividerComplete := .F.
oBrw1:bChange := { || MovEdoCta(oBrw1,@aDato2),oBrw2:Refresh() } [b]// Aqui llamo segundo browse y refresh()[/b]
// Consulta Estados de cuentas a detalle \\ Aqui solo muestra primera columna pero sin refrescar datos que selecciono con la flecha
REDEFINE XBROWSE oBrw2 ID 102 ;
HEADERS 'Tipo','Num','Fecha','Referencia','Concepto','Cargo','Abono','Sdo Act' ;
COLSIZES 28,30,50,80,180,85,85,85;
PICTURES "@!","@9999","@D","@!","@!","999,999,999.99","999,999,999.99","999,999,999.99" ;
OF oDlg ARRAY aDato2 FOOTERS AUTOCOLS LINES CELL
oBrw2:lColDividerComplete := .T.
* oBrw2:bChange := { || MovDetFact(oBrw2),oBrw2:Refresh() } // Despues....para futuro tercer browse ...
ACTIVATE DIALOG oDlg CENTERED // ON INIT Refresca(oBrw,oBrw2)
oItem:Enable() // Cerramos
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION NivCol(nCol)
DO CASE
CASE (S08)->NIVSUM = 1
nCol := ""
CASE (S08)->NIVSUM = 2
nCol = " "
CASE (S08)->NIVSUM = 3
nCol = " "
CASE (S08)->NIVSUM = 4
nCol = " "
ENDCASE
RETURN(nCol)
//------------------------------------------------------------------------------
STATIC FUNCTION MovEdoCta(oBrw1,aDato2)
LOCAL xEmp,S91,Ind1Tmp1,cCta,cCtaIni,PasaCta := .T.
cCta := aDato1[oBrw1:nArrayAt, 1 ]
IF !cCta == Nil
cCtaIni := SUBS(cCta,1,4)+SUBS(cCta,6,4)+SUBS(cCta,11,4)+SUBS(cCta,16,4)
xEmp := nNumEmp
S91 := "EMP"+TSTR(xEmp)+TRIM("\R_INTS"+nStation)+".DBF"
Ind1Tmp1:= "R_INTS"+nStation
(S08)->( DbSeek(cCtaIni) )
IF (S08)->TIPONAT = 'D'
USE (S91) ALIAS S91 EXCLUSIVE // NEW SHARED
S91->(DbSetIndex(Ind1Tmp1))
S91->(OrdSetFocus(1))
S91->(DbGoTop())
S91->( DbSeek(cCtaIni) )
xEmp := nNumEmp
S91 := "EMP"+TSTR(xEmp)+TRIM("\R_INTS"+nStation)+".DBF"
Ind1Tmp1:= "R_INTS"+nStation
USE (S91) ALIAS S91 EXCLUSIVE // NEW SHARED
S91->(DbSetIndex(Ind1Tmp1))
S91->(OrdSetFocus(1))
S91->(DbGoTop())
S91->( DbSeek(cCtaIni) )
aSum := {{0,0,0,0,0,0,0}}
aTot := {{0,0,0,0,0,0,0}}
DO WHILE S91->(!EOF())
IF S91->SALDOS <> 0 .AND. aSum[1,3] <> 0
IF S91->CUENTAS > cCtaIni
EXIT
ENDIF
ENDIF
IF S91->SALDOS <> 0
aSum[1,1] := aSum[1,1] + S91->SALCARG // Suma Cargos
aSum[1,2] := aSum[1,2] + S91->SALCRED // Suma Abonos
aSum[1,3] := aSum[1,3] + S91->SALDOS // Suma Dif de saldos
aSum[1,4] += (S91->SALCARG - S91->SALCRED)
aTot[1,1] := aTot[1,1] + S91->SALCARG // Totaliza Cargos
aTot[1,2] := aTot[1,2] + S91->SALCRED // Totaliza Abonos
aTot[1,3] := aTot[1,3] + S91->SALDOS // Totaliza Dif Sdos
aTot[1,4] += (S91->SALCARG - S91->SALCRED)
AADD( aDato2, { S91->TIPO , ; [b]// Este es el Arreglo que no muestra nada en segundo browse oBrw2[/b]
S91->NUMPOL , ;
S91->FHAMOV , ;
S91->REFERE , ;
S91->CONCEP , ;
S91->SALCARG, ;
S91->SALCRED, ;
S91->SALDOS , ;
aSum[1,4] } )
ENDIF
S91->(DbSkip())
ENDDO
S91->(DbCloseArea())
ENDIF
ENDIF
RETURN (aDato2)