Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Ayuda con campos obligatorios

Hola compañeros, recurro nuevamente a sus conocimientos y buena voluntad.. para hacer la consulta
Como podria controlar que se hayan ingresado los datos en 3 campos obligatorios antes de hacer un INSERT...??
Alguna funcion o procedimiento que haga esta control? soy novato en este entorno y necesito conocer herramientas, ya hice la busqueda pertienente pero no logro dar con lo que necesito, muchas gracias!

Ej. En una pantalla de compras, antes de ingresar debo controlar que se haya ingresado
-Codigo
-Precio
-Cantidad
de un articulo...

Pd: por favor que un mod. corrija el titulo que dice "ogligatorios"
__________________
Mi Blog: Webscom (Software libre)

Última edición por daragor fecha: 03-10-2012 a las 22:30:35.
Responder Con Cita
  #2  
Antiguo 03-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tienes varias opciones, la más simple es la típica:

Código Delphi [-]
if edCodigo.Text='' then
begin
  showmessage('Te olvidaste el código ';
  edCodigo.setfocus;
end;
Responder Con Cita
  #3  
Antiguo 03-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Si gracias casimiro!.. es la tipica pero se hace larga con un par de opciones mas que necesito y son 3 o 4 cuatro campos..
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #4  
Antiguo 03-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
O lo haces así o lo haces en el beforepost del dataset, no hay otra.
Responder Con Cita
  #5  
Antiguo 04-10-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Bueno, si tienes muchos edits podrías recorrerlos y comprobar si están rellenos, algo parecido a esto en el procedimiento que uses antes de grabar los datos... (escrito en el editor sin probar)

Código Delphi [-]
  for f:=0 to ComponentCount-1 do begin
    if Components[f] is TEdit then begin
       if (Components[f] as TEdit).Text = '' then begin
         ShowMessage('¡ATENCION! el siguiente valor no está indicado');
         (Components[f] as TEdit).setfocus;
         exit;
      end;
    end;
  end;

Si quieres que algunos puedan quedarse en blanco podrías usar el tag del componente para indicar cuales quieres que sean requeridos y cuales no (por ejemplo).

Saludos
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 04-10-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Perdonad por si digo alguna chorrada.

Esto no lo hace la propiedad Required de los campos persistentes ?

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #7  
Antiguo 04-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo recordar que el inconveniente de esa opción es que obliga a escribir algo para salir, aunque queramos abandonar la entrada de datos.
Se puede controlar, por supuesto.
Aunque las otras opciones también obligan a escribir , y también hay que controlar que no se quiera teclear algo.
Responder Con Cita
  #8  
Antiguo 04-10-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Si es un dato obligatorio.... imagino que algo habrá que escribir, de eso se trata no?

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #9  
Antiguo 04-10-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Por si te sirve la idea,

yo al principio controlaba la entrada de datos obligatorios con un showmessage como te indicaba Casimiro, pero cuando había muchos campos sin rellenar se volvía pesado por lo que ahora opto por pintar todos los campos que faltan de rojo y sacar un label de error que indica que faltan datos.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #10  
Antiguo 04-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Normalmente resalto las etiquetas de los campos requeridos y hago uso de la propiedad Required de los mismos.

Pero hay veces que el ingreso de datos en un componente requiere que previamente se haya ingresado algo en uno o más anteriores. En este caso no queda más remedio que evaluarlo a mano y reportarlo al ingresar al componente dependiente. Tal como sugieren los mensajes #2 y #5 por ejemplo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 04-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Hola compañeros gracias por la ayuda, con esto tengo informacion suficiente.. lo que si el Required no lo veo en lazarus!!... existe?¿
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #12  
Antiguo 05-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por daragor Ver Mensaje
Hola compañeros gracias por la ayuda, con esto tengo informacion suficiente.. lo que si el Required no lo veo en lazarus!!... existe?¿
¿En qué parte estás mirando?
Responder Con Cita
  #13  
Antiguo 05-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
En propiedades del TEdit
__________________
Mi Blog: Webscom (Software libre)
Responder Con Cita
  #14  
Antiguo 05-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En los campos del dataset.
Responder Con Cita
  #15  
Antiguo 05-10-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En los campos del dataset.
Hay algo que no me cuadra... en principio hablaba de los edits, no del dataset, por lo que me da la impresión de que quiere controlar el campo del edit antes de mandar al insert, ¿no?.
__________________
Be water my friend.
Responder Con Cita
  #16  
Antiguo 05-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ahora que lo dices, el texto exacto es:
Cita:
Como podria controlar que se hayan ingresado los datos en 3 campos obligatorios antes de hacer un INSERT...??
Así que tienes razón, algo no cuadra.
Responder Con Cita
  #17  
Antiguo 05-10-2012
daragor daragor is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 91
Poder: 12
daragor Va por buen camino
Si muchachos, todo el tiempo pense en controlar los datos desde el TEdit... no del dataset, y.. pregunte lo del required xq lo nombraron y no sabia donde estaba esa propiedad en lazarus.

Encontre un faRequired en los atributos de los campos del dataset.

[newtron], en el procedimiento que dejaste mas arriba, podrias explicarme o agregar como se usa el tab de los componentes q necesito sean obligatorios?
__________________
Mi Blog: Webscom (Software libre)

Última edición por daragor fecha: 05-10-2012 a las 15:02:40.
Responder Con Cita
  #18  
Antiguo 05-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.046
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que tu pregunta inicial es: "campos".
El edit no está relacionado con ningún campo, salvo que sea un dbedit.
O sea, que necesitamos que aclares lo que estás haciendo y lo que necesitas
Responder Con Cita
  #19  
Antiguo 05-10-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por daragor Ver Mensaje
[newtron], en el procedimiento que dejaste mas arriba, podrias explicarme o agregar como se usa el tab de los componentes q necesito sean obligatorios?
No es el tab, es la propiedad que se llama tag del componente, es una propiedad que se deja para que puedas meter cualquier valor y preguntar después por él de forma que si por ejemplo pones en el tag del edit que quieras poner como obligatorio un 1 podrías poner éste código.

Código Delphi [-]
  for f:=0 to ComponentCount-1 do begin
     if Components[f] is TEdit then begin
        if ((Components[f] as TEdit).Text = '') and ((Components[f] as TEdit).Tag = 1) then begin
          ShowMessage('¡ATENCION! el siguiente valor no está indicado');
          (Components[f] as TEdit).setfocus;
          exit;
       end;
     end;
  end;

Saludos
__________________
Be water my friend.
Responder Con Cita
  #20  
Antiguo 05-10-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una pequeña observación. Si ya comprobaste que Components[f] is un TEdit, ya no hace falta usar el operador as, que es un pelín menos eficiente que el moldeo directo TEdit(Components[f]).

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Campos Fechas, ayuda!!! shoulder SQL 7 13-08-2008 15:43:57
Ayuda Con Campos Auto_increment drakkon SQL 0 26-06-2007 20:25:57
enviar mensajes de error en campos obligatorios y clave unica Goyo Conexión con bases de datos 0 15-05-2007 23:11:07
Problemas con claves primarias y campos obligatorios Bitbanner Conexión con bases de datos 1 09-02-2005 11:20:31
ayuda con campos blob squenda Conexión con bases de datos 10 08-04-2004 07:12:48


La franja horaria es GMT +2. Ahora son las 18:14:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi