Fórum OleContainer Word ? #326839
04/08/2006
0
é possivel eu alterar as constantes de um documento Word e depois exibi-lo em um OleContainer ?
deixa eu explicar, tenho um contrato que gostaria de alterar algumas informações nele e exibi-lo, só que o usuário não pode salvar as alterações, resolvir exibi-los em um OleContainer porque não aparece as opções Salvar. O usuário só vai imprimir e fechar sem salvar as alterações.
olha o código que tentei sem sucesso.
var Doc: Variant; begin Word2k := CrieObjeto(´Word.Application´); Doc := Word2k.Documents.Open(´c:\Contrato.doc´); Doc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := ´RENATA AYALLA COIMBRA´); Doc.Content.Find.Execute(FindText := ´@02´, ReplaceWith := ´MEU ENDERECO ETC...´); Doc.Content.Find.Execute(FindText := ´@03´, ReplaceWith := ´MEU BAIRRO...´); //Word2k.Visible := true; OleContainer1.CreateObjectFromFile(´c:\contrato.doc´, false); OleContainer1.DoVerb(ovShow);
[]´s
Renatacoimbra
Curtir tópico
+ 0Posts
07/08/2006
Chucky21
procedure TForm1.Button1Click(Sender: TObject); var Doc, Word2k: Variant; begin Word2k := CreateOleObject(´Word.Application´); Doc := Word2k.Documents.Open(´c:\Contrato.doc´); Doc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := ´RENATA AYALLA COIMBRA´); Doc.Content.Find.Execute(FindText := ´@02´, ReplaceWith := ´MEU ENDERECO ETC...´); Doc.Content.Find.Execute(FindText := ´@03´, ReplaceWith := ´MEU BAIRRO...´); //Protegendo o documento Word2k.ActiveDocument.Protect(Password:=´senha´, NoReset:=False, Type:=2, UseIRM:=False, EnforceStyleLock:=False); end;
Colcando documento protegido ficará somente leitura e o usuário só edita o documento se possuir a senha!!!
Sendo que no ´password:=´senha´ vc passa a senha que achar mais conveniente!!!
Gostei + 0
08/08/2006
Renatacoimbra
sua dica funciona, mais o que eu estou querendo é evitar que o usuário salve as alterações feitas pelo Delphi no modelo de contrato
Quando eu uso
oc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := ´RENATA AYALLA COIMBRA´);
eu estou substituindo a varriavel @01 no modelo, mais o usuário não pode salvar essa alteração.
[]´s
Gostei + 0
09/08/2006
Chucky21
procedure TForm1.Button1Click(Sender: TObject); var Doc, Word2k: Variant; begin Word2k := CreateOleObject(´Word.Application´); //Abre o modelo e cria um documento na unidade c: //mantendo o modelo com o FindText := ´@01´ Word2k.Application.Documents.Add(´c:\contrato.dot´); //Cria o documento na unidade c: Word2k.ActiveDocument.SaveAs(FileName:=´c:\Contrato.doc´, FileFormat:=0); //Abre o documento criando anteriormente Doc := Word2k.Documents.Open(´c:\Contrato.doc´); Doc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := ´RENATA AYALLA COIMBRA´); Doc.Content.Find.Execute(FindText := ´@02´, ReplaceWith := ´MEU ENDERECO ETC...´); Doc.Content.Find.Execute(FindText := ´@03´, ReplaceWith := ´MEU BAIRRO...´); //Protegendo o documento Word2k.ActiveDocument.Protect(Password:=´senha´, NoReset:=False, Type:=2, UseIRM:=False, EnforceStyleLock:=False); end;
Crie um modelo primeiro e salva na unidade C: com o formato .dot.
O Modelo criado no Word não pode ser alterado pelo usuario mesmo clicando no modelo, ele cria um novo documento, mantendo sempre os indicadores @01, @02, etc sem alterações.
Espero que ajude!!!
Gostei + 0
09/08/2006
Renatacoimbra
Funcionou tudo certinho.
[]´s
Gostei + 0
23/01/2016
Eduardo Mendonça
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)