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 19-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Unhappy Imprimir sólo información en pantalla

Un gran saludo a todos.

Quisiera vuestra ayuda con un problema de impresión que no he podido solucionar a pesar de haber buscado en este y otros foros y leído distintos tópicos.
He desarrollado una aplicación que utiliza como base de datos ADO. Estos datos se muestran en el form de la aplicación. Confeccioné un report en Quickreport conectado al dataset y cuando le doy a imprimir en el botón Imprimir que puse en la aplicación, en vez de imprimir el registro visible en la pantalla, imprime todos los registros existentes en la base de datos.
¿Cómo debo proceder? ¿Sería recomendable utilizar un ADOQuery? y si es así ¿alguien puede ayudarme con el código sql?

Desde ya agradezco cualquier ayuda.
Responder Con Cita
  #2  
Antiguo 19-01-2009
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
deja en blanco la propiedad dataset al quickreport
Responder Con Cita
  #3  
Antiguo 19-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Estimado luisgutierrezb:

Gracias por tu respuesta.
Eso ya lo hice, siguiendo tu consejo en otro hilo y no funcionó.
¿Conoces alguna otra opción?

Salu2
Responder Con Cita
  #4  
Antiguo 20-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Poder: 0
Bpascal Va por buen camino
Para hacer un reporte que no imprima los registros del dataset y solo el registro actual entonces elimina la banda de detalle, Los campos del registros actual ponlos en en la banda PAGEHEADER por ejemplo la cual el tamaño se puede modificar al gusto.

Yo he utilizado esa tecnica para imprimir informacion que incluso no sale de ninguna tabla, si no de datos desde variables de memoria, por ejemplo un desglose de monedas de una planilla de pago de empleados

att

Última edición por Bpascal fecha: 20-01-2009 a las 00:27:26.
Responder Con Cita
  #5  
Antiguo 20-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Gracias Bpascal pero tu método no me funciona. Imprime un sólo registro, pero no el que está en pantalla.

Salu2
Responder Con Cita
  #6  
Antiguo 20-01-2009
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 21
toni.vi Va por buen camino
Debes de utilizar para el informe el mismo dataset que utilizas en el formulario.
Responder Con Cita
  #7  
Antiguo 20-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Gracias tonivi por tu respuesta.
Tanto el formulario como el qreport están conectados al mismo dataset. La aplicación funciona y el comando imprimir ejecuta la orden de impresión, pero no logro que imprima los registros que estoy viendo en la pantalla y me imprime todos los registros que se encuentran en la BD.

Saludos y gracias
Responder Con Cita
  #8  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una opción sería la de llenar a mano el reporte.

1. Desconectas el QuickRep del dataset, como te dice Luis.

2. En la banda detalle, en lugar de colocar controles QRDBText conectados a tus campos, colocas etiquetas QRLabel.

3. En el evento OnNeedData del QuickRep, asignas los valores de tu registro activo a tus etiquetas:

Código Delphi [-]
QRLabel1.Caption := ADOTable[...];

// Saludos
Responder Con Cita
  #9  
Antiguo 20-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Poder: 0
Bpascal Va por buen camino
Cita:
Empezado por radenf Ver Mensaje
Gracias Bpascal pero tu método no me funciona. Imprime un sólo registro, pero no el que está en pantalla.

Salu2

Entonces me gustaria que describieras que controles estas usando para desplegar la informacion en pantalla y si haces algun proceso para llenarlos con datos.

Si yo tengo un DBGRID con muchos registros y a medida que seleciono un registro con las teclas del cursor, al llamar un quickreport.preview donde esta puesto un qrdbtex en la banda de TITULO (y no existe la banda de detalle) siempre aparece el dato del registro que tengo selecionado en el dbgrid.

Si el quickreport esta enlazado a un querry que tiene mas de un registro entonces la banda de detalle mostrará todos los registros de ese querry; haci que la solucion es o filtrar el querry para que solo tenga un registro que es el que deseas o no utilices la banda de detalle.

Última edición por Bpascal fecha: 20-01-2009 a las 18:18:23.
Responder Con Cita
  #10  
Antiguo 20-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Estimado Bpascal:

Agradezco sinceramente tu ayuda.
El qreport está estructurado en base a dbtext y dbmemo conectados a una tabla. Hay datos (nombre de la persona) en el pageheader y otros datos varios en el detail. Luego de tu sugerencia probé cambiando la estructura del qreport pero sólo obtuve que imprimiera un registro, pero no el que aparece en la aplicación en pantalla.
No utilizo query porque desconozco la sentencia sql para filtrar el registro que se encuentra en pantalla y que es el que deso imprimir.

Salu2 y gracias
Responder Con Cita
  #11  
Antiguo 20-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Poder: 0
Bpascal Va por buen camino
re-

Cita:
Luego de tu sugerencia probé cambiando la estructura del qreport pero sólo obtuve que imprimiera un registro, pero no el que aparece en la aplicación en pantalla.
Eliminastes la banda de detalle del reporte?, esta no debe de existir ni siquiera vacia o de lo contrario tan pronto haces el preview la tabla se mueve al primer registro.

Si no existe la banda detalle en el reporte y el registro que aparece es un registro arbitrario entonces me hace sospechar que cuando llamas el quickreport.preview el registro actual no es el que esta mostrando la pantalla.

Por eso te pregunto, como haces para selecionar el registro en la pantalla?, si no usas querry para popular la tabla, entonces me imagino que usas un ttable y localizas los registros con ttable.next, ttable.prior or ttable.findkey ?
Responder Con Cita
  #12  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

He estado intentando la opción de Bpascal, pero no he podido. Si sólo coloco una banda PageHeader, el reporte sale vacío. Si coloco una banda como Title o ColumnHeader, sí se imprime un registro, pero es siempre el primero, como dice radenf.

De hecho, aun cuando sólo se imprima un registro, el dataset se recorre completo, pues al cerrar el reporte veo que el formulario oiginal ya está en el último registro.

// Saludos
Responder Con Cita
  #13  
Antiguo 20-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Cita:
Empezado por Bpascal Ver Mensaje
Por eso te pregunto, como haces para selecionar el registro en la pantalla?, si no usas querry para popular la tabla, entonces me imagino que usas un ttable y localizas los registros con ttable.next, ttable.prior or ttable.findkey ?
Utilizo un dbnavigator en la aplicación, conectado a una tabla a través de un datasource.

Salu2 y muchas gracias
Responder Con Cita
  #14  
Antiguo 20-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Poder: 0
Bpascal Va por buen camino
Cita:
De hecho, aun cuando sólo se imprima un registro, el dataset se recorre completo, pues al cerrar el reporte veo que el formulario oiginal ya está en el último registro.
Estoy seguro que tienes una linea de detalle agregada el quickreport.

Estoy usando delphi7 y quickreport 3.6.2

- Abro el projecto que esta en demos llamado fishfact el cual tiene una tabla sobre peces manejado con bde.
- agrego una nueva forma form2, y le pongo un quickreport.
- en la form1 agrego un boton y escibo en el evento form2.quickrepor1.preview;
- en la form2 me aseguro de uncluir correctamente unit1 para que el qucikreport pueda ver el dataset
- en el objectinspector en el quickrepor me voy a la Opcion Bands, todas las sub-opciones estan en falso, hago verdadero solo la opcion "HasTitle", una banda de titulo se agrega al quickrepor automaticamernte.
- Pongo un qrdbtext en la banda de titulo, enlazo el dataset y seleciono el un campo.

Eso es todo lo que hago, cuando corro el programa, selecciono cualquier registro usando el dbnavigator y le doy click al boton de preview, automaticamente me aparece la ventana del preview donde me muestra el lo que puse en la banda de titulo con el dato del registro actual.

Lo he probado con BDE y con ADO

att.
Responder Con Cita
  #15  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Bpascal Ver Mensaje
Estoy seguro que tienes una linea de detalle agregada el quickreport.
Y yo estoy seguro que no Estoy haciendo la pruebas especialmente para este problema de radenf, por lo que me he fijado en todos los detalles.

Ahora probaré con el FishFact.

Estoy usando también Delphi 7 y el quickreport que viene incluido.

// Saludos
Responder Con Cita
  #16  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Veo entonces, que depende del dataset usado.

Ya he visto el FishFact y funciona como dices. Pero la prueba que hice con MyDac, no funciona.

Ahora, si probaste con ADO y también funciona, entonces el único detalle que veo en relación a radenf es que habías mencionado la banda PageHeader, pero en realidad es la Title. Son distintas.

// Saludos
Responder Con Cita
  #17  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ya está resuelto

Sólo había un detalle y éste era fundamental: Hay que enlazar únicamente los QRDBText y no el QuickReport.

Gracias Bpascal,

// Saludos
Responder Con Cita
  #18  
Antiguo 20-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Poder: 0
Bpascal Va por buen camino
Cita:
Sólo había un detalle y éste era fundamental: Hay que enlazar únicamente los QRDBText y no el QuickReport.
Oh!, ya me estaba quebrando la cabeza pensando por que no les funcionaba; supongo que estas cosas pasan con esos componentes que no tienen una documentacion formal y detallada como la tienen los componentes en el help de delphi; la verdad que el quickreport lo aprendí a usar a pura observacion; seguramente siempre he estado enlazando el dataset en los campos y nunca me fije que se podia enlazar una sola vez desde el quickreport.
Responder Con Cita
  #19  
Antiguo 20-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Je, je, así es. Hace mucho que no uso el QuickReport y cuando lo hacía siempre comenzaba conectando el reporte completo; ni siquiera se me había ocurrido probar conectando sólo los qrdbtext.

// Saludos
Responder Con Cita
  #20  
Antiguo 21-01-2009
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Ya está resuelto

Sólo había un detalle y éste era fundamental: Hay que enlazar únicamente los QRDBText y no el QuickReport.
Sin embargo cuando hago eso no imprime y en el preview no aparece nada.
Seguiré cabezeandome ya que este problema no lo he podido resolver desde hace mucho tiempo, tanto que había dejado de lado mi proyecto.

Agradezco todo su tiempo y dedicación y si tienen más ideas, bienvenidas
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
Imprimir Pantalla guille85 Impresión 2 23-07-2008 16:00:12
imprimir pantalla martita Impresión 2 14-05-2008 14:51:45
Imprimir información de una tabla Angelica Lizeth Impresión 3 21-12-2006 23:59:08
imprimir en pantalla en tiempo de ejecucion RJF Varios 1 21-04-2005 09:22:16
Imprimir Pantalla, como ? Pascual Montes Gráficos 3 30-12-2004 09:04:43


La franja horaria es GMT +2. Ahora son las 19:35:13.


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