Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 1 Semana
Saul Rivera Saul Rivera is offline
Miembro
 
Registrado: abr 2019
Posts: 16
Poder: 0
Saul Rivera Va por buen camino
Validar columna en grid

otra Consulta mRoman
yo tengo un cxgrid y hay una columna cantidad yo quiero validar esa columna para que me tire un mj de si la cantidad ingresada sobrepasa la existencia en la base de datos ejemplo

if(gvDataDBTableView1CANTIDAD.EditValue > dmMain2.tblExistenciasCANTIDAD_STOCK.AsFloat ) then
begin
ShowMessage('La cantida ingresada supera la existencia de este prodcuto') ;
end;
tengo este codigo en el boton guardar pero no se si lo hice bien
Responder Con Cita
  #2  
Antiguo Hace 1 Semana
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 379
Poder: 16
mRoman Va por buen camino
Cita:
Empezado por Saul Rivera Ver Mensaje
otra Consulta mRoman
yo tengo un cxgrid y hay una columna cantidad yo quiero validar esa columna para que me tire un mj de si la cantidad ingresada sobrepasa la existencia en la base de datos ejemplo

if(gvDataDBTableView1CANTIDAD.EditValue > dmMain2.tblExistenciasCANTIDAD_STOCK.AsFloat ) then
begin
ShowMessage('La cantida ingresada supera la existencia de este prodcuto') ;
end;
tengo este codigo en el boton guardar pero no se si lo hice bien
No lo sé...te marca algún error? O efectivamente debe de mandar el error y no lo hace?
Veo que los tipos de datos son diferentes "EditValue" y "AsFloat".

Normalmente este tipo de validaciones las hago dentro del Query (Select), en tiempo de ejecución, construyo el Query y lo ejecuto:
Código Delphi [-]
              qryKardex.SQL.Add('select a.id_producto,');
              qryKardex.SQL.Add('       b.id_articulo_componente,');
              qryKardex.SQL.Add('       e.descripcion_larga,');
              qryKardex.SQL.Add('       b.cantidad, b.cantidad*'+mskCantidad.Text+' as art_necesarios,');
              qryKardex.SQL.Add('       (select c.existencias');
              qryKardex.SQL.Add('        from kardex_detalle c');
              qryKardex.SQL.Add('        where c.cod_articulo=b.id_articulo_componente');
              qryKardex.SQL.Add('          and c.consec=(select MAX(d.consec)');
              qryKardex.SQL.Add('                        from kardex_Detalle d');
              qryKardex.SQL.Add('                        where d.cod_articulo=c.cod_articulo) )-(b.cantidad*'+mskCantidad.Text+') as diferencia,');
              qryKardex.SQL.Add('       (select c.existencias');
              qryKardex.SQL.Add('        from kardex_detalle c');
              qryKardex.SQL.Add('        where c.cod_articulo=b.id_articulo_componente');
              qryKardex.SQL.Add('          and c.consec=(select MAX(d.consec)');
              qryKardex.SQL.Add('                        from kardex_Detalle d');
              qryKardex.SQL.Add('                        where d.cod_articulo=c.cod_articulo) ) as existencias,');
              qryKardex.SQL.Add('       e.control_existencias,');
              qryKardex.SQL.Add('       case when (select f.cod_articulo');
              qryKardex.SQL.Add('                  from kardex f');
              qryKardex.SQL.Add('                  where f.cod_articulo=b.id_articulo_componente)>=1 then ''S''');
              qryKardex.SQL.Add('       else ''N''');
              qryKardex.SQL.Add('       end as con_kardex,');
              qryKardex.SQL.Add('       e.stock_minimo');
              qryKardex.SQL.Add('from producto a,');
              qryKardex.SQL.Add('     producto_componente b,');
              qryKardex.SQL.Add('     articulo e');
              qryKardex.SQL.Add('where a.id_producto=b.id_producto');
              qryKardex.SQL.Add('  and a.id_producto=:cod_art');
              qryKardex.SQL.Add('  and b.id_articulo_componente=e.cod_articulo');
              qryKardex.SQL.Add('  and e.control_existencias=''S''');
              qryKardex.close;
              qryKardex.ParamByName('cod_art').AsString:=qryArticulo.fieldByName('id_producto').AsString;
              qryKardex.Open;
              qryKardex.First;
              While not(qryKardex.Eof) do
              begin

{sigue mas código...validaciones,etc.}

Observa a "mskCantidad.Text":
Código Delphi [-]
              qryKardex.SQL.Add('                        where d.cod_articulo=c.cod_articulo) )-(b.cantidad*'+mskCantidad.Text+') as diferencia,');

Y mas adelante en el código valido algo como lo que tu quieres hacer:
Código Delphi [-]
                           //VALIDA SI SE QUEDO SIN EXISTENCIAS, CUANDO SEA MENOR A 0 EN "DIFERENCIA"
                            if qryKardex.FieldByName('diferencia').AsInteger<0 then
                            begin
                                P_texto:='Te quedaste sin existencias para el articulo: '+qryKardex.FieldByName('id_articulo_componente').AsString+'-'+
                                                                                          qryKardex.fieldByName('descripcion_larga').AsString+chr(13)+
                                         'Existencias actuales: '+qryKardex.fieldByName('Existencias').AsString+chr(13)+
                                         'Articulos por defatult: '+qryKardex.fieldbyName('cantidad').AsString+chr(13)+
                                         'Cant. registrada en este pedido: '+mskCantidad.Text;
                                Application.MessageBox(Pchar(p_texto),'Error',mb_ok+mb_IconError);
                                edBuscar.SetFocus;
                            end;
                            //VALIDAMOS SI LAS EXISTENCIAS SON MENORES AL STOCK_MINIMO
                            if qryKardex.FieldByName('existencias').AsInteger<=
                               qryKardex.FieldByName('stock_minimo').AsInteger then
                            begin
                                Application.MessageBox('Existencias iguales o por debajo del STOCK MINIMO','Importante AVISO',mb_ok+mb_IconExclamation);
                            end;

Espero te sirva Saúl.

Saludos.

p.d. Para cada pregunta que hagas es un hilo diferente. Deberías haber empezado otro hilo con la pregunta que me hiciste. Aquí recomiendan leer la guia de estilo, ya lo hiciste?. Algún moderador que nos apoye con esto?. Gracias.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: Hace 1 Semana a las 21:34:17.
Responder Con Cita
  #3  
Antiguo Hace 1 Semana
Saul Rivera Saul Rivera is offline
Miembro
 
Registrado: abr 2019
Posts: 16
Poder: 0
Saul Rivera Va por buen camino
si ya lei la guia se me paso por alto estoy trabajando en las dos soluciones que me diste muchas gracias por tu ayuda si logro hacer funcionar los codigos yo te aviso
Responder Con Cita
  #4  
Antiguo Hace 1 Semana
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.126
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mRoman Ver Mensaje
p.d. Para cada pregunta que hagas es un hilo diferente. Deberías haber empezado otro hilo con la pregunta que me hiciste. Aquí recomiendan leer la guia de estilo, ya lo hiciste?. Algún moderador que nos apoye con esto?. Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Solo una columna del Grid muli OOP 6 29-04-2008 13:24:53
validar decimales en grid sargento elias Conexión con bases de datos 1 11-04-2008 09:54:36
Validar En Un Grid sargento elias Conexión con bases de datos 3 09-04-2008 18:22:08
Inconveniente con una columna de mi grid el_barto Firebird e Interbase 3 09-06-2005 17:56:34
Bloquear una columna en un Grid... Perio Varios 0 10-05-2005 16:05:17


La franja horaria es GMT +2. Ahora son las 13:21:31.


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