FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas de condicional If
Gracias por atender este mensaje. No he podido lograr que cuando no se encuentre el articulo, me ponga en la LabelError "Clave de Articulo no encontrada"
Le agradezco cualquier comentario. Código:
if Key = VK_RETURN then begin FormPrincipal.ZQueryProds.Open; with FormPrincipal.ZQueryProds do begin If ZQueryProds.Locate('ARTICULO', EditVentas.Text,[loCaseInsensitive]) then begin .......resto del codigo......... end; end else begin FormPrincipal.LabelError.Caption := 'Clave de articulo no encontrada'; end; end; |
#2
|
||||
|
||||
Hola Whatson. Bienvenido al club.
El problema está en un punto coma que has puesto antes del esle. Al poner ahí el puntocoma, el else hace referencia a if key = vk_return. ¡Un despite lo tiene cualquiera! Saludos, y pásate por aquí siempre que lo necesites. Edito: ahora que lo veo, también sobra un end antes del else. Es decir, quita el "end;" y ponlo después de "LabelError.Caption..." (ves lo que decía de los despistes... ) Última edición por ixMike fecha: 15-12-2007 a las 02:19:46. |
#3
|
|||
|
|||
Te agradezco Tu respuesta , en verdad creo que seria necesario pasar todo el codigo para que lo veas:
if Key = VK_RETURN then begin FormPrincipal.ZQueryProds.Open; with FormPrincipal.ZQueryProds do begin If ZQueryProds.Locate('ARTICULO', EditVentas.Text,[loCaseInsensitive]) then begin // Acciones para una nueva venta // Voy a obtener el nuevo consecutivo with FormPrincipal.ZTableConsec do begin Locate('DATO', 'PARTVTA', [loCaseInsensitive]); Edit; FieldByName('Consec').AsInteger := FieldByName('Consec').AsInteger + 1; SIGUIENTE := FieldByName('Consec').AsInteger ; Post; end; FormPrincipal.ZQueryPartsVta.Append; FormPrincipal.ZQueryPartsVta.FieldByName('VENTA').asString := FormPrincipal.ZQueryVenta.FieldByName('VENTA').asString; FormPrincipal.ZQueryPartsVta.FieldByName('ARTICULO').asString := EditVentas.Text ; FormPrincipal.ZQueryPartsVta.FieldByName('CANTIDAD').asString := '1'; FormPrincipal.ZQueryPartsVta.FieldByName('OBSERV').asString := FieldByName('DESCRIP').asString; FormPrincipal.ZQueryPartsVta.FieldByName('Precio').AsCurrency := FieldByName('Precio1').asCurrency; FormPrincipal.ZQueryPartsVta.FieldByName('ID_SALIDA').asInteger := SIGUIENTE; FormPrincipal.ZQueryPartsVta.Post; FormPrincipal.ZQueryPartsVta.FieldByName('IMPORTE').asCurrency := FieldByName('Precio1').asCurrency; EditVentas.Clear; end else begin FormPrincipal.LabelError.Caption := 'Clave de articulo no encontada'; end; end; EditVentas.Clear; end; end; |
#4
|
||||
|
||||
Hola whatson, solo como nota para el futuro, es recomendable usar las etiquetas DELPHI cuando pongas código, así será mucho mas fácil entender el código.
Saludos! |
#5
|
|||
|
|||
Gracias por la recomendacion.
De cualquier forma, Les pido de nuevo su ayuda, ya que no he podido resolverlo. |
#6
|
||||
|
||||
Cita:
Cita:
Este código (que es igual que tuyo, pero más "limpio") debería estar bien:
Ahora, funciona sólo si estás seguro de que todo lo que se encuentre en ZQueryProds como "ARTICULO" es seguro que también está en ZTableConsec como "DATO", sino, pues necesitarías hacer esta pequeña modificación:
Nota: repásate el uso de with ... do. Nota 2: identa tu código (esto es, deja espacios a la izquierda, más espacios cuanto más subniveles de begins, ifs, fors y demás utilices), así será más legible (para los demás y para ti mismo). Saludos. Última edición por ixMike fecha: 16-12-2007 a las 01:01:02. |
#7
|
|||
|
|||
ixMike
Gracias. El principal problema fue el mal estilo de programacion, asi como una linea mal colocada en el evento onChange del EditVentas. Gracias de Nuevo a Todos. Problema resuelto. |
#8
|
||||
|
||||
Puedes usar CNPack
para un estilo de programacion mas estructurado puedes usar el CNPACK muy bueno que te ayuda a la justificacion del lineas de codigo asi como algunos usos mas.
la liga es: www.cnpack.org/ http://www.cnpack.org/showlist.php?id=39&lang=en o en su caso mandame un correo y te lo paso |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Compilador Condicional | sercornejov | Varios | 4 | 22-09-2007 01:14:08 |
If condicional al afectar existencias con store procedure... | uper | Firebird e Interbase | 2 | 16-09-2005 17:42:06 |
En libertad condicional creador de sasser | jachguate | Noticias | 2 | 11-07-2005 23:12:42 |
locate condicional | gatsoft2 | Varios | 10 | 06-05-2005 16:57:37 |
Sentencia condicional dentro de MYSQL | quade | MySQL | 1 | 02-11-2004 16:36:30 |
|