FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour No funciona codigo entre Clase y Funcion (2 PRG diferentes)
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
No funciona codigo entre Clase y Funcion (2 PRG diferentes)
Posted: Thu Dec 08, 2011 06:38 PM

Buenas tardes,

Tengo una Clase que utilizo para generar y manejar el Browser, de esta forma:

include "Fivewin.ch"

include "xbrowse.ch"

MEMVAR oApp

CLASS TClientes
DATA oWin
DATA oBar
DATA oBtn
DATA oFont
DATA cTitle
DATA oBrw
DATA oCol
DATA oDbf
DATA cAlias
DATA oFr

METHOD New() CONSTRUCTOR
METHOD Activar()
METHOD Borrar()
END CLASS

METHOD New() CLASS TClientes
::oDbf:= Abrir ( "CLIENTES", {} )
::cAlias := ::oDbf:cAlias

::cTitle := "Clientes"
..
..
..
RETURN Self

Desde mi Browser quiero llamar un dialogo para Incluir y Modificar los registros, el cual se va a encontrar en otro .PRG como una funcion, de esta forma:

FUNCTION Clientes ( lNuevo )
LOCAL oDlg, oFont, oFld, oGet[30]
LOCAL cTitle, cAlias, oFecha
LOCAL aStatus := { "ACTIVO", "INACTIVO", "SUSPENDIDO" }, oCbx, cStatus := ""
LOCAL lGrabar := .F.

DEFAULT lNuevo := .F.

IF !lNuevo
IF oClientes:oDbf:EOF()
MsgStop ( "Error, tabla vacia" )
ENDIF
oClientes:oDbf:LOAD()
cTitle:= "Modificar " + oClientes:cTitle
ELSE
oClientes:oDbf:GOBOTTOM()
oClientes:oDbf:BLANK()
cTitle := "Incluir " + oClientes:cTitle
ENDIF

DEFINE DIALOG oDlg NAME "CLIENTES" TITLE cTitle

REDEFINE GET oGet[1] VAR ::oDbf:CLI_CODIGO ID 101 OF oDlg WHEN lNuevo ;
VALID ( ::oDbf:CLI_CODIGO := StrZero((VAL( ::oDbf:CLI_CODIGO ) +1), 8), oGet[1]:Refresh(), .T. )
REDEFINE GET oGet[3] VAR ::oDbf:CLI_NOMBRE ID 103 OF oDlg PICTURE "@"
..
..
..

REDEFINE BUTTON ID 201 OF oDlg ;
ACTION ( lGrabar := .T., oDlg:END() ) ;
MESSAGE " Grabar Registro"

REDEFINE BUTTON ID 202 OF oDlg ;
ACTION ( oDlg:END() ) ;
MESSAGE " Cancelar y Cerrar Formulario"

oDlg:lHelpIcon := .F.

ACTIVATE DIALOG oDlg CENTERED ;
ON INIT ( STATUSBAR( oDlg ), oGet[3]:SetFocus())

IF lGrabar
IF lNuevo
oClientes:oDbf:APPEND()
ENDIF
oClientes:oDbf:SAVE()
oClientes:oBrw:Refresh()
ENDIF

RETURN NIL

Se esta presentando el problema que hace la insersion de registros muy lento para una DBF.

Que esta mal en el codigo anterior? No logro dar con el problema

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Continue the discussion