CA-Visual Objects - Ayuda: Your changes will be discarded

 
Vista:

Ayuda: Your changes will be discarded

Publicado por Jose Cordero (95 intervenciones) el 30/04/2004 01:44:55
Resulta que me sale este error "Your changes will be discarded" en una DataWindow, al parecer es al fallar alguna validación de campos, .. alguien de ustedes sabe como sulucionarlo ... desde ya gracias.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda: Your changes will be discarded

Publicado por Larry Santibáñez F. (24 intervenciones) el 06/05/2004 03:46:08
Hola, saludos. ¿Te ocurre cuando grabas?. Cuando asociaba la tabla a la ventana en modo de diseño me pasaba algunas veces el problema y no recibía los cambios por que el enlace con la tabla se perdía. Ahora que la datawindow la uso sin servidor no me ocurre el problema. (Como lo es con clipper). Intenta ver el status del servidor de datos. Sería recomendable saber en que momento te ocurre el problema. Suerte saludos, atte.

Larry Santibáñez F.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda: Your changes will be discarded

Publicado por Jose Cordero (95 intervenciones) el 07/05/2004 02:12:03
OK, Larry el error me sale cuando selecciono el boton <CANCELAR> de la DataWindows o cuando falla algunas de las propiedades de los campos como Requerido, Validatacion de que existe con el metodo VALIDATE() de la especificación del campo y devuelve FALSE por que el cliente ya esta dado de alta y también al momento de grabar "Your changes will be ...discarded" ya no me grava nada, solamente un registro en Blanco.

Desde ya gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda: Your changes will be discarded

Publicado por Larry Santibáñez F. (24 intervenciones) el 07/05/2004 07:46:48
Hola, saludos. Entiendo que el registro del cliente ya existe y se ven los datos en la datawindows. Entonces al cancelar la datawindows hace un proceso de revisión de los datos y encuentra algo raro. Por ejemplo el campo requerido corresponde al actual registro, pero algo estás haciendo que cuando cancelas el puntero no está posecionado en el registro solicitado, en la ventana sólo se muestra la imagen primitiva. La datawindows trae varias propiedades que la hacen muy poderosa, recuerda que se comunica directamente con los registros de la tabla, entonces cualquier cambio que haga otra estación, esta ventana debe ser capaz de reconocer los cambios. Lo primero que haría es verificar que el registro que se muestra en la ventana sea el que corresponde al volver a grabar.
¿Como anda el proceso cuando ingresa un nuevo cliente?, ¿esa parte funciona bien?. A ver si podemos ahondar más en el tema e intentar entregar una solución más adecuada. $$Suerte$$, atte.

Larry Santibáñez F.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda: Your changes will be discarded

Publicado por Jose Cordero (95 intervenciones) el 07/05/2004 22:34:13
Hola, es ahi donde tengo el problema al agregar un nuevo cliente, he intentado utilizar los metodos:

- EditFocusChange() para verificar que el registro no se duplique, pero no funciona a las 3 o 5 validaciones bien y luego marca un error.
METHOD EditFocusChange(oEditFocusChangeEvent) CLASS NuevaEscrituraWin
LOCAL oControl AS Control
LOCAL lGotFocus AS LOGIC
oControl := IIf(oEditFocusChangeEvent == NULL_OBJECT, NULL_OBJECT, oEditFocusChangeEvent:Control)
lGotFocus := IIf(oEditFocusChangeEvent == NULL_OBJECT, FALSE, oEditFocusChangeEvent:GotFocus)
SUPER:EditFocusChange(oEditFocusChangeEvent)
//Put your changes here
*oControl:Owner:Server:SuspendNotification()
IF oControl:NameSym == #mNUM .AND. !lGotFocus // Salio del control
IF SELF:Server:Seek( mNUM )
MessageBox(0,"Ya fue dado de Alta !", "Cliente: "+Str(mNUM,5),MB_OK+MB_ICONEXCLAMATION)
oControl:SetFocus()
END IF
END IF

RETURN NIL

- Utilizando la especificación de campo Validation ="{|uValue,oControl, ExisteCli(uValue,oConrol)| } FIELDSPEC de la tabla campo NUM=Clave Cliente
y la funcioón
FUNCTION ExisteClie(xValue,oControl)
LOCAL lFound
LOCAL lValRetorno := .T. AS LOGIC
LOCAL i AS WORD

IF ( oControl:Owner:Server:Seek( xVar ) )

MessageBox(0,"Ya fue dado de Alta !", "Cliente: "+Str(xVar,5),MB_OK+MB_ICONEXCLAMATION)
lValRetorno := .F.
ELSE
lValRetorno := .T.
END IF

RETURN lValRetorno

* UTILIZO variables intermedias de edición la estilo Clipper, que podra ser...?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda: Your changes will be discarded

Publicado por Larry Santibáñez F. (24 intervenciones) el 10/05/2004 05:20:38
Hola, saludos. Veamos el metodo EditFocusChange, al parecer es un poco más claro. Si el cliente existe aparece el mensaje "dado de alta", está correcto, me imagino que si es así, debes limpiar las variables, todas las variables incluso mNUM. Desde el punto de vista de la tabla el puntero está en el registro del cliente que ya existe.
Si el cliente no existe entonces completas el resto de las variables, me imagino que así lo estás haciendo. Desde el punto de vista de la tabla el puntero llegó al final de la misma por lo tanto está en un registro que no existe.
Ahora bien, creo que después le das al botón "grabar", entonces lo que debe ocurrir es que en ese momento se crea un nuevo registro. Si es así no debería de ocurrir ningún problema. Revisa el resto de los procesos, puede haber otra tabla involucrada, o algún proceso cierra la actual tabla, recomiendo que todos los procesos lo hagas en una sola ventana. Espero haber ayudado, revisa y me cuentas, atte.

Larry Santibáñez F.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar