Inicio > Visual FoxPro > ervmaverick > problema con formulario

problema con formulario

Experto:
Usuario:
Fecha: 01/09/2004
Valoración: (3,00 sobre 5) Categoría: Visual FoxPro
31/08/2004
astrosol, usuario preguntando en Visual FoxPro
Usuario
HOLA AMIGOS!!

tengo una tabla llamada produccion y teno un formulario para ingresar nuevos
registros a la tabla y otro que cuando solo cambia un dato en la tabla
me traiga todos los registros y se cuarde un nuevo registro con esos
datos no que me remplace el que encontro.

yo utilizo un combo en el formulario donde me llama todos los codigos de
las maquinas de mi tabla
y utlizo el sigueinte codigo
SET FILTER to productel.tipmaq = ALLTRIM(thisform.combo1.value)
set order to IDXFECHATE
GO BOTTOM
* IF FOUND()
THISFORM.TXTop.VALUE = PRODUCTEL.OP
THISFORM.TXTDISENO.VALUE = PRODUCTEL.DISENO
THISFORM.TXTREFERENCIA.VALUE = PRODUCTEL.REFERENCIA
THISFORM.TXTCLIENTE.VALUE = PRODUCTEL.CLIENTE
THISFORM.TXTPINTA.VALUE = PRODUCTEL.PINTA
THISFORM.TXTMETROSENGO.VALUE = PRODUCTEL.METROSENGO
THISFORM.TXTTURNO.VALUE = PRODUCTEL.TURNO
thisform.txtfechatel.value =productel.fechatel
THISFORM.COMBO2.VALUE = PRODUCTEL.CONSTANTE
thisform.txtnomreferen.value =productel.nomreferencia

todo esto en el evento valid!! y para guardar el registro utilizo:

SELECT PRODUCTEL
append blank
LnGrabar = MESSAGEBOX("Desea Grabar ?",4+32)


IF LEN(ALLTRIM(THISFORM.COMBO1.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTOP.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTDISENO.VALUE)) = 0
THISFORM.E_CONTR = .T.
ENDIF

IF LEN(ALLTRIM(THISFORM.TXTREFERENCIA.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTCLIENTE.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTPINTA.VALUE)) = 0
THISFORM.E_CONTR = .T.
ENDIF

IF THISFORM.TXTPICKS.VALUE = 0 .OR. THISFORM.TXTMETROS.VALUE = 0
THISFORM.E_CONTR = .T.
ENDIF

IF THISFORM.TXTMETROSENGO.VALUE = 0 .OR. LEN(ALLTRIM(THISFORM.TXTTURNO.VALUE)) = 0
THISFORM.E_CONTR = .T.
ENDIF


IF LnGrabar = 6 .AND. THISFORM.E_CONTR <> .T. &&.AND. THISFORM.E_REF <> .F. && El Usuario Dice SI
=TABLEUPDATE(.T.)

REPLACE PRODUCTEL.OP WITH THISFORM.TXTOP.VALUE
REPLACE PRODUCTEL.DISENO WITH THISFORM.TXTDISENO.VALUE
REPLACE PRODUCTEL.REFERENCIA WITH THISFORM.TXTREFERENCIA.VALUE
REPLACE PRODUCTEL.CLIENTE WITH THISFORM.TXTCLIENTE.VALUE
REPLACE PRODUCTEL.TIPMAQ WITH THISFORM.COMBO1.VALUE
REPLACE PRODUCTEL.PINTA WITH THISFORM.TXTPINTA.VALUE
REPLACE PRODUCTEL.METROSENGO WITH THISFORM.TXTMETROSENGO.VALUE
replace productel.fechatel with tur_fech.fecha
replace productel.picks with thisform.txtpicks.value
replace productel.constante with thisform.combo2.value
replace productel.metros with thisform.txtmetros.Value
replace productel.turno with tur_fech.turno

ELSE
WAIT WINDOW "faltan datos!"
=TABLEREVERT(.T.)
GO TOP
ENDIF

bueno pero no me esta guardadno los datos y cuando voy abrir la tabla me
aparece este error(thisform no puede usasarse en un metodo)

y voy a ejecutar el formulario y me dice(error al cargar archivo numero de registro 8.
form1. <uno de sus miembros> cargando el formulario en el entorno de datos, thisform
solo puede undarse dentro de un metodo.
espero alguien pueda ayudarme, o que me envie su correo y nos comuniquemos
31/08/2004
astrosol, experto respondiendo en Visual FoxPro
Experto
HOLA AMIGOS!!

tengo una tabla llamada produccion y teno un formulario para ingresar nuevos
registros a la tabla y otro que cuando solo cambia un dato en la tabla
me traiga todos los registros y se cuarde un nuevo registro con esos
datos no que me remplace el que encontro.

yo utilizo un combo en el formulario donde me llama todos los codigos de
las maquinas de mi tabla
y utlizo el sigueinte codigo
SET FILTER to productel.tipmaq = ALLTRIM(thisform.combo1.value)
set order to IDXFECHATE
GO BOTTOM
* IF FOUND()
THISFORM.TXTop.VALUE = PRODUCTEL.OP
THISFORM.TXTDISENO.VALUE = PRODUCTEL.DISENO
THISFORM.TXTREFERENCIA.VALUE = PRODUCTEL.REFERENCIA
THISFORM.TXTCLIENTE.VALUE = PRODUCTEL.CLIENTE
THISFORM.TXTPINTA.VALUE = PRODUCTEL.PINTA
THISFORM.TXTMETROSENGO.VALUE = PRODUCTEL.METROSENGO
THISFORM.TXTTURNO.VALUE = PRODUCTEL.TURNO
thisform.txtfechatel.value =productel.fechatel
THISFORM.COMBO2.VALUE = PRODUCTEL.CONSTANTE
thisform.txtnomreferen.value =productel.nomreferencia

todo esto en el evento valid!! y para guardar el registro utilizo:

SELECT PRODUCTEL
append blank
LnGrabar = MESSAGEBOX("Desea Grabar ?",4+32)


IF LEN(ALLTRIM(THISFORM.COMBO1.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTOP.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTDISENO.VALUE)) = 0
THISFORM.E_CONTR = .T.
ENDIF

IF LEN(ALLTRIM(THISFORM.TXTREFERENCIA.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTCLIENTE.VALUE)) = 0 .OR. LEN(ALLTRIM(THISFORM.TXTPINTA.VALUE)) = 0
THISFORM.E_CONTR = .T.
ENDIF

IF THISFORM.TXTPICKS.VALUE = 0 .OR. THISFORM.TXTMETROS.VALUE = 0
THISFORM.E_CONTR = .T.
ENDIF

IF THISFORM.TXTMETROSENGO.VALUE = 0 .OR. LEN(ALLTRIM(THISFORM.TXTTURNO.VALUE)) = 0
THISFORM.E_CONTR = .T.
ENDIF


IF LnGrabar = 6 .AND. THISFORM.E_CONTR <> .T. &&.AND. THISFORM.E_REF <> .F. && El Usuario Dice SI
=TABLEUPDATE(.T.)

REPLACE PRODUCTEL.OP WITH THISFORM.TXTOP.VALUE
REPLACE PRODUCTEL.DISENO WITH THISFORM.TXTDISENO.VALUE
REPLACE PRODUCTEL.REFERENCIA WITH THISFORM.TXTREFERENCIA.VALUE
REPLACE PRODUCTEL.CLIENTE WITH THISFORM.TXTCLIENTE.VALUE
REPLACE PRODUCTEL.TIPMAQ WITH THISFORM.COMBO1.VALUE
REPLACE PRODUCTEL.PINTA WITH THISFORM.TXTPINTA.VALUE
REPLACE PRODUCTEL.METROSENGO WITH THISFORM.TXTMETROSENGO.VALUE
replace productel.fechatel with tur_fech.fecha
replace productel.picks with thisform.txtpicks.value
replace productel.constante with thisform.combo2.value
replace productel.metros with thisform.txtmetros.Value
replace productel.turno with tur_fech.turno

ELSE
WAIT WINDOW "faltan datos!"
=TABLEREVERT(.T.)
GO TOP
ENDIF

bueno pero no me esta guardadno los datos y cuando voy abrir la tabla me
aparece este error(thisform no puede usasarse en un metodo)

y voy a ejecutar el formulario y me dice(error al cargar archivo numero de registro 8.
form1. <uno de sus miembros> cargando el formulario en el entorno de datos, thisform
solo puede undarse dentro de un metodo.
espero alguien pueda ayudarme, o que me envie su correo y nos comuniquemos
01/09/2004
astrosol, usuario preguntando en Visual FoxPro
Usuario
Bien. Una respuesta aceptable.
Enlaces patrocinados