Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2004
Avatar de SnaKe
SnaKe SnaKe is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid (España)
Posts: 227
Poder: 21
SnaKe Va por buen camino
Imprimir composite report desde preview personalizado

Hola a todos,

Por primera vez he utilizado un composite report, lo he montado y me aparece en mi propia ventana preliminar correctamente pero tengo un problema, en mi ventana preliminar tengo un único botón para imprimir, cuando se pulsa aparece el cuadro de dialogo de Imprimir permitiendo seleccionar impresora y si se acepta se imprime y si se cancela pues no se imprime.

Bien, esto funciona correctamente si lo que aparece es un TQuickRep pero ahora con un CompositeReport mi código no funciona. ¿Como podría solucionarlo?, la idea es que sea independiente de TQuickRep y de TQRCompositeReport. No quiero poner dos botones en mi preliminar (uno que saque la configuración de impresoras y otro que sea el de imprimir) sino que quiero que haga eso con un único botón, primero aparezca el setup y si se acepta el cuadro pues se imprima.

Os adjunto el código del botón imprimir de mi preliminar que tengo actualmente y que funciona correctamente con TQuickRep y no con TQrCompositeRep, ya os digo que el CompositeReport lo tengo correctamente en el preliminar y que mi preliminar funciona bien si son Reports y no Composite.

Código Delphi [-]
 
procedure TFPreview.tbImprimirClick(Sender: TObject);
begin
  if QRPrinter.Master <> nil then begin
    with TCustomQuickRep(QRPrinter.Master) do begin
      PrinterSetup;
      if Tag = 0 then
        Print;
    end;
  end;
end;

También he obtenido el codigo correcto si le doy a imprimir correctamente pero el problema lo tengo desde el preliminar. Codigo de impresión directa:

Código Delphi [-]
CompositeRep.PrinterSetup;
if (CompositeRep.Tag = 0) then
    CompositeRep.Print;

Un saludo a todo y gracias por adelantado.
__________________
Todos somos aficionados. La vida es tan corta que no da para más.
Guia de Estilos
Responder Con Cita
  #2  
Antiguo 07-05-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Buenas, en lo particular no manejo el qreport pero si te interesa puedo realizarte una prueba con freereport mañana sábado que tengo tiempo para ver si está el mismo problema.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 07-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola.

No he entendido exactamente cual es tu problema, pero si simplemente tenes que ejecutar código distinto si se trata de un CompositeReport o no, podrias hacer algo como:

Código Delphi [-]
procedure TFPreview.tbImprimirClick(Sender: TObject);
begin
  if QRPrinter.Master <> nil then begin
    if qrPrinter.Master is TqrCompositeRep Then
    Begin
      with (qrPrinter.Master as TqrCompositeRep) do
      Begin
        PrinterSetup;
        if tag = 0 Then
          Print;
      End;
    End
    Else Begin
      with TCustomQuickRep(QRPrinter.Master) do begin
        PrinterSetup;
        if Tag = 0 then
          Print;
      end;
    End;
  end;
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 10-05-2004
Avatar de SnaKe
SnaKe SnaKe is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid (España)
Posts: 227
Poder: 21
SnaKe Va por buen camino
Hola,


Gracias a todos.

Gydba, con FreeReport no me vale, tiene que ser con QuickReport.

Jachguate, el código que pusiste no compila, dos lineas dan error, la primera es la de:

Código Delphi [-]
if qrPrinter.Master is TqrCompositeRep Then

Ese error lo he conseguido eliminar pero:

Código Delphi [-]
with (qrPrinter.Master as TqrCompositeReport) do

dice... Incompatible types: 'TQRCompositeReport' and 'TWinControl' (el tipo TQrCompositeRep que escribiste no existe y lo cambié por TQrCompositeReport)

Ese tipo de conversiones ya he tratado de realizarlas pero no me deja, no he encontrado la solución, al principio creí que con algo parecido a lo que decias funcionaría pero no encuentro la clave...

Un saludo y gracias de nuevo.
__________________
Todos somos aficionados. La vida es tan corta que no da para más.
Guia de Estilos
Responder Con Cita
  #5  
Antiguo 10-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Pues yo acabo de probar algo muy similar y compila sin problemas... que versión de delphi usas.

Hasta luego

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 11-05-2004
Avatar de SnaKe
SnaKe SnaKe is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid (España)
Posts: 227
Poder: 21
SnaKe Va por buen camino
Hola,

Utilizo delphi 7 y QuickReport 3.0.9 y nada, no hay forma de que compile...


Un saludo.
__________________
Todos somos aficionados. La vida es tan corta que no da para más.
Guia de Estilos
Responder Con Cita
Respuesta


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


La franja horaria es GMT +2. Ahora son las 18:31:39.


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