Validar un Get (SOLUCIONADO)

Validar un Get (SOLUCIONADO)

Postby Compuin » Mon Feb 14, 2011 1:48 am

Hola amigos,

Tengo una funcion que valida si un campo o registro ya existe, la cual no esta funcionando.

Aca el codigo del GET

cCODANT := BANCO->BCO_CODIGO
@ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
VALID IF(ALLTRIM(cCODANT) <> ALLTRIM(BANCO->BCO_CODIGO), CHKBANCO(BANCO->BCO_CODIGO,LVAN), .T.)

Y aca la funcion

STATIC FUNCTION CHKBANCO( COD,LVAN )
LOCAL nRegAnt := BANCO->(RECNO())
IF BANCO->(DBSEEK( COD ))
MsgBeep()
MsgStop("El Código del Banco ya se encuentra Registrado" + CHR(13)+;
"Código: "+BANCO->BCO_CODIGO,"Inclusión Inválida de Usuario")
RETURN(.F.)
ENDIF

BANCO->(DBGOTO(nRegAnt))

RETURN(.T.)


Como ven, deberia indicar que el codigo ya existe, pero no es asi.

Agradeciendoo de antemano.
Last edited by Compuin on Tue Feb 15, 2011 3:34 pm, edited 1 time in total.
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Validar un Get

Postby Bayron » Mon Feb 14, 2011 2:27 am

Prueba de esta manera a ver si te sirve.....

cCODANT := BANCO->BCO_CODIGO
@ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
VALID CHKBANCO(CODBCO, cCODant)



STATIC FUNCTION CHKBANCO( COD, cCODant)
LOCAL nRegAnt := BANCO->(RECNO())
BANCO->( GOTOP( ) )

IF BANCO->(DBSEEK( COD ))
MsgBeep()
MsgStop("El Código del Banco ya se encuentra Registrado" + CHR(13)+;
"Código: "+BANCO->BCO_CODIGO,"Inclusión Inválida de Usuario")
RETURN(.F.)
ENDIF

BANCO->(DBGOTO(nRegAnt))

RETURN(.T.)
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Validar un Get

Postby Compuin » Mon Feb 14, 2011 2:32 am

Bayron

Me arroja lo siguiente

Error. Unresolved external '_HB_FUN_GOTOP' referenced from

??
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Validar un Get

Postby Bayron » Mon Feb 14, 2011 2:34 am

Mejor de esta manera para que tengas un ejemplo completo....

Code: Select all  Expand view
#include "FiveWin.ch"
#include "XBrowse.ch"

STATIC CODBCO, NOMBCO, CTABCO, CTACTA, GRA, NREG, oDlg, oBrw
STATIC TNUEVO := .T.

FUNCTION MAIN()
    LOCAL oWnd, oBar, oMeter, oText

    SET Deleted On
    SET _3DLOOK ON

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

    ENDIF

    USE DATA\BANCO ALIAS BCO NEW
    index on BCO->BCO_CODIGO to DATA\BANCO

    DEFINE WINDOW oWnd

        DEFINE BUTTONBAR oBar OF oWnd

        DEFINE BUTTON OF oBar ACTION CBANCO(.T.)
        DEFINE BUTTON OF oBar ACTION CBANCO(.F.)

        oBrw := TXBrowse():New( oWnd )
        oBrw:blDblClick := { | nRow, nCol, nKey | CBANCO(.F.)}
        oBrw:bKeyDown := { | nKey, nFlags | CBANCO( .F., oBrw )}

        oBrw:SetRDD()
        oBrw:CreateFromCode()
        oWnd:oClient := oBrw

    ACTIVATE WINDOW oWnd ;
        ON INIT oBrw:SetFocus()

RETURN (.T.)

FUNCTION CBANCO(TNUEVO)
    STATIC oDlg, oGet, oCodigo, oNombre, oNumero, oCuenta, oBtn

    SetGetColorFocus() // change GET colors when focused

    SET 3DLook OFF

    BCONUEVO(TNUEVO)

    DEFINE DIALOG oDlg ;
        TITLE IF(TNUEVO, "Incluir Cuenta Bancaria","Modificar Cuenta Bancaria")
       
        cCODANT := BCO->BCO_CODIGO

        @ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 VALID CHKBANCO(CODBCO, cCODant)
        @ 2,1 GET oNombre VAR NOMBCO OF oDlg SIZE 40, 10
        @ 3,1 GET oNumero VAR CTABCO OF oDlg SIZE 40, 10

        @ 3.3,1 BUTTON oBtn PROMPT "&Grabar" OF oDlg ;
            ACTION (GRABA(.T., TNUEVO), oDlg:END(), oBrw:Refresh())

        @ 3.3,10 BUTTON oBtn PROMPT "&Salir" OF oDlg ;
            ACTION oDlg:END()

    ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

STATIC FUNCTION BCONUEVO(TNUEVO)

    IF TNUEVO
        NREG:=BCO->(RECNO())
        CODBCO := SPACE(12)
        NOMBCO := SPACE(30)
        CTABCO := SPACE(30)

    ELSE
   
        NREG:=BCO->(RECNO())
        CODBCO := BCO->BCO_CODIGO
        NOMBCO := BCO->BCO_DESCRI
        CTABCO := BCO->BCO_CUENTA
    ENDIF

RETURN (.T.)

STATIC FUNCTION GRABA(GRA, TNUEVO)

    IF GRA
        IF TNUEVO
            BCO->(DBGOTO(NREG))
            BCO->(DBAPPEND())

        ENDIF

        BCO->(RLOCK())
        BCO->BCO_CODIGO := CODBCO
        BCO->BCO_DESCRI := NOMBCO
        BCO->BCO_CUENTA := CTABCO
        BCO->(DBUNLOCK())

    ENDIF

RETURN (.T.)

STATIC FUNCTION CHKBANCO( COD, cCODant)
LOCAL nRegAnt := BCO->(RECNO())
BCO->( dbGOTOP( ) )

IF BCO->(DBSEEK( COD ))
MsgBeep()
MsgStop("El Código del Banco ya se encuentra Registrado" + CHR(13)+;
"Código: "+BCO->BCO_CODIGO,"Inclusión Inválida de Usuario")
RETURN(.F.)
ENDIF

BCO->(DBGOTO(nRegAnt))

RETURN(.T.)
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Validar un Get

Postby Compuin » Mon Feb 14, 2011 2:35 am

Funciono cambiando solo esto

VALID CHKBANCO(CODBCO, cCODant)

Mantuve la funcion inicial y valido. Ahora como logro limpiar el campo para agregar el nuevo registro y asi no tenga que hacerlo el usuario??

Atento a tus valiosos comentarios
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests