Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-01-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Impresión de circulares

Hola a tod@s.

En alguna de mis aplicaciones tengo una opción para poder imprimir circulares personalizadas wia Word. Todo esto lo tengo controlado, creo el documento con Word poniendo los campos de la tabla que quiero sustituir y luego voy recorriendo la tabla, sustituyendo campos e imprimiendo.

El tema es que este proceso se me hace bastante lento, cuando se lanza la impresión tarda segundos en abrir el documento base, sustituir los campos por los de la tabla e imprimir, con lo que si quieres enviar varios cientos de documentos se hace un proceso eterno.

¿Alguno de vosotros tiene un sistema mejor y sobre todo más rápido para este cometido de alguna otra manera?.

Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 15-01-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 914
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Creo que existen alternativas...

Mira estas opciones con FastReport.

Opcion 1:
Interceptar envento GETVALUE y reemplazar contenido de campo TfrxRichView de nombre RTFFILE

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
     frxReport1.ShowReport;
end;

procedure TForm1.frxReport1GetValue(VarName: String; var Value: Variant);
var
  sl: TStringList;
begin
    
     if CompareText(VarName, 'RTFFILE') = 0 then
     begin
          sl := TStringList.Create;
          sl.LoadFromFile('d:\Demo.rtf');
          {Aquí tendrías que buscar y reemplazar los marcadores de campos de tus tablas...}
          Value := sl.Text;
          sl.Free;
     end;
end;


Opcion 2:
Cargar rtf en campo TfrxRichView y realizar el reemplazo en el contenido de acuerdo a función adjunta...

Código Delphi [-]
{Refrencia
http://www.fast-report.com/en/forum/...php/t3415.html
}
procedure TForm1.Button1Click(Sender: TObject);
var
   RichView:TfrxRichView;
begin
     RichView := TfrxRichView( frxReport1.FindObject( 'Rich1' ) );
     If RichView <> Nil Then Begin
        RichView.RichEdit.Lines.LoadFromFile( 'D:\Demo.rtf' );
        SearchAndReplace( RichView.RichEdit,'[NAME]','CHRISTIAN');
        SearchAndReplace( RichView.RichEdit,'[DIRECCION]','2 NORTE');
        SearchAndReplace( RichView.RichEdit,'[CIUDAD]','CONCEPCION');
     End;
     frxReport1.ShowReport;
end;

procedure TForm1.SearchAndReplace( Rich: TrxRichEdit; InSearch,InReplace: String );
var
   X,ToEnd: Integer;
begin
     X := 0;
     ToEnd := Length( Rich.Text );
     X := Rich.FindText( inSearch,X,ToEnd,[] );

     While X <> -1 Do
     Begin
          Rich.SelStart := X;
          Rich.SelLength := Length( inSearch );
          Rich.SelText := inReplace;
          X := Rich.FindText( inSearch,X + Length( inReplace ),ToEnd,[] );
     End;
end;

Saludos cordiales...
Responder Con Cita
  #3  
Antiguo 16-01-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Gracias cloayza pero no me gustaría instalar FastReport solo para este tema así que seguiré buscando opciones.

Saludos
__________________
Be water my friend.
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
Impresion a PDF juanelo Impresión 32 09-10-2014 22:24:54
Problema de impresion Detener la Impresion Gangster Impresión 2 26-01-2007 19:22:12
OOP y referencias circulares AzidRain OOP 2 24-11-2006 03:56:08
Operaciones basiscas listas doblemente enlazadas circulares fede7 Varios 16 07-04-2006 23:15:35
Referencias circulares aparentes con SPs mlara Firebird e Interbase 6 06-07-2003 16:29:19


La franja horaria es GMT +2. Ahora son las 16:29:44.


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