FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Browse no muestra registros (SOLUCIONADO)
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Browse no muestra registros (SOLUCIONADO)
Posted: Sat Feb 19, 2011 06:55 PM

Estimados

Estoy trabajando con 2 PRG, uno MAIN donde coloco el siguiente codigo

include "Fivewin.ch"

FUNCTION MAIN()
LOCAL oBar, oBtn

Set DATE TO FRENCH
SET CENTURY ON
Set EPOCH TO 2000
SET DELETED OFF
SET _3DLOOK ON

REQUEST DBFCDX
RddSetDefault("DBFCDX")

Y en el otro trato de abrir una ventana con un Browse pero este no trae los registros de la DBF

include "fivewin.ch"

include "xbrowse.ch"

MEMVAR oWndPrinc

STATIC CODBCO, NOMBCO, CTABCO, CTACTA, GRA, NREG, oDlg, oBrw, oCol, cCODANT, oRpt
STATIC TNUEVO := .T.
STATIC LVAN := .F.

FUNCTION BANCOS()
LOCAL oWndBCO, cTitle, oFont, oBar, oMeter, oText, cAlias, oBrw
LOCAL UBI:= "DATA\"
LOCAL cVIA := "DBFCDX"

IF SELECT("BANCO")>0
BANCO->(DBCLOSEAREA())
ENDIF

IF SELECT("BANCO")=0
DBUSEAREA(.T.,cVia,UBI+"BANCO","BANCO",.T.)
ENDIF

BANCO->(ORDSETFOCUS(1))

DEFINE WINDOW oWndBCO MDICHILD OF oWndPrinc ;

oBrw := TXBrowse():New( oWndBCO )

      oBrw:cAlias     := cAlias

     oBrw:SetRDD()
     oBrw:CreateFromCode()
     oWndBCO:SetControl(oBrw)

ACTIVATE WINDOW oWndBCO ;
ON INIT oBrw:SetFocus()

Ambos cargan bien, el problema es que no me muestra nungun registro del DBF y este tiene cargado varios alli.

Agradezco cualquier aporte

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 07:45 PM
Hola, la variable cAlias trae valor NIL.

Intenta asi:

IF SELECT("BANCO")=0
DBUSEAREA(.T.,cVia,UBI+"BANCO","BANCO",.T.)
cAlias:=Alias()
ENDIF
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 08:24 PM

Fracisco,

No funciono. Siguen sin aparecer los registros

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 10:20 PM
Parece que te falta establecer los indices, porque cerraste y re-abriste la dbf BANCO:

IF SELECT("BANCO")=0
DBUSEAREA(.T.,cVia,UBI+"BANCO","BANCO",.T.)
DBSETINDEX(cIndice1........) ; DBSETINDEX(cIndice2........)
ENDIF

cAlias:=Alias()


BANCO->(ORDSETFOCUS(1))
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 10:30 PM

Agregando indices o no, igual no muestra los registros de la DBF

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 10:34 PM

¿Ya intentaste poner en el ON INIT (oBrw:cAlias)->(dbgotop()), oBrw:Refresh() ?
Fijate que el cAlias:=Alias() lo saqué del If..endif

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 10:44 PM

Tampoco hizo nada amigo

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Browse no muestra registros
Posted: Sat Feb 19, 2011 11:16 PM

Hola, te hice este ejemplo, basado en tu codigo, y funciona (probado) (compilado con FWH712)

include "fivewin.ch"

include "xbrowse.ch"

MEMVAR oWndPrinc

//------------------
FUNCTION MAIN()

DEFINE WINDOW oWndPrinc MDI

ACTIVATE WINDOW oWndPrinc ;
ON INIT BANCOS()

oWndPrinc:End()
RETURN NIL

//--------------------------
FUNCTION BANCOS()
LOCAL oWndBCO, cAlias, oBrw
LOCAL UBI:= "C:\DATA\"
LOCAL cVia:="DBFNTX"

IF SELECT("BANCO")>0
BANCO->(DBCLOSEAREA())
ENDIF

IF SELECT("BANCO")=0
DBUSEAREA(.T.,cVia,UBI+"BANCO","BANCO",.T.)
ENDIF

cAlias:=Alias()

DEFINE WINDOW oWndBCO MDICHILD OF oWndPrinc

oBrw := TXBrowse():New( oWndBCO )

oBrw:cAlias := cAlias

oBrw:SetRDD()
oBrw:CreateFromCode()
oWndBCO:SetControl(oBrw)

ACTIVATE WINDOW oWndBCO ;
ON INIT oBrw:SetFocus()

RETURN NIL

Saludos

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 12:25 AM

Funciona chevere en un solo PRG. De hecho tengo un programa asi.

El problema se me esta presentando al tener 2 PRG (Main y Banco, en este ultimo es donde esta el browse)

Trata de hacer el ejemplo que me enviastes en 2 prg a ver si tienes el mismo comportamiento que a mi

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 12:43 AM

Compuin:
Puedes hacerlo en 2 prgs. (dos ficheros de texto)
Ejemplo:

Los DEFINE y la funcion Main() incluyelos en el primer fichero y le agregas al final: (despues del return) #INCLUDE "Miprg2.prg"
La Funcion Bancos la incluyes en otro fichero, en este caso MiPrg2, compilas y listo.
A cada fichero le das el nombre que quieras.
Saludos

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 01:35 AM

Eso ya lo hice, y desde alli se presenta el problema de no ver los registros.

Solo te hice el planteamiento para que recrearas el escenario y vieras el error con 2 prgs porque en 1 solo no presenta ningun error

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 02:24 AM

Saludos...

algun ejemplo que podamos probar con una dbf real??? para poder reproducir el error...

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 03:22 PM

Saludos Daniel,

El ejemplo es el que esta al comienzo del post. Son 2 PRG.

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 03:56 PM
Hola

Daniel Garcia-Gil wrote:Saludos...

algun ejemplo que podamos probar con una dbf real??? para poder reproducir el error...


Repito la solicitud

En el primer post no veo donde esta la creacion de la dbf a usar o un link de descarga de la misma
No veo donde termina la funcion main
Cuando llamar a la funcion banco ?
De la forma como esta expuesto el ejrmplo es imposible construirlo y ver o reproducir el problema que comentas

Si pudieras publicar un ejemplo que podamos user sera mejor, mejor aun si el ejemplo reproduce tu problema
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Browse no muestra registros
Posted: Sun Feb 20, 2011 03:58 PM
Ok aca los 2 PRG

////////// 1er PRG ////////////////////////

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

MEMVAR oWndPrinc

FUNCTION MAIN()
LOCAL oBar, oBtn

SetHandleCount(100)
REQUEST DBFCDX
RddSetDefault("DBFCDX")

SET DEFAULT TO \MX
SET DATE TO FRENCH
SET EPOCH TO 2000
SET CENTURY ON
SET DELETED OFF
SET EXCLUSIVE OFF
SET _3DLOOK ON

   DEFINE WINDOW oWndPrinc ;
   TITLE "Ventana Principal" MDI ;
   MENU MenuPri()

   DEFINE BUTTONBAR oBar OF oWndPrinc SIZE 40,41 3D

   DEFINE BUTTON oBtn OF oBar;
   TOOLTIP "Bancos" MESSAGE "Bancos" NOBORDER ADJUST;
   ACTION BANCOS()

   ACTIVATE WINDOW oWndPrinc MAXIMIZED ;
         VALID MsgYesNo( "¿   Está seguro de querer Salir   ?", "!!! Atención !!!" )

RETURN NIL

FUNCTION MenuPri()
LOCAL oMenu
MENU oMenu

MENUITEM "&General"
    MENU
    MENUITEM "&Parametros de Precio"
    SEPARATOR
    MENUITEM "Salir"
ENDMENU
MENUITEM "&Caja y &Bancos"
    MENU
     MENUITEM "&Bancos" ;
     ACTION BANCOS()
ENDMENU
ENDMENU
RETURN oMenu


////////// 2dor PRG ////////////////////////

Code (fw): Select all Collapse
#include "Fivewin.ch"
#include "xbrowse.ch"

MEMVAR oWndPrinc

STATIC CODBCO, NOMBCO, CTABCO, CTACTA, GRA, NREG, oDlg, oBrw, oCol, cCODANT, oRpt
STATIC TNUEVO := .T.
STATIC LVAN   := .F.

FUNCTION BANCOS()
LOCAL oWndBCO, cTitle, oFont, oBar, oMeter, oText, cAlias
LOCAL oBrw
LOCAL UBI:= "DATA\"
LOCAL cVIA := "DBFCDX"

cTitle := "Cuentas Bancarias"

   CREASTRUCT()

   ABRESTRUCT()

   DEFINE FONT oFont NAME "Arial" SIZE 0,-12 BOLD

   DEFINE WINDOW oWndBCO MDICHILD OF oWndPrinc ;
          FROM 0, 0 TO 0, 0           ;
          TITLE cTitle                ;
          COLOR 0, 14215660           ;
          PIXEL                       ;

          SET FONT OF oWndBCO TO oFont

          SET MESSAGE OF oWndBCO

          oWndBCO:Hide()

          DEFINE BUTTONBAR oBar OF oWndBCO SIZE 40, 50 3D

          DEFINE BUTTON OF oBar FLAT ;
          TOOLTIP "Incluir" MESSAGE " Incluir";

          DEFINE BUTTON OF oBar FLAT ;
          TOOLTIP "Salir" MESSAGE " Salir" ;
          ACTION oWndBCO:END()

          oBrw := TXBrowse():New( oWndBCO )

          oBrw:SetRDD()
          oBrw:CreateFromCode()
          oWndBCO:SetControl(oBrw)

   ACTIVATE WINDOW oWndBCO ;
               ON INIT oBrw:Refresh() ;

   oWndPrinc:cascade()
   oWndBCO:oClient = oBrw
   oWndBCO:Show()

RETURN NIL

STATIC FUNCTION CREASTRUCT()
LOCAL BANCO

BANCO := "\DATA\BANCO.DBF"

lMkDir("DATA")

IF .NOT. FILE ("DATA\BANCO.DBF")
         DbCreate( "DATA\BANCO", { { "BCO_CODIGO", "C", 12, 0 },;
                                   { "BCO_DESCRI", "C", 30, 0 },;
                                   { "BCO_CUENTA", "C", 20, 0 },;
                                   { "BCO_SLDANT", "N", 14, 0 },;
                                   { "BCO_DEBE"  , "N", 14, 0 },;
                                   { "BCO_HABER" , "N", 14, 0 },;
                                   { "BCO_CHEQUE", "N", 10, 0 },;
                                   { "BCO_NOTADB", "N", 10, 0 },;
                                   { "BCO_ENOTRA", "C",  1, 0 },;
                                   { "BCO_CODMON", "C",  3, 0 },;
                                   { "BCO_CTABAN", "C", 20, 0  } } )
          dbCloseAll()
ENDIF

IF .NOT. FILE ("DATA\BANCO.CDX")
         USE DATA\BANCO ALIAS BANCO
             MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             BuildIndex( oMeter, oText, oDlg, @lEnd, "BANCO->BCO_CODIGO ", "CODIGO" ) },;
             "Indexando Cuentas por Codigo...", "Espere un momento" )
    dbCloseAll()
ENDIF

RETURN (.T.)

STATIC FUNCTION ABRESTRUCT()
LOCAL UBI:= "DATA\"
LOCAL cVIA := "DBFCDX"

    IF SELECT("BANCO")>0
        BANCO->(DBCLOSEAREA())
    ENDIF

    IF SELECT("BANCO")=0
        DBUSEAREA(.T.,cVia,UBI+"BANCO","BANCO",.T.)
    ENDIF

    BANCO->(ORDSETFOCUS(1))

RETURN (.T.)

STATIC FUNCTION BuildIndex( oMeter, oText, oDlg, lEnd, campo, bolsa )
   oMeter:nTotal = RecCount()
   OrdSetFocus(0)
   INDEX ON &(Campo) TAG &(Bolsa) ;
      EVAL ( oMeter:Set( RecNo() ), SysRefresh(), ! lEnd )
RETURN NIL


POST EDITADO POR DANIEL... RECOMENDANDO EL USO DEL TAG CODE


Saludos,

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity