Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   TQuickRep (https://www.clubdelphi.com/foros/showthread.php?t=75148)

lisc_dla 01-08-2011 22:45:36

TQuickRep
 
Estoy creando una aplicación de venta de artículos con bd en mysql para la conexión utilizo ADOTable-->DataSource-->DBgrid. Pero por ejemplo necesito imprimir un reporte con las ventas del día, para ello en un formulario hago una consulta de las ventas del día y el resultado se visualiza en un dbgrid, bueno lo que quiero es solo imprimir esa consulta ni un dato mas ni un dato menos, pero con envio el resultado de la busqueda en el dbgrid a el formulario con el TQuickRep.:rolleyes::rolleyes::rolleyes:

oscarac 01-08-2011 22:51:30

pues mas o menos asi
en la nueva unidad de quickreport, hay una propiedad datasource... ahi asignas el datasource del query que tienes
luego en el quickreport agregas componentes qrbdtext el cual estara asociados al datasource, asignas el campo en la propiedad fieldname
y eso seria todo

lisc_dla 01-08-2011 23:18:36

si pero me aparecen todos lo datos de la tabla y solo quiero imprimir la consulta

oscarac 01-08-2011 23:21:03

no entiendo....
una consulta es para extraer datos de una tabla
que tienes en la tabla y que quieres mostrar
o lo que quieres mostrar es el "texto" de la consulta en si

algo asi como...

Código Delphi [-]
 
Select * from tabla where.....

lisc_dla 01-08-2011 23:31:35

oscarac

lo que deseo imprimir es el resultado de la búsqueda, no todo los datos de la tabla

Caral 01-08-2011 23:33:22

Hola
Vamos por pasos:
1- Ya tienes un form con un DBgrid asociado a un AdoTable, bien.
2- Crea un nuevo reporte:
File/new/other y buscar un QReport.
3- En el uses del nuevo QReport cocola el Unit del form que lo llame, osea el que tenga el DBgrid.
4- En el querport veras en las propiedades una que se llama DataSet, coloca ahi el adotable del form (sera el unico que este).
5- en las mismas propiedades veras una que se llama Bands, ahi pon en true la de titulo, detail y suma.
6- ve a la paleta de qreport y coloca los QRLabel que quieras para el titulo.
7- Coloca los QRbdtext que necesites en el detail, estops seran los campos que aparecen en el dbgrid.
8- coloca un QRExpr en la banda suma ahi se vera el total de lo que necesites.
Revisa cada uno de estos, veras que es sencillo.
Saludos

lisc_dla 01-08-2011 23:51:55

estuve intentando, pero en el QRDBText solo me aparece el nombre del campo

ecfisa 01-08-2011 23:54:51

Cita:

Empezado por lisc_dla (Mensaje 408142)
estuve intentando, pero en el QRDBText solo me aparece el nombre del campo

Te hago una pregunta algo obvia, pero puede pasar. ¿ El DataSet esta abierto ?

Saludos.

Casimiro Notevi 02-08-2011 00:06:55

Cita:

Empezado por lisc_dla (Mensaje 408124)
TQuickRep.

No olvides poner títulos descriptivos a tus preguntas, gracias.
Guía de estilo de clubdelphi.

lisc_dla 02-08-2011 00:12:17

Cita:

Empezado por ecfisa (Mensaje 408144)
Te hago una pregunta algo obvia, pero puede pasar. ¿ El DataSet esta abierto ?

Saludos.

osea como?

ecfisa 02-08-2011 00:33:52

Hola.

El TADOTable tiene que estar abierto para que se muestren los valores de sus campos.
Otra cosa que se me ocurre es que no hayas echo preview y por eso no se esté visualizando el valor del campo.

Por ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  QuickRep1.Preview;
end;

Saludos.

Caral 02-08-2011 02:18:12

Hola
Aqui te deje un ejemplo.
Saludos

lisc_dla 02-08-2011 03:11:58

Muchas gracias a todos por su ayuda
[caral] ya quedo :D:D:D:D

lisc_dla 02-08-2011 22:24:52

[caral]

me marca el siguiente error al dar clic en el boton de imprimir

[Fatal Error] Could not create output file 'C:\Users\DLA\caja prueba 2\pro_caja.exe'

y ademas no me deja activar el adoquery del report en que estoy fallando
y ademas como prodria omitir el radiogrup

oscarac 02-08-2011 22:34:07

existe esa carpeta?

Caral 02-08-2011 22:36:26

Hola
Es en relación a mi ejemplo?.
Me imagino que habrás modificado algo.
Hoy no traje la bola de cristal.:D;)
Saludos

lisc_dla 02-08-2011 22:41:17

De hecho es la ruta donde estoy realizando mi proyecto

Caral 02-08-2011 22:43:34

Hola
Tienes conectada la impresora?.
Saludos

lisc_dla 02-08-2011 22:48:31

No tengo conectada la impresora, pero por eso surge el error :confused::confused::confused:

Caral 02-08-2011 22:55:49

Hola
Si le das print si, si le das previw no.
Saludos
PD: No se, me imagino.

Caral 02-08-2011 23:10:30

Hola
En el ejemplo en el boton de imprimir cambia el codigo por este:
Código Delphi [-]
procedure TForm1.Button6Click(Sender: TObject);
begin
  Try
  QuickReport2:=TQuickReport2.Create(self);
  QuickReport2.ADOQuery1.SQL.Text:= 'Select * from Directorio where ID = :A';
  QuickReport2.ADOQuery1.Parameters[0].Value:= Edit4.Text;
  QuickReport2.ADOQuery1.Open;
  QuickReport2.Preview;
  finally
  QuickReport2.Free;
  end;
end;
Saludos

lisc_dla 03-08-2011 01:44:59

lo mas raro es me marca el error

[Fatal Error] Could not create output file 'C:\Users\DLA\caja prueba 2\pro_caja.exe'

quito el código y me lo sigue marcando, intente eliminar el archivo y no se pudo, reinicio la maquina y ya no marca el error. Creo es delphi intentare reinstalando

Caral 03-08-2011 01:50:08

Hola
El error te pasa cuando ejecutas el EXE o cuando estas en delphi ?.
Saludos

lisc_dla 03-08-2011 22:32:42

el error ocurre cuando abro el archivo .dpr en delphi y lo intento ejecutar

lisc_dla 04-08-2011 04:25:28

diras que soy pero tengo otra pregunta hice todos los pasos de el ejemplo [caral] pero el datafield del QRDBText1 me marca el error adoquery1: missing sql propert


(por cierto creo que el error era el antivirus por que lo desinstale y ya no marca error a la hora de ejecutar)

Caral 04-08-2011 04:26:50

Hola
El error que te manda el QRDBText1 es por que el adoquery en la propiedad string esta vacio, colocale el mismo sql que tienes en el form o
Código SQL [-]
select * from tu tabla.
Con eso esta listo.
Saludos

lisc_dla 06-08-2011 04:59:48

Estaba alegre por que parecía que ya funcionaba lo que quería imprimir, resulta que si doy clic en el botón imprimir y el dbgrid esta vació si me manda hacia el qreport pero si hay datos en el dbgrid me manda el error:

'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'

en la linea:

QuickReport1.ADOQuery1.Parameters[0].Value:= txt_rfc.text;

hasta donde he leido es por conflicto en el tipo de dato, en este caso tengo el campo rfc de tipo varchar, ya estuve intentando pero me sigue marcando error. :(:(:(

Caral 06-08-2011 17:26:58

Hola
Suposiciones:
1- el edit esta vacio.
2- El dato del edit no es el mismo que el de la tabla.
3- No dices ni muestras nada de codigo, solo la parte del parametro.
4- Como podemos adivinar asi ?.
Saludos

lisc_dla 07-08-2011 00:21:13

primero realizo una búsqueda del dato rfc(es de tipo varchar) en el cuadro de texto txt_rfc(es resultado se visualiza en el dbgrid y el valor buscado queda en el text):

Filtro : String;
begin
AdoTable1.Filtered := False;
AdoTable1.Filtered := False;
Filtro := 'rfc = '+txt_rfc.Text;
AdoTable1.Filter := Filtro;
AdoTable1.Filtered := True;
AdoTable1.Open;


el código para mandar a imprimir:

Try
QuickReport1:=TQuickReport1.Create(self);
QuickReport1.ADOQuery1.SQL.Text:= 'Select * from cliente where frc = :s';
QuickReport1.ADOQuery1.Parameters[0].Value:= txt_rfc.text;
QuickReport1.ADOQuery1.Open;
QuickReport1.Preview;
finally
QuickReport1.Free;

Caral 07-08-2011 01:44:58

Hola
Puede ser tonto pero estas seguro de esto:
Código Delphi [-]
Filtro := 'rfc = '+txt_rfc.Text;
Código Delphi [-]
'Select * from cliente where frc = :s';
Código Delphi [-]
QuickReport1.ADOQuery1.Parameters[0].Value:= txt_rfc.text;
Solo por curiosidad.
Saludos

lisc_dla 07-08-2011 01:47:59

este error ya lo corregí

'Select * from cliente where frc = :s';
'Select * from cliente where rfc = :s';

pero sigue el mismo error marcando error

Caral 07-08-2011 01:52:18

Hola
Solo para intentarlo:
Código Delphi [-]
Try
 QuickReport1:=TQuickReport1.Create(self);
 QuickReport1.ADOQuery1.SQL.Text:= 'Select * from cliente where frc = :s';
 QuickReport1.ADOQuery1.Parameters[0].Value:= QuotedStr(txt_rfc.text);
 QuickReport1.ADOQuery1.Open;
 QuickReport1.Preview;
 finally
 QuickReport1.Free;
Saludos

lisc_dla 07-08-2011 01:54:18

mismo error, misma linea :(:(

Caral 07-08-2011 02:00:20

Hola
El edit txt_rfc.text contiene un dato cuando presionas el boton de imprimir ?.
Que dato ?.
Saludos

lisc_dla 07-08-2011 02:02:58

si el txt_rfc contiene el dato de la búsqueda que realice

Caral 07-08-2011 02:05:13

Hola
Si el programa no es muy grande colocalo en un Zip aqui mismo, a ver si veo algo que no este viendo.
Saludos
PD: No lo podre correr, pero tal vez me entere de algo mas.

lisc_dla 07-08-2011 02:12:52

no lo pude subir aquí(me salio un mensaje con que excede los limites), no se si hice bien pero lo subí en:

http://www.mediafire.com/?24axpowpu13osbp

lisc_dla 07-08-2011 02:18:43

el formulario que manda a imprimir es:

frm_Cliente-->QuickReport1

Caral 07-08-2011 02:22:38

Hola
Voy a ver si lo puedo abrir.
Saludos

Caral 07-08-2011 02:34:28

Hola
No estan los reportes o no los veo.
Solo lo puedo abrir con notepad, pero me doy una idea.
Saludos


La franja horaria es GMT +2. Ahora son las 22:20:32.

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