Clase Database trae todos los campos del registro(SOLUCION)

Clase Database trae todos los campos del registro(SOLUCION)

Postby Compuin » Sun Aug 21, 2011 5:46 am

Saludos grupo,

Estoy usando la clase Tdatabase para mantener un archivo

oDbf:=tDatabase():New()

Al llamar el dialogo de carga uso este codigo

IF lNuevo
oDbf:BLANK()
oDbf:GOBOTTOM()
oDbf:BCO_CODIGO := StrZero((VAL(oDbf:BCO_CODIGO) +1), 12)
ELSE
oDbf:LOAD()
ENDIF

Si el registro es nuevo, agrega uno en blanco pero el campo para el codigo lo quiero generar desde una numeracion correlativa. Si es modificacion, mostrara el registro completo.

El problema que estoy teniendo es que en ambos casos trae el registro completo, es decir, al intentar uno nuevo trae el correlativo y tambien el resto de los campos, no permitiendo ingresar datos nuevo. Solo quiero traer el campo del codigo cuando sea uno nuevo

Como se podria solventar esta situacion? Agradezco de antemano
Last edited by Compuin on Sun Aug 21, 2011 4:29 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: Clase Database trae todos los campos del registro

Postby Antonio Linares » Sun Aug 21, 2011 5:51 am

Parece que en tu codigo estas dos lineas deberian ir al reves:

oDbf:BLANK()
oDbf:GOBOTTOM()

a:

oDbf:GOBOTTOM()
oDbf:BLANK()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41318
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase Database trae todos los campos del registro

Postby Compuin » Sun Aug 21, 2011 6:12 am

Antonio,

Gracias por tu valiosa sugerencia. Ya lo intente y al invertir las lineas el comportamiento es que deja de generar el correlativo, es decir

oDbf:BCO_CODIGO := StrZero((VAL(oDbf:BCO_CODIGO) +1), 12)

no es capaz de continuar con el siguiente numero. Genera la numeracion en 1. Aparentemente

oDbf:BLANK()

esta reiniciando a 1 la continuacion de los numero.
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: Clase Database trae todos los campos del registro

Postby Antonio Linares » Sun Aug 21, 2011 7:40 am

La secuencia sería:

1. Calculas el nuevo código:

oDbf:GOBOTTOM()
cBCO_CODIGO := StrZero((VAL(oDbf:BCO_CODIGO) +1), 12)

2. Añades un nuevo registro

oDbf:Append()
oDbf:BCO_CODIGO = cBCO_CODIGO

3. El usuario rellena los datos
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41318
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Clase Database trae todos los campos del registro

Postby Compuin » Sun Aug 21, 2011 3:59 pm

Antonio,

Probe y sigue en mismo comportamiento. Lo que deseo es que al cargar el nuevo registro solo muestre el Get con el codigo y e numero consecutivo y el resto de los gets vengan vacios para cargar el nuevo registro. Lo que esta pasando es que se esta trayendo todos los campos y los rellena en los gets
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: Clase Database trae todos los campos del registro

Postby Pedro » Sun Aug 21, 2011 4:18 pm

Hola
Si lo quieres hace como lo tenías al principio

IF lNuevo
oDbf:GOBOTTOM()

BCO_CODIGO := StrZero((VAL(oDbf:BCO_CODIGO) +1), 12)
oDbf:BLANK()
oDbf:BCO_CODIGO := BCO_CODIGO

ELSE
oDbf:LOAD()
ENDIF


Una vez rellenado los campos haces el oDbf:Append() y el oDbf:Save()
El tema está en que cuando traes el último numero lo asignes a una variable, a continuación pongas en blanco el buffer y luego asignes el número al campo correspondiente del buffer.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Clase Database trae todos los campos del registro

Postby Compuin » Sun Aug 21, 2011 4:28 pm

Antonio, Pedro,

De esta ultima manera funciona OK. Gracias a ambos por su valiosa ayuda!

Saludos
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: Clase Database trae todos los campos del registro(SOLUCION)

Postby joseluisysturiz » Mon Aug 22, 2011 3:52 am

Saludos, para un mejor control te recomendaria que hicieras una DBF de 1 solo registro, donde controles los correlativos, es lo mas sano y seguro, asi puedes vaciar tu tabla de banco cuando quieras y no perderas tu correlativo, es una simple idea, y funciona perfecta.saludos. :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 11 guests