Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 22-05-2013
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo hago lo siguiente, un formulario con un Radiogroup para capturar lo que quiere el usuario:
Código Delphi [-]
procedure TfrDlgProductos.spbConsultaClick(Sender: TObject);
begin
  Case RdgProductos.ItemIndex of
  0:cListado:='Productos en Venta entre '  +DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date);
  1:cListado:='Productos Reservados entre '+DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date);
  2:cListado:='Productos Vendidos entre '  +DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date);
  3:cListado:='Productos Devueltos entre ' +DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date);   
  4:cListado:='Productos en Venta entre '  +DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date)+' de '+DmProveedores.IBDtsProvNOMBRE.Value;
  5:cListado:='Productos Reservados entre '+DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date)+' de '+DmProveedores.IBDtsProvNOMBRE.Value;
  6:cListado:='Productos Vendidos entre '  +DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date)+' de '+DmProveedores.IBDtsProvNOMBRE.Value;
  7:cListado:='Productos Devueltos entre ' +DateToStr(DtpkIni.Date)+' y '+DateToStr(DtpkFin.Date)+' de '+DmProveedores.IBDtsProvNOMBRE.Value;
  8:cListado:='Productos en venta que han superado la fecha tope.';
  end;

Application.CreateForm(TfrConProductos, frConProductos);
frConProductos.ShowModal;
end;

Y luego en el formulario de consulta armo el SQL, según la opción seleccionada:
Código Delphi [-]
procedure TfrConProductos.FormActivate(Sender: TObject);
var
Sql1,Sql2:String;
begin
frConProductos.Caption:=cListado;

sql1:='select p.numero, p.codigo, p.descripcion, p.pvp, p.fventa, p.estado, P.pfinal,P.observaciones,'+
' R.numero, R.fentrega, R.codProveedor, R.Ftope, R.observaciones'+
' from productos P, Recepcion as R'+
' where P.numero = R.numero And Fentrega Between :F1 And :F2';

DmProveedores.IBDtsConProd.Close;
DmProveedores.IBDtsConProd.SelectSql.Clear;

  Case frDlgProductos.RdgProductos.ItemIndex of
  0:sql2:=' And Estado = 1';
  1:sql2:=' And Estado = 2';
  2:sql2:=' And Estado = 3';
  3:sql2:=' And Estado = 4';
  4:sql2:=' And Estado = 1 And CodProveedor = '+DmProveedores.IBDtsProvCODIGO.Value;
  5:sql2:=' And Estado = 2 And CodProveedor = '+DmProveedores.IBDtsProvCODIGO.Value;
  6:sql2:=' And Estado = 3 And CodProveedor = '+DmProveedores.IBDtsProvCODIGO.Value;
  7:sql2:=' And Estado = 4 And CodProveedor = '+DmProveedores.IBDtsProvCODIGO.Value;
  8:sql2:=' And Estado = 1 And fEntrega > :F3 ';
  end;

  if frDlgProductos.RdgProductos.ItemIndex < 8 then
  begin
  DmProveedores.IBDtsConProd.SelectSql.Text:=Sql1+sql2;
  DmProveedores.IBDtsConProd.ParamByName('F1').AsDate:=frDlgProductos.DtpkIni.Date;
  DmProveedores.IBDtsConProd.ParamByName('F2').AsDate:=frDlgProductos.DtpkFin.Date;
  end
  else
  begin
  sql1:='select p.numero, p.codigo, p.descripcion, p.pvp, p.fventa, p.estado, P.pfinal,P.observaciones,'+
' R.numero, R.fentrega, R.codProveedor, R.Ftope, R.observaciones'+
' from productos P, Recepcion as R'+
' where P.numero = R.numero And Ftope < :F3 ';
  DmProveedores.IBDtsConProd.SelectSql.Text:=Sql1;
  DmProveedores.IBDtsConProd.ParamByName('F3').AsDate:=Date;
  end;

DmProveedores.IBDtsConProd.Open;

DmProveedores.IBDtsConProd.Last;
lbRegistros.Caption:='Número de registros:'+FormatFloat(',0',DmProveedores.IBDtsConProd.RecordCount);
end;

Un Saludo
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
 


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
consulta sobre una consulta :D PablorD MySQL 4 02-06-2010 21:59:51
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 07:53:40.


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