![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Duda con el Qreport.
Buenas, os comento a ver si me sabeis decir que puedo hacer o que hago mal.
Tengo dos form, uno donde hago una seleccion de datos segun valores uqe me meten y otra donde tengo el Qreport. En el de seleccion de datos tengo esto : procedure TListadosCasosAbiertos.Button1Click(Sender: TObject); var cadenaSQL : string; qry : tIBQUERY; begin cadenaSQL := 'select refcomp, expedientes.codexp from expedientes inner join resumenpagos on resumenpagos.codexp=expedientes.codexp'; qry := TIBQuery.Create(qry); qry.database := datamodule2.database; Qry.SQL.Text := cadenaSQL; qry.open(); CHlistadoAbiertoImpr.QuickRep1.DataSet :=qry; CHlistadoAbiertoImpr.QuickRep1.Preview; end; Con esto abro el del listado pero claro esta no picha ningun valor. ¿Como le digo que el TQRDBText que se llama nombre debe llevar un valor del sql ... ¿Como se haria eso?. ¿Esta mal planteado?. Venga un saludo y gracias anticipadas XD |
|
#2
|
|||
|
|||
|
Cita:
|
|
#3
|
|||
|
|||
|
Si pero es que en diseño no puedo, ya que le meto el codigo yo escrito y hasta que no se ejecuta no se crea para poder ponerlo en el datafield. ¿me explico?
|
|
#4
|
|||
|
|||
|
aunque no tengas los campos persistentes en la Query, si siempre devuelve las mismas columnas, puedes escribir tu "a mano" el nombre del campo que quieras visualizar en él
|
|
#5
|
|||
|
|||
|
Ok,he probado como comentas, puse esto :
procedure TListadosCasosAbiertos.Button1Click(Sender: TObject); var cadenaSQL : string; impresion1: tIBQUERY; qry: tIBQUERY; begin cadenaSQL := 'select refcomp as referencia, expedientes.codexp as codexpediente from expedientes inner join resumenpagos on resumenpagos.codexp=expedientes.codexp'; qry := TIBQuery.Create(qry); qry.database := datamodule2.database; Qry.SQL.Text := cadenaSQL; qry.open(); CHlistadoAbiertoImpr.QuickRep1.DataSet := qry; CHlistadoAbiertoImpr.QRDBText1.DataSet :=qry; CHlistadoAbiertoImpr.QRDBText1.DataField := qry.fieldbyname('referencia').value; CHlistadoAbiertoImpr.QuickRep1.Preview; end; Y me muestra las dos lineas ( es decir picha bien los datos ) pero en el TQRDBtext no me muestra ningun valor. ¿Que hago mal?. Gracias anticipadas. |
|
#6
|
||||
|
||||
|
Si estas intentando hacer listados personalizados....
Yo he usado la función QRCreateList de la unidad qrExtra. En la ayuda de quickReports viene un ejemplo con el que empezar. Con esta opcion, le envias el dataset del que provienen los datos y un TstringList con el nombre de los campos que quieres visualizar, y crea el listado automaticamente, despues de generado el informe, puedes recorrerlo para cambiar ciertos detalles como el pié de pagina (para ponerlo en español), etc... Hay un detalle que se puede corregir, Cuando creas el listado, el ancho de cada columna lo coge de la propiedad DisplayWidth del Tfield, se puede cambiar esa propiedad en tiempo de ejecución (antes de lanzar el listado) para que el ancho de cada columna se ajuste al texto que se va a imprimir. Pruebalo, y si te interesa, posteo mi funcion AjustaDisplayWidth Saludos |
|
#7
|
|||
|
|||
|
Cita:
Pero sigo diciendo que lo puedes asignar en diseño, no en ejecución si la query retorna siempre los mismos campos. Por otro lado, Lepe yo sí estaría interesado en ver como haces eso, me ha gustado el tema este del QRCreateList ![]() |
![]() |
|
|
|