Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Question Seleccionar datos para imprimir

Hola a todos amigos:
Bueno, me explicaré para que entiendan mi pregunta. Yo tengo un formulario en el que hay un DBGrid que me muestra los resultados de una consulta, un boton en este formulario indica imprimir y me da un reporte que contiene el resultado de la consulta. Ahora bien:
Yo quiero que cuando el usuario de clic en el boton Imprimir se muestre otro formulario con 2 listbox, en el 1ro estarán todos los numeros de identificación(son unicos) y el 2do en blanco, que quiero con esto, que el usuario escoja los registros que el quiera imprimir, los pase al 2 listbox(por medio de otro boton) y luego de en otro boton que diga "Reporte" y se muestren los reportes de los registros que el seleccionó.
Como puedo realizar esto? Espero que me ayuden en esto.
Muhcas gracias y suerte.
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
Responder Con Cita
  #2  
Antiguo 17-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, puedes recorrer las lineas seleccionadas del dbgrid, añadir en un listbox temporal el campo identificador y lo que necesites, y luego filtrar tu tabla o query segun estos campos en el listbox. Para recorrer el multiselect:

Código Delphi [-]
ListBox1.Clear;
for i := 0 to DBGrid1.SelectedRows - 1 do
begin   
DBGrid1.datasource.dataset.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
ListBox1.Add(DBGrid1.DataSource.DataSet.FieldByName('id').Asstring);
end;
Responder Con Cita
  #3  
Antiguo 17-11-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Question

Gracias por contestar coso, ya he resuelto lo del multiselect como me digiste, aunque tienes algunos errores. Ahora bien, ya selecionados los que quiero imprimir comp puedo hacer un filtrado a mi tabla? Es paradox7.
Gracias otra vez
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
Responder Con Cita
  #4  
Antiguo 17-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Cita:
Gracias por contestar coso, ya he resuelto lo del multiselect como me digiste, aunque tienes algunos errores.
vaya, pues dimelos, pq esto lo saque de un componente dbgrid que uso mucho...mmm ya se, listbox1.items

Si usas alguna query, por ejemplo haciendo 'select * from tabla where id in (' y aqui los ids que previamente has grabado en el listbox, por ejemplo. Si usas filtros tipo bde, entonces, tabla.filter := 'id = ' + listbox1.Items[0] + ' and id = ' + ListBox1.Items[1] + etc... o bien haciendolo de manera automatica dentro de un bucle for. saludos.

Última edición por coso fecha: 17-11-2008 a las 21:48:51.
Responder Con Cita
  #5  
Antiguo 17-11-2008
Avatar de Alexandro
Alexandro Alexandro is offline
Miembro
 
Registrado: mar 2008
Ubicación: Mayarí Holguín Cuba
Posts: 127
Poder: 17
Alexandro Va por buen camino
Question

Hola de nuevo coso:
veras he decidido hacerlo de manera automatica con un bucle For lo ago así:
Código Delphi [-]
  for I:=0 to LBox_DatosImprimir.Count-1 do
    begin
       FrmPrincipal.TProveedores.Filter:='No = '+LBox_DatosImprimir.Items[i];
    end;
FrmProveedorInforme.Reporte1.DataSet:=FrmPrincipal.TProveedores;
FrmProveedorInforme.Reporte1.Preview;
Sucede que cuando hago el preview me muetra el ultimo registro varias veces aunque yo no lo haya selecionado para imprimir. Este error a que se debe?
__________________
Cuando las cosas van mal, recuerda que aún pueden ir peor
Responder Con Cita
  #6  
Antiguo 18-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Alexandro Ver Mensaje
Sucede que cuando hago el preview me muetra el ultimo registro varias veces aunque yo no lo haya selecionado para imprimir. Este error a que se debe?
Supongo porque no estas haciendo Filtered := True, ademas aunque lo hicieras solo te va ha filtrar por el ultimo que has seleccionado, ya que no concatenas lo que tienes.

Código Delphi [-]
for I:=0 to LBox_DatosImprimir.Count-1 do
 begin
   if i=0 then
    Filtro := '(No = '+LBox_DatosImprimir.Items[i]+')'
  else
    Filtro :=Filtro + ' AND (No = '+LBox_DatosImprimir.Items[i]+')'; 
end;
 FrmPrincipal.TProveedores.Filter := Filtro;
 FrmPrincipal.TProveedores.Filtered := True;
 FrmProveedorInforme.Reporte1.DataSet:=FrmPrincipal.TProveedores;
FrmProveedorInforme.Reporte1.Preview;

Aunque lo podías haber hecho con una consulta como te dice coso Select...Where nro in (.....)

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 18-11-2008 a las 02:20:48.
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
Como seleccionar datos entre fechas ?? Jackpg C++ Builder 4 15-10-2008 17:06:12
Como extraer datos para imprimir factura Petolansa Impresión 3 07-11-2007 23:43:48
Componente para seleccionar HORA Greco Varios 7 27-09-2007 03:36:46
cmo hacer un formulario para seleccionar datos ercrizeporta Varios 4 14-07-2005 14:11:47
Seleccionar una linea de un dbgrid y mostrar todos los datos... hook Varios 1 15-04-2005 13:38:49


La franja horaria es GMT +2. Ahora son las 09:19:57.


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