Imprimindo Formatado

16/12/2009

Boa tarde   Seguinte     Preciso imprimir um recibo formatado. Fiz o recibo no word com uma formação legal e salve ele como RTF. Depois,  atravez de marcações do tipo (<<nome>>)  usando a função stringreplace consigo substituir os campos que eu quero por campos e variaveis que estão no meu programa. Ate ai tudo lindo....so que quando o stringreplace é executado o texto perde toda a formatação. Tinha a opcao de imprimir isso via word mais as maquinas que vão emitir esse recibo nao possuem word.   Por favor como fazer para resolver esse problema.     Desde já agradeço.     Adriano
Adriano Silva

Adriano Silva

Curtidas 0

Respostas

Rodrigo Mourão

Rodrigo Mourão

16/12/2009

Olá Adriano,


Precisamos analisar seu código para poder verificar o que pode estar ocorrendo. Você poderá utilizar o disco virtual para poder nos postar o código.

https://www.devmedia.com.br/imagens/videos/4/Video%20disco%20virtual.htm

Não esqueça de nos enviar o Link.

Att,


GOSTEI 0
Adriano Silva

Adriano Silva

16/12/2009

Segue o link com o programa     http://video.devmedia.com.br/discovirtual/179595/Recibo.zip     Desde já agradeço      
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

16/12/2009

Ok Adriano,

Vou baixar, descompactar e analisar seu código.

Peço a gentleza que aguarde. Em breve entrarei em contato !!!

Att,


GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

16/12/2009

Olá Adriano,

Continuo trabalhanod no seu chamado, porem trabalho com maquina virtual e tive problemas com a minha MV com delphi.

Mas acabei de resolver e estarei dando sequencia !!!

Abs!!

GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/12/2009

Olá amigo, eu fiz duas implementações veja se irá te ajudar, no primeiro eu deduzi as posições do conteúdo que você quer mudar, e no segundo eu localizei a plavra e mandei subistituir.


Modelo 1
procedure TForm1.Button1Click(Sender: TObject);
begin
 
  redt.SelStart := 414;
  redt.SelLength := 7;
  redt.SelText := Edit1.Text;

 
  redt.SelStart := 445;
  redt.SelLength := 15;
  redt.SelText := Edit2.Text;

 
  redt.SelStart := 657;
  redt.SelLength := 7;
  redt.SelText := Edit3.Text;
end;

Modelo 2

procedure TForm1.Button2Click(Sender: TObject);
Var
  posIni,Tamanho : Integer;
  Conteudo : String;
begin
  Conteudo := '<NOME>';
  posIni := Pos(Conteudo, redt.Text);
  Tamanho := Length(Conteudo);
  with redt do
  begin
    SelStart := (posIni - Tamanho) - 6;
    SelLength := Tamanho + 2;
    SelText := Edit1.Text;
  end;

  Conteudo := '<%REQUISICOES%>';
  posIni := Pos(Conteudo, redt.Text);
  Tamanho := Length(Conteudo);
  with redt do
  begin
    SelStart := (posIni - Tamanho) + 4;
    SelLength := Tamanho;
    SelText := Edit2.Text;
  end;

  Conteudo := '<total>';
  posIni := Pos(Conteudo, redt.Text);
  Tamanho := Length(Conteudo);
  with redt do
  begin
    SelStart := (posIni - Tamanho) - 7;
    SelLength := Tamanho;
    SelText := Edit3.Text;
  end;
end;


Veja se isso irá lhe ajudar, ou se você precisa de algum mais além desta dica.

Um abraço

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/12/2009

Olá amigo,
  Consegui analisar o exemplo ?

Um abraço

Wesley Y
GOSTEI 0
Adriano Silva

Adriano Silva

16/12/2009

Analizei sim, fiz algumas alterações e esta funcionando essa parte de alteração dos dados. Agora eu nao to conseguindo imprimir ele eu tento jogar esse TRichedit em um TQRRichText mas nao to conseguindo. Pelo que vi, tenho que jogar esse TRichEdit em uma TStream para assim jogar no TQRRichText. Se esse pensamento esta correto eu deveria fazer :     Var   T:TStream;   begin    t:=TMemorystream.Create;    redt.SaveToStream(T);    qrRichText.LoadFromStream(T);    QuickRep1.Preview    t.free; end;     So que o relatorio fica em branco. Veja por favor o que esta errado.   Obrigado      
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/12/2009

Olá amigo,
   Você quer simplesmente imprimir o texto alterado, seria isso ? Se for isso, você pode imprirmir direto pelo Delphi enviando um comando para o Word, mas isso lhe ajudaria ? Fico no aguardo

Um abraço

Wesley Y
GOSTEI 0
Adriano Silva

Adriano Silva

16/12/2009

Entao.....exatamente isso que nao pode.....nao tem WORD nas maquinas. Por isso que te ser pelo quickrep. eu to fazendo o seguinte salvando o texto formatado em uma arquivo temporario e carregando ele no quickrep, fica certinho. So acho que por stream ficaria mais legal. Por favor, veja se tem como salvar no stream...se nao tiver....vai ficar via arquivo mesmo.     Um abraço
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/12/2009

Olá amigo,
  Peço que aguarde um pouco, pois vou ter que montar o ambiente, com delphi 7. E desenvolver o exemplo.

Att,

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/12/2009

Olá amigo, tentei aqui fazer pelo Stream, porém não tive resultado, infelizmente, não vai ficar bonito como você queria. Porém já tem meio caminho andado certo ?

Um abraço

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/12/2009

Olá amigo, podemos fechar o chamado ?

Att,

Wesley Y
GOSTEI 0
POSTAR