FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Equivalente de datos array TXBrowse
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Equivalente de datos array TXBrowse
Posted: Sat Mar 15, 2014 06:49 PM
Hola buenas tardes, en vista que nadie me respondieron de mi pregunta anterior, tuve que ver en todos los ejemplos y adaptarlo a mi codigo de TXBrowse,ahora se me presenta un detalle, cual es el equivalente o metodo ,que al seleccionar equis elementro dentro de un ARRAY, que me muestre informacion como referencia de datos a buscar para desplegar movimientos a detalles, ya que en cada cuenta de la balanza de comprobacion es acumulativa, y la quiero mostrar para el usuario vea a detalle la cuenta seleccionada por ejemplo 1020-0001-0001-0001

Espero haberme explicado adjunto codigo y la imagen.

Code (fw): Select all Collapse
#Include "FiveWin.ch"
#Include "xBrowse.ch"

STATIC oDlg,oBrw2
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 aDato,aClrRowBack

MemVar oWnd, oMOpc, nNumEmp, cDescrEmp, Mes_Per, Ano_Per, nStation

//------------------------------------------------------------------------------
FUNCTION MOD_PBAS()
聽LOCAL oItem:=oMOpc,oBrw

聽lSelSeg:= .F.
聽NivBal := 4
聽aTot 聽 := {{0,0,0,0}}
聽nReg 聽 := 0
聽aDato 聽:= {}
聽aDato 聽:= CargaDatos()

聽DEFINE DIALOG oDlg RESOURCE "CONSBALANZ" TITLE 'Listado de P贸lizas y Movimientos'
聽 REDEFINE XBROWSE oBrw 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 aDato FOOTERS AUTOCOLS LINES CELL

聽 oBrw:lColDividerComplete := .F.
聽 [b]oBrw:bChange 聽 聽 聽 聽 聽 聽 := { || MovDet(oBrw) } 聽 聽 聽 聽 聽 聽 聽 // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos 2010-0001-0001-0001
聽 oBrw:bKeyDown 聽 聽 聽 聽 聽 聽:= {| nKey| Val_nKey_C(nKey, oBrw) } // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos
聽 oBrw:bLDblClick 聽 聽 聽 聽 聽:= {|| CaptDatos(.F.,oBrw) } 聽 聽 聽 聽 // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos[/b]

聽ACTIVATE DIALOG oDlg CENTERED // ON INIT Refresca(oBrw,oBrw2)

聽oItem:Enable() // Cerramos
RETURN NIL

//------------------------------------------------------------------------------
STATIC FUNCTION CargaDatos()
聽LOCAL cCtas

聽S08 := Abre_Dbf(8,8) 聽 // ABRE CATCTAxA.DBF
聽S12 := Abre_Dbf(12,12) // Abre: POLZxMxA.DBF
聽S13 := Abre_Dbf(13,13) // Abre: MOVTxMxA.DBF

聽nTCarg := 0
聽nTCred := 0

聽(S08)->(DbGoTop())

聽SdoMesAnt:= ("SALD"+TSTR(Mes_Per - 1))
聽cCtas 聽 聽:= SUBS((S08)->CUENTAS,1,4)

聽DO WHILE (S08)->(!EOF())
聽 聽 聽IF cCtas <> SUBS((S08)->CUENTAS,1,4)
聽 聽 聽 聽 聽*AADD( aDato, { "" } )
聽 聽 聽 聽 聽AADD( aDato, Nil )
聽 聽 聽ENDIF

聽 聽 聽(S08)->(DbSetOrder(1))
聽 聽 聽(S08)->(DbSeek((S08)->CUENTAS))

聽 聽 聽SdoIni := (S08)->(&SdoMesAnt)

聽 聽 聽(S13)->(DbSetOrder(3))
聽 聽 聽(S13)->(SetSeek((S08)->CUENTAS))

聽 聽 聽nCol:= NivCol(nCol)

聽 聽 聽aSum := {{0,0,0}}

聽 聽 聽DO WHILE FUNNIV(lSelSeg,S08,S10,S13,Cta1,Cta2,Cta3,Cta4) .AND. (S13)->(!EOF())
聽 聽 聽 聽 聽 aSum[1,1] := aSum[1,1] + (S13)->MV_CARG // Suma CARGOS
聽 聽 聽 聽 聽 aSum[1,2] := aSum[1,2] + (S13)->MV_ABON // Suma ABONOS

聽 聽 聽 聽 聽(S13)->(DbSkip())
聽 聽 聽ENDDO

聽 聽 聽aSum[1,3] := (SdoIni + aSum[1,1]) - aSum[1,2]

聽 聽 聽IF ( (S08)->TIPONAT = 'D' )
聽 聽 聽 聽 聽aTot[1,1] := aTot[1,1] + SdoIni 聽 聽// Total Saldos iniciales
聽 聽 聽 聽 聽aTot[1,2] := aTot[1,2] + aSum[1,1] // Total de Cargos
聽 聽 聽 聽 聽aTot[1,3] := aTot[1,3] + aSum[1,2] // Total DE Abonos
聽 聽 聽ENDIF

聽 聽 聽IF ( (S08)->NIVSUM <= NivBal )
聽 聽 聽 聽 聽 IF SdoIni <> 0 .OR. aSum[1,1] <> 0 .OR. aSum[1,2] <> 0
聽 聽 聽 聽 聽 聽 聽 AADD( aDato, { (Ext_xNiv(LTRIM((S08)->CUENTAS))),nCol+(S08)->DESCRIP, SdoIni,aSum[1,1],aSum[1,2],aSum[1,3] } )
聽 聽 聽 聽 聽 ENDIF
聽 聽 聽ENDIF

聽 聽 聽cCtas := SUBS((S08)->CUENTAS,1,4)

聽 聽 聽(S08)->(DbSkip())
聽ENDDO
RETURN (aDato)

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

//------------------------------------------------------------------------------
[b]STATIC FUNCTION MovDet(oBrw)
聽MsgInfo( "aqui que muestre el paso de la referecia 1020-0001-0001-001,cada que seleccione las cuentas de detalle"+CRLF+;
聽 聽 聽 聽 聽 " lo usare para buscar en un seek,para que muestre detalles de la cuenta seleccionada" +CRLF+;
聽 聽 聽 聽 聽 "ya que tendre browse de multiseleccion,cual es el equivalente")
RETURN NIL[/b]






Saludos y buen dia.!
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Re: Equivalente de datos array TXBrowse
Posted: Sat Mar 15, 2014 07:17 PM
ACC69 wrote:Hola buenas tardes, en vista que nadie me respondieron de mi pregunta anterior, tuve que ver en todos los ejemplos y adaptarlo a mi codigo de TXBrowse,ahora se me presenta un detalle, cual es el equivalente o metodo ,que al seleccionar equis elementro dentro de un ARRAY, que me muestre informacion como referencia de datos a buscar para desplegar movimientos a detalles, ya que en cada cuenta de la balanza de comprobacion es acumulativa, y la quiero mostrar para el usuario vea a detalle la cuenta seleccionada por ejemplo 1020-0001-0001-0001

Espero haberme explicado adjunto codigo y la imagen.

Code (fw): Select all Collapse
#Include "FiveWin.ch"
#Include "xBrowse.ch"

STATIC oDlg,oBrw2
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 aDato,aClrRowBack

MemVar oWnd, oMOpc, nNumEmp, cDescrEmp, Mes_Per, Ano_Per, nStation

//------------------------------------------------------------------------------
FUNCTION MOD_PBAS()
聽LOCAL oItem:=oMOpc,oBrw

聽lSelSeg:= .F.
聽NivBal := 4
聽aTot 聽 := {{0,0,0,0}}
聽nReg 聽 := 0
聽aDato 聽:= {}
聽aDato 聽:= CargaDatos()

聽DEFINE DIALOG oDlg RESOURCE "CONSBALANZ" TITLE 'Listado de P贸lizas y Movimientos'
聽 REDEFINE XBROWSE oBrw 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 aDato FOOTERS AUTOCOLS LINES CELL

聽 oBrw:lColDividerComplete := .F.
聽 [b]oBrw:bChange 聽 聽 聽 聽 聽 聽 := { || MovDet(oBrw) } 聽 聽 聽 聽 聽 聽 聽 // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos 2010-0001-0001-0001
聽 oBrw:bKeyDown 聽 聽 聽 聽 聽 聽:= {| nKey| Val_nKey_C(nKey, oBrw) } // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos
聽 oBrw:bLDblClick 聽 聽 聽 聽 聽:= {|| CaptDatos(.F.,oBrw) } 聽 聽 聽 聽 // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos[/b]

聽ACTIVATE DIALOG oDlg CENTERED // ON INIT Refresca(oBrw,oBrw2)

聽oItem:Enable() // Cerramos
RETURN NIL

//------------------------------------------------------------------------------
STATIC FUNCTION CargaDatos()
聽LOCAL cCtas

聽S08 := Abre_Dbf(8,8) 聽 // ABRE CATCTAxA.DBF
聽S12 := Abre_Dbf(12,12) // Abre: POLZxMxA.DBF
聽S13 := Abre_Dbf(13,13) // Abre: MOVTxMxA.DBF

聽nTCarg := 0
聽nTCred := 0

聽(S08)->(DbGoTop())

聽SdoMesAnt:= ("SALD"+TSTR(Mes_Per - 1))
聽cCtas 聽 聽:= SUBS((S08)->CUENTAS,1,4)

聽DO WHILE (S08)->(!EOF())
聽 聽 聽IF cCtas <> SUBS((S08)->CUENTAS,1,4)
聽 聽 聽 聽 聽*AADD( aDato, { "" } )
聽 聽 聽 聽 聽AADD( aDato, Nil )
聽 聽 聽ENDIF

聽 聽 聽(S08)->(DbSetOrder(1))
聽 聽 聽(S08)->(DbSeek((S08)->CUENTAS))

聽 聽 聽SdoIni := (S08)->(&SdoMesAnt)

聽 聽 聽(S13)->(DbSetOrder(3))
聽 聽 聽(S13)->(SetSeek((S08)->CUENTAS))

聽 聽 聽nCol:= NivCol(nCol)

聽 聽 聽aSum := {{0,0,0}}

聽 聽 聽DO WHILE FUNNIV(lSelSeg,S08,S10,S13,Cta1,Cta2,Cta3,Cta4) .AND. (S13)->(!EOF())
聽 聽 聽 聽 聽 aSum[1,1] := aSum[1,1] + (S13)->MV_CARG // Suma CARGOS
聽 聽 聽 聽 聽 aSum[1,2] := aSum[1,2] + (S13)->MV_ABON // Suma ABONOS

聽 聽 聽 聽 聽(S13)->(DbSkip())
聽 聽 聽ENDDO

聽 聽 聽aSum[1,3] := (SdoIni + aSum[1,1]) - aSum[1,2]

聽 聽 聽IF ( (S08)->TIPONAT = 'D' )
聽 聽 聽 聽 聽aTot[1,1] := aTot[1,1] + SdoIni 聽 聽// Total Saldos iniciales
聽 聽 聽 聽 聽aTot[1,2] := aTot[1,2] + aSum[1,1] // Total de Cargos
聽 聽 聽 聽 聽aTot[1,3] := aTot[1,3] + aSum[1,2] // Total DE Abonos
聽 聽 聽ENDIF

聽 聽 聽IF ( (S08)->NIVSUM <= NivBal )
聽 聽 聽 聽 聽 IF SdoIni <> 0 .OR. aSum[1,1] <> 0 .OR. aSum[1,2] <> 0
聽 聽 聽 聽 聽 聽 聽 AADD( aDato, { (Ext_xNiv(LTRIM((S08)->CUENTAS))),nCol+(S08)->DESCRIP, SdoIni,aSum[1,1],aSum[1,2],aSum[1,3] } )
聽 聽 聽 聽 聽 ENDIF
聽 聽 聽ENDIF

聽 聽 聽cCtas := SUBS((S08)->CUENTAS,1,4)

聽 聽 聽(S08)->(DbSkip())
聽ENDDO
RETURN (aDato)

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

//------------------------------------------------------------------------------
[b]STATIC FUNCTION MovDet(oBrw)
聽MsgInfo( "aqui que muestre el paso de la referecia 1020-0001-0001-001,cada que seleccione las cuentas de detalle"+CRLF+;
聽 聽 聽 聽 聽 " lo usare para buscar en un seek,para que muestre detalles de la cuenta seleccionada" +CRLF+;
聽 聽 聽 聽 聽 "ya que tendre browse de multiseleccion,cual es el equivalente")
RETURN NIL[/b]






Saludos y buen dia.!



https://imageshack.com/i/mj9gzyj
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Re: Equivalente de datos array TXBrowse
Posted: Sat Mar 15, 2014 07:17 PM
ACC69 wrote:Hola buenas tardes, en vista que nadie me respondieron de mi pregunta anterior, tuve que ver en todos los ejemplos y adaptarlo a mi codigo de TXBrowse,ahora se me presenta un detalle, cual es el equivalente o metodo ,que al seleccionar equis elementro dentro de un ARRAY, que me muestre informacion como referencia de datos a buscar para desplegar movimientos a detalles, ya que en cada cuenta de la balanza de comprobacion es acumulativa, y la quiero mostrar para el usuario vea a detalle la cuenta seleccionada por ejemplo 1020-0001-0001-0001

Espero haberme explicado adjunto codigo y la imagen.

Code (fw): Select all Collapse
#Include "FiveWin.ch"
#Include "xBrowse.ch"

STATIC oDlg,oBrw2
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 aDato,aClrRowBack

MemVar oWnd, oMOpc, nNumEmp, cDescrEmp, Mes_Per, Ano_Per, nStation

//------------------------------------------------------------------------------
FUNCTION MOD_PBAS()
聽LOCAL oItem:=oMOpc,oBrw

聽lSelSeg:= .F.
聽NivBal := 4
聽aTot 聽 := {{0,0,0,0}}
聽nReg 聽 := 0
聽aDato 聽:= {}
聽aDato 聽:= CargaDatos()

聽DEFINE DIALOG oDlg RESOURCE "CONSBALANZ" TITLE 'Listado de P贸lizas y Movimientos'
聽 REDEFINE XBROWSE oBrw 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 aDato FOOTERS AUTOCOLS LINES CELL

聽 oBrw:lColDividerComplete := .F.
聽 [b]oBrw:bChange 聽 聽 聽 聽 聽 聽 := { || MovDet(oBrw) } 聽 聽 聽 聽 聽 聽 聽 // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos 2010-0001-0001-0001
聽 oBrw:bKeyDown 聽 聽 聽 聽 聽 聽:= {| nKey| Val_nKey_C(nKey, oBrw) } // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos
聽 oBrw:bLDblClick 聽 聽 聽 聽 聽:= {|| CaptDatos(.F.,oBrw) } 聽 聽 聽 聽 // Cual es el equivalente pasar como referencia la cuenta y refrescar los datos[/b]

聽ACTIVATE DIALOG oDlg CENTERED // ON INIT Refresca(oBrw,oBrw2)

聽oItem:Enable() // Cerramos
RETURN NIL

//------------------------------------------------------------------------------
STATIC FUNCTION CargaDatos()
聽LOCAL cCtas

聽S08 := Abre_Dbf(8,8) 聽 // ABRE CATCTAxA.DBF
聽S12 := Abre_Dbf(12,12) // Abre: POLZxMxA.DBF
聽S13 := Abre_Dbf(13,13) // Abre: MOVTxMxA.DBF

聽nTCarg := 0
聽nTCred := 0

聽(S08)->(DbGoTop())

聽SdoMesAnt:= ("SALD"+TSTR(Mes_Per - 1))
聽cCtas 聽 聽:= SUBS((S08)->CUENTAS,1,4)

聽DO WHILE (S08)->(!EOF())
聽 聽 聽IF cCtas <> SUBS((S08)->CUENTAS,1,4)
聽 聽 聽 聽 聽*AADD( aDato, { "" } )
聽 聽 聽 聽 聽AADD( aDato, Nil )
聽 聽 聽ENDIF

聽 聽 聽(S08)->(DbSetOrder(1))
聽 聽 聽(S08)->(DbSeek((S08)->CUENTAS))

聽 聽 聽SdoIni := (S08)->(&SdoMesAnt)

聽 聽 聽(S13)->(DbSetOrder(3))
聽 聽 聽(S13)->(SetSeek((S08)->CUENTAS))

聽 聽 聽nCol:= NivCol(nCol)

聽 聽 聽aSum := {{0,0,0}}

聽 聽 聽DO WHILE FUNNIV(lSelSeg,S08,S10,S13,Cta1,Cta2,Cta3,Cta4) .AND. (S13)->(!EOF())
聽 聽 聽 聽 聽 aSum[1,1] := aSum[1,1] + (S13)->MV_CARG // Suma CARGOS
聽 聽 聽 聽 聽 aSum[1,2] := aSum[1,2] + (S13)->MV_ABON // Suma ABONOS

聽 聽 聽 聽 聽(S13)->(DbSkip())
聽 聽 聽ENDDO

聽 聽 聽aSum[1,3] := (SdoIni + aSum[1,1]) - aSum[1,2]

聽 聽 聽IF ( (S08)->TIPONAT = 'D' )
聽 聽 聽 聽 聽aTot[1,1] := aTot[1,1] + SdoIni 聽 聽// Total Saldos iniciales
聽 聽 聽 聽 聽aTot[1,2] := aTot[1,2] + aSum[1,1] // Total de Cargos
聽 聽 聽 聽 聽aTot[1,3] := aTot[1,3] + aSum[1,2] // Total DE Abonos
聽 聽 聽ENDIF

聽 聽 聽IF ( (S08)->NIVSUM <= NivBal )
聽 聽 聽 聽 聽 IF SdoIni <> 0 .OR. aSum[1,1] <> 0 .OR. aSum[1,2] <> 0
聽 聽 聽 聽 聽 聽 聽 AADD( aDato, { (Ext_xNiv(LTRIM((S08)->CUENTAS))),nCol+(S08)->DESCRIP, SdoIni,aSum[1,1],aSum[1,2],aSum[1,3] } )
聽 聽 聽 聽 聽 ENDIF
聽 聽 聽ENDIF

聽 聽 聽cCtas := SUBS((S08)->CUENTAS,1,4)

聽 聽 聽(S08)->(DbSkip())
聽ENDDO
RETURN (aDato)

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

//------------------------------------------------------------------------------
[b]STATIC FUNCTION MovDet(oBrw)
聽MsgInfo( "aqui que muestre el paso de la referecia 1020-0001-0001-001,cada que seleccione las cuentas de detalle"+CRLF+;
聽 聽 聽 聽 聽 " lo usare para buscar en un seek,para que muestre detalles de la cuenta seleccionada" +CRLF+;
聽 聽 聽 聽 聽 "ya que tendre browse de multiseleccion,cual es el equivalente")
RETURN NIL[/b]






Saludos y buen dia.!



https://imageshack.com/i/mj9gzyj
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Equivalente de datos array TXBrowse
Posted: Sun Mar 16, 2014 06:28 PM
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Re: Equivalente de datos array TXBrowse
Posted: Mon Mar 17, 2014 03:59 PM
FranciscoA wrote:http://fivetechsupport.com/forums/viewtopic.php?f=6&t=28215#p157825



Hola buenos dias como estan, y gracias Francisco muy amable con la informacion.

Gusto saludarte .

Atte: Adriano C. C.

Continue the discussion