Clarion - Evitar que se grabe un registro en blanco

 
Vista:
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 03/06/2011 17:45:23
Hola:

Quería hacerles la siguiente consulta: ¿cómo evito que se graben en un archivo registros sólo con el número de registro y el resto de los campos en blanco? Y ¿cómo puedo evitar que se salteen números de registro? Por ejemplo, tengo grabados los legajos 25170 al 25177, falta el 25178 y sigue desde el 25179 en adelante. Esto pasa muy seguido, aparecen muchos números salteados. Muchas gracias!!!
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

Evitar que se grabe un registro en blanco

Publicado por daniel (86 intervenciones) el 04/06/2011 03:00:17
hola walter una pregunta ?
el campo que manejas el numero del legajo es auto numerado ?
daniel !!
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 06/06/2011 16:38:59
Hola Daniel. Sí es autonumerado. Si me puedes ayudar te lo agradeceré porque todos los días, cuando ingreso a ver los legajos que grabaron las chicas de informática, encuentro varios números salteados.

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

Evitar que se grabe un registro en blanco

Publicado por daniel (86 intervenciones) el 06/06/2011 16:52:57
hola walter :
si tienes una clave solo por numero de legajo y esta autonumerado y no cargan otro campo estos se van a grabar en blanco, todos tus campos son obligatorios de cargar ?, por que sino puedes validar los campos para que no sean 0 o nulos en el accept del boton Ok.

o sea que no deje grabar el registro si los campos no estan llenos ...

avisame como te va o me mandas un mail y te paso un ejemplo ..
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Marcelo Madelon (572 intervenciones) el 08/06/2011 12:17:51
Walter
Lo que dice Daniel es correcto, pero si en algun embeds haces abandonar la rutina por código, eso seria usando el comando HALT, el campo te va a quedar generado solo con el numero de legajo y el resto en ceros o blancos, y como en la clave seguramente le has indicado que excluya los vacios, no te los muestra.
En: Exclude Empty Keys, seguramente lo tienes tildado.
Para verificar fijate que clave tiene destildado esta opción y luego habre el archivo tps con TopSpeed y parate en la clave que tenga destildado esa opción, y veras que te aparecen todos los registros. Yo buscaria de poner campos obligatorios, (Como dice Daniel), en Validity Checks Canno Be Zero or Blank lo tildaría. Tambien usaria el template Enter x Tab.

Saludos
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 08/06/2011 15:44:41
Muchas gracias por sus consejos, los pondré en práctica y les aviso cómo me fue. Un abrazo.
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

Evitar que se grabe un registro en blanco

Publicado por daniel (86 intervenciones) el 08/06/2011 15:52:23
seria una buena opcion usar el tab enter por tab, otra cosa que puedes hacer es validar los campor para que no pasen datos en blanco en campos que no tienes el en Validity Checks Canno Be Zero or Blank. para que no te deje grabar el registro, pero seguramente estas con la opcion Exclude Empty Keys tildada, si todas las claves estan tildadas.

saludos avisa como te fue para que nos conectemos y te ayude si no puedes





suerte Daniel Balas
Orán Salta.. Argentina
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

Evitar que se grabe un registro en blanco

Publicado por federico (43 intervenciones) el 23/06/2011 18:04:00
Este problema tiene solucion, les planteo otro problema casi similar. ¿Que pasaria si yo tengo una cabecera de un contrato X y tiene su detalle con las personas que intervienen en ese contrato? el dia de mañana necesito cambiar ese contrato por otro plan un poco mas caro o simplemente uno mas barato pero necesito conservar los datos anteriores y necesariamente crear registros en tablas similares con el antes y el despues de ese nuevo plan?, como lo harian? crear una queue es algo simple, yo pense en tener una cabecera y un detalle apartes y alli tener datos anteriores y actuales y modificarlos a mi gusto. Pero he aqui el problema por el cual comento en este post, si paso automaticamente los datos a partir del titular de este contrato al detalle y me llena mi datalle de personas como hago para que no me quede huerfanos mis datos hijos si no confirmo mi dato padre.
Una alternativa seria anular la salida del browse con Esc y escribir codigo en el accept y en el cancel, se les ocurre otra manera?
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 15/07/2011 14:11:55
En el accept del botón OK le puse por ejemplo que si un campo es cero o nulo me muestre un mensaje avisando esto (con message) pero el registro se graba lo mismo. Cómo hago para que quede en el campo esperando que se ingrese el valor correspondiente?
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

Evitar que se grabe un registro en blanco

Publicado por daniel (86 intervenciones) el 15/07/2011 17:50:10
hola walter como estas :

suponiendo que tenes una tabla que se llama MOVIMIENTOS, y tenes un campo que se llama precio, que es el que no queres que se grabe en blanco, lo que debes hacer es en el accept del BOTTON OK colocas

IF MOV:precio=0 THEN ! Pregunta si tu campo es igual a 0.
beep ! Produce un Sonido.
MESSAGE('La cantidad es igual a 0 ',' Ingrese una Cantidad ',ICON:Exclamation
SELECT(?MOV:Precio) ! Regresa al Campo Precio.
END

asi podes hacer con todos los campos que no queres que sean 0 o nulos. o bien podes manejarte con los campos en forma independiente al ir ingresando los valores. pero mejor manejalo en el accept. del OK con todos los campos asi vas a saber cual esta en blanco y cual no

espero que te sirva.

cualquier cosa avisame Suerte !!

Daniel Balas
Oran Salta
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 15/07/2011 21:57:25
Gracias por tu respuesta, Daniel. Eso es lo que hago, pero después de producir el sonido y mostrarme el mensaje de error, sale del procedimiento como si no hubiera nada en el acept del botón Ok, no regresa a pedirme nuevamente el dato no ingresado. Qué estaré haciendo mal?
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

Evitar que se grabe un registro en blanco

Publicado por daniel (86 intervenciones) el 16/07/2011 18:39:18
hola walter :
fijate si colocaste el select(?TAB:Campo) ?

si no funciona proba solocando el codigo en el selected del botton OK debajo de generated code .
cualquier cosa avisame o pasame un correo asi te agrego y lo resolvemos

Suerte !!
Daniel Balas
Oran Salta
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

Evitar que se grabe un registro en blanco

Publicado por Federico (43 intervenciones) el 17/07/2011 15:52:09
bueno...te respondo porque veo que el problema no fue encarado como debia ser, tenes que dar mas datos man. Primero debes dar el dato de que si trabajas con .tps o con alguna base de datos, porque si es uno u otro la solucion es diferente. Si es .tps, que es lo que creo, debes revisar las claves de tu tabla, tener un primary key que tenga marcado el Require Unique Value y tambien ver la opcion Exclude Empty Keys, lo de Marcelo Madelon esta muy bien. Una vez hecho esto en tu aplicacion debes de tener en cuenta los campos requeridos, (propiedades, lengueta extras) que esten marcadas en las opciones de Required y en el embed del campo en select poner ?nombre de tu campo{prop:touched}=true.
otra cosa que podes hacer es esto:
En el acepted de tu boton OK, antes de generar codigo le pones esto:

IF INCOMPLETE()
SELECT(INCOMPLETE())
CYCLE
END

Esto lo que hara es devolver el control sobre el campo que no se haya completado para no pasarlo en blanco.
Espero que te haya servido.
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Marcelo Madelon (572 intervenciones) el 17/07/2011 17:50:01
Federico

Es verdad lo que decis en cuanto a la falta de datos como para que te orienten y puedas dar una ayuda.
Creo que con lo tuyo el problema debería estar resuelto. (a menos que todos hayamos interpretado mal)

Saludos
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 19/07/2011 13:49:55
Mis archivos son tps. Tengo un primary key que tiene marcado el Require Unique Value, y en los campos que me interesa que no queden vacíos, tengo marcada la opcion Canot be Zero or Blank.
Probé con todo lo que me dijeron y no hay caso.
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Marcelo Madelon (572 intervenciones) el 19/07/2011 15:01:09
Walter

Menu llama a:
BrowseArchivo llama a:
Ficha:Archivo (Update:Archivo)

En este ultimo en el boton de accept yo pongo en el Select el siguiente código para los controles:
! te paso el control de varios campos

IF ARC:Numero Not > 0
MESSAGE('Falta ingresar el Número..........','Mensaje del Sistema',ICON:Exclamation)
Select(?ARC:Numero) ! regresa al Numero
CYCLE
END

If Invalido = 1
Message('Número de CUIT Inválido......','Mensaje del Sistema',ICON:Exclamation)
Select(?ARC:Cuit) ! Regresa al cuit
CYCLE
End

! Controlo Fecha Que no sea mayor a Today() y Muestro en el Message el Valor de Today()

IF ARC:Fecha > Today()
Message('Fecha No Puede Ser Mayor a Fecha Actual......'&format(Today(),@d06b),'Mensaje del Sistema',ICON:Exclamation)
Select(?ARC:Fecha ) ! Regresa a Fecha
CYCLE
End


Espero te sirva. Avisa como te fue.
Saludos desde Venado Tuerto -
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

Evitar que se grabe un registro en blanco

Publicado por federico (43 intervenciones) el 20/07/2011 20:59:08
porque no haces algo, si al menos queres. Hace un zip de tu diccionario y tu app e indicame que proceso tiene ese problema y me lo envias a mi correo [email protected], yo lo genero de nuevo aca en mi pc y veo debugando y revisando tu codigo. Te prometo que no lo voy a piratear jajajaja, no es mi estilo, ademas ya deje de trabajar en clarion hace un tiempo, ahora trabajo practicamente solo en Oracle y derivados. No se que mas decirte porque si hiciste todo lo que te indicamos deberia de funcionarte sin problemas. Depende de vos.
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
sin imagen de perfil

Evitar que se grabe un registro en blanco

Publicado por Walter (45 intervenciones) el 21/07/2011 14:38:28
Solucioné mi problema! HIce lo siguiente, según las muchas indicaciones que me dieron: en el accept del botón Ok puse:
IF INCOMPLETE()
SELECT(INCOMPLETE())
CYCLE
END

Y el control lo hice en el accept de cada campo que quería que si o si grabe un valor. Por ejemplo, en el campo de "tipo de discapacidad" puse:
If Dia:Tipo1 = ''
Message('No informó Tipo de Discapacidad.','Error de ingreso!')
select(?Dia:Tipo1)
end
display()

Por supuesto, habilitando en el diccionario la opcion "Canot Be Zero or Blank".

Muchas gracias a todos por su ayuda, da gusto contar con gente como ustedes.
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