Imprimindo Formatado
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
Curtidas 0
Respostas
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,
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
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
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,
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
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!!
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
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
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
16/12/2009
Olá amigo,
Consegui analisar o exemplo ?
Um abraço
Wesley Y
Consegui analisar o exemplo ?
Um abraço
Wesley Y
GOSTEI 0
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
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
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
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
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
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
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
Um abraço
Wesley Y
GOSTEI 0
Wesley Yamazack
16/12/2009
Olá amigo, podemos fechar o chamado ?
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0