Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-01-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Poder: 25
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
  #2  
Antiguo 16-01-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.215
Poder: 24
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


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

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 06:07:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi