Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-08-2016
cristian22 cristian22 is offline
Miembro
NULL
 
Registrado: jun 2014
Posts: 18
Poder: 0
cristian22 Va por buen camino
Ayuda con apertura de Caja

Hola buenas tardes estoy trabajando con un formulario que realiza la apertura de caja lo estoy desarrollando usando componentes query de zeos en delphi 2010 y para la base de datos utilizo mysql-5.En cual dicha base de datos tengo 2 tablas una que se llama Caja y la otra apertura las cuales estan conformadas por los siguientes datos

Código SQL [-]
caja:
idcaja
monto_total
estado

Código SQL [-]
apertura
idcaja
monto_inicial
fecha

En el Formulario tengo los siguientes componentes. Un dblookupcombobox1 para seleccionar la caja que deseo abrir. Un Tedit para ingresar el monto de inicial, un tdatetimepicker para registrar la fecha de apertura dicha fecha se toma por medio de un query que contiene una consulta a la base de datos.Y 2 botones uno aceptar y otro cancelar.

Bien a la hora de realizar el post en el boton aceptar no tengo prolema realizo con el siguiente codigo.
Código Delphi [-]
qApertura.Active:=true;
qApertura.Insert;
qFecha.Open;
qApertura['Fecha_Apertura']:=qFecha['fecha'];
qApertura['Hora_Apertura']:= qFecha['hora'];
qApertura['Monto_Inicial']:=StrToInt(self.Edit2.Text);
qFecha.Close;
qApertura.Post;

Hasta aqui no tengo ningun prolema. Resulta que ahora quiero realizar la siguiente comprobación. Quiero verificar si la caja que seleccione en el dblookupCombobox. Tiene el estado en 0 si es así le cambio el valor a 1 y realizo el post. De lo contrario muestro un mensaje que diga que la caja ya fue abierta. Realice el siguiente código. resulta que no me verifica si el estado de la caja que ya seleccione esta en 0 o en 1. Tal vez estoy realizando algo mal si pudieran ayudarme desde ya se los agradezco

Código Delphi [-]
procedure TfApertura.bAceptarClick(Sender: TObject);
begin

qCaja.Open;
qApertura.Active:=true;
while not qCaja.Eof do
    begin
        if qCaja.FieldByName('estado_caja').AsInteger = 0 then
               begin
                qCaja.Edit;
                qApertura.Insert;
                qFecha.Open;
                qApertura['Fecha_Apertura']:=qFecha['fecha'];
                qApertura['Hora_Apertura']:= qFecha['hora'];
                qApertura['Monto_Inicial']:=StrToInt(self.Edit2.Text);
                qFecha.Close;
                qCaja.FieldByName('estado_caja').AsInteger:=1
               end
                else
                showmessage('Caja Abierta');
    end;
        qApertura.Post;
        self.Close;

 end;
Responder Con Cita
  #2  
Antiguo 02-08-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.271
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Haces un Edit de qCaja, cambias el valor, pero no haces un Post.
Después de esta línea:

Código Delphi [-]
qCaja.FieldByName('estado_caja').AsInteger:=1

coloca:

Código Delphi [-]
  qCaja.Post;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 02-08-2016
cristian22 cristian22 is offline
Miembro
NULL
 
Registrado: jun 2014
Posts: 18
Poder: 0
cristian22 Va por buen camino
Gracias Por responder

Cita:
Empezado por Neftali Ver Mensaje
Haces un Edit de qCaja, cambias el valor, pero no haces un Post.
Después de esta línea:

Código Delphi [-]
qCaja.FieldByName('estado_caja').AsInteger:=1

coloca:

Código Delphi [-]
  qCaja.Post;
tenes razon me faltaba hacer el post. Pero ahora me tira un error. Resulta que tengo 2 cajas una con estado 0 y otra con estado 1 como mensione las seleciono con el dblookupcombobox1, Cuando selecciono la Caja 1 que tiene como "estado 0" apreto el boton aceptar y me dice "SQL Error Column idcaja cannot be null" y si selecciono la caja 2 al hacer lo mismo queda con el mensaje de "estado inactivo" pero se queda tildado y no me deja cerrarlo
gracias por responder
Responder Con Cita
  #4  
Antiguo 03-08-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.271
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por cristian22 Ver Mensaje
Cuando selecciono la Caja 1 que tiene como "estado 0" apreto el boton aceptar y me dice "SQL Error Column idcaja cannot be null"
¿Ese error no será de la inserción en la otra tabla?
Ejecuta "paso a paso" ese código y a ver cual es la línea real donde falla.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 03-08-2016
cristian22 cristian22 is offline
Miembro
NULL
 
Registrado: jun 2014
Posts: 18
Poder: 0
cristian22 Va por buen camino
Hola

Cita:
Empezado por Neftali Ver Mensaje
¿Ese error no será de la inserción en la otra tabla?
Ejecuta "paso a paso" ese código y a ver cual es la línea real donde falla.
Hola ya realize la comprobacion primero me tira un error en el if
Código Delphi [-]
if fModulo.qCaja.FieldByName('estado_caja').AsInteger=0 then

probe sacando el if para ver que pasaba y luego salio error en el insert
Código Delphi [-]
 fModulo.qCaja.Insert;
Responder Con Cita
  #6  
Antiguo 03-08-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.271
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Y cual es el error en cada una?

Esta línea:
Código Delphi [-]
if fModulo.qCaja.FieldByName('estado_caja').AsInteger=0 then

No puede provocar este error:
"SQL Error Column idcaja cannot be null"

Salvo que tengas código en otro lugar (evento, triggers,...) que no estás poniendo aquí.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 03-08-2016
cristian22 cristian22 is offline
Miembro
NULL
 
Registrado: jun 2014
Posts: 18
Poder: 0
cristian22 Va por buen camino
Hola

Cita:
Empezado por Neftali Ver Mensaje
¿Y cual es el error en cada una?

Esta línea:
Código Delphi [-]
if fModulo.qCaja.FieldByName('estado_caja').AsInteger=0 then

No puede provocar este error:
"SQL Error Column idcaja cannot be null"

Salvo que tengas código en otro lugar (evento, triggers,...) que no estás poniendo aquí.
Hola en esta linea el error es el que te nombre que cuando eligo la caja por ejemplo la 2 que tiene estado 1 queda el programa colgado en el else no se por que
Código Delphi [-]
if fModulo.qCaja.FieldByName('estado_caja').AsInteger=0 then

y si en caso que eliga la caja 1 que tiene estado 0 me tira error en el Insert
Responder Con Cita
  #8  
Antiguo 03-08-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Necesitas leer esto.
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
Contador de Apertura de Formulario Claudio1996 Varios 4 22-05-2015 11:08:55
Apertura PDF lento shoulder Varios 4 17-11-2014 18:09:51
armado de caja + apertura y cierre Nicolas_2011 Varios 5 07-10-2012 20:38:59
Ayuda Movimiento de caja liito16 Varios 5 21-10-2011 16:52:40
¿Conocimientos deseables: Pruebas de caja negra o caja blanca ? JXJ Varios 4 19-02-2011 23:45:01


La franja horaria es GMT +2. Ahora son las 01:08:00.


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