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 23-08-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
ReportBuilder, me muestra la pantalla de impresora al enviar a PDF

Hola;
estoy experimentando un problema algo raro; estoy generando un reporte en PDF que posteriormente envío por correo electrónico desde la pantalla de preview...
el codigo para "generar el reporte" es este:
Código Delphi [-]
               Fcartas.Recpagesp.PDFSettings.Title := 'Recordatorio de pago '+Qrecibos.fieldbyname('re_pol').asstring+' ('+StringReplace(Qrecibos.fieldbyname('re_num').asstring, '/', '-', [rfReplaceAll, rfIgnoreCase])+')';
            Fcartas.Recpagesp.Print;
en la pantalla de preview tengo un botón que ejecuta la accion de enviar el reporte por correo :
Código Delphi [-]
     ppViewer1.Report.AllowPrintToFile := True;
     ppViewer1.Report.DeviceType := dtPDF;

     ppViewer1.Report.PDFSettings.Author := 'SEGSYS';
     //ppViewer1.Report.PDFSettings.Title  := Ltitulo.Caption;

     ppViewer1.Report.PDFSettings.OpenPDFFile := True;

     xcarpeta := 'c:\asap\temp';
     xarchivo  := ppViewer1.Report.PDFSettings.Title+'.pdf';

     If ForceDirectories(xcarpeta) then
          ppViewer1.Report.TextFileName := xarchivo;

     lPDFDevice := TppPDFDevice.Create(nil);

     if (FOutputStream = nil) then
          FOutputStream := TMemoryStream.Create
     else
          FOutputStream.Clear;


     try
          lPDFDevice.PDFSettings   := ppViewer1.Report.PDFSettings;
          lPDFDevice.OutputStream  := FOutputStream;        // assign output stream
          lPDFDevice.Publisher     := ppViewer1.Report.Publisher;

     // generate the report
     ppViewer1.Report.PrintToDevices;

     finally
          lPDFDevice.Free;
     end;
la primera vez que genero el reporte lo hace perfectamente, el problema viene cuando lo vuelvo a intentar; me manda la pantalla de la impresora [imagen] y me abre el acrobat con el archivo PDF
Alguna sugerencia?
Imágenes Adjuntas
Tipo de Archivo: jpg Image1.jpg (38,3 KB, 9 visitas)

Última edición por Casimiro Notevi fecha: 24-08-2022 a las 09:15:57.
Responder Con Cita
  #2  
Antiguo 24-08-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No conozco reportbuilder, pero podría ser que no entre la segunda vez a la línea donde se asigna el nombde de archivo si la carpeta ya existe.
Código Delphi [-]
    If ForceDirectories(xcarpeta) then
        ppViewer1.Report.TextFileName := xarchivo;
Responder Con Cita
  #3  
Antiguo 25-08-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
No conozco reportbuilder, pero podría ser que no entre la segunda vez a la línea donde se asigna el nombde de archivo si la carpeta ya existe.
Código Delphi [-]
    If ForceDirectories(xcarpeta) then
        ppViewer1.Report.TextFileName := xarchivo;
Al principio pensé que era eso, pero ni siquiera llega a presentarme la pantalla de preview que es donde esta ese código...
Responder Con Cita
  #4  
Antiguo 25-08-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Agregando :

ShowPrintDialog :=False;
ShowCancelDialog :=False;
ModalCancelDialog :=False;


Antes de :

Fcartas.Recpagesp.Print;

Ya no muestra el dialogo de la impresora, pero me abre el Acrobat Reader!!!
Responder Con Cita
  #5  
Antiguo 25-08-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ArtPortEsp Ver Mensaje
Agregando :
ShowPrintDialog :=False;
ShowCancelDialog :=False;
ModalCancelDialog :=False;
Antes de :
Fcartas.Recpagesp.Print;
Ya no muestra el dialogo de la impresora, pero me abre el Acrobat Reader!!!
Por esto:
ppViewer1.Report.PDFSettings.OpenPDFFile := True;
Responder Con Cita
  #6  
Antiguo 25-08-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por esto:
ppViewer1.Report.PDFSettings.OpenPDFFile := True;
correcto (muchas gracias), corregida esa parte...

el problema es que sigue "fallando" en las sucesivas ejecuciones del código; la idea es que siempre me muestre la pantalla de preview cuando hago el PRINT y eso solo lo hace la primera vez.
Responder Con Cita
  #7  
Antiguo 25-08-2022
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Problema corregido,

como siempre; uno se deja llevar por las repeticiones cuando prueba el codigo y no alcanza a ver los errores obvios...

el problema estaba en el boton de la ventana de preview del reporte :

Código:
     ppViewer1.Report.AllowPrintToFile := True;
     ppViewer1.Report.DeviceType := dtPDF;
necesitaba "resetear" estas propiedades y lo hice al finalizar el evento del boton:

Código:
     finally
          ppViewer1.Report.AllowPrintToFile := False;
          ppViewer1.Report.DeviceType := dtScreen;

          lPDFDevice.Free;
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
No muestra campo autoincrementado en pantalla rretamar Firebird e Interbase 10 06-12-2014 13:31:31
Enviar una captura de pantalla via UDP Harom Varios 2 11-03-2013 11:18:53
Imagen escala real por pantalla e impresora briast Gráficos 9 22-08-2012 13:00:59
imprimir en impresora de tickets en con reportbuilder ingmichel Impresión 4 24-07-2012 23:33:22
Enviar pantalla por internet Descendents Internet 2 12-07-2003 23:40:36


La franja horaria es GMT +2. Ahora son las 20:53:05.


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