GARANTIR DESCONTO

Fórum OleContainer Word ? #326839

04/08/2006

0

Olá Pessoal, alguém pode se tirar essas dúvidas ?

é 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

Renatacoimbra

Responder

Posts

07/08/2006

Chucky21

Faça assim:
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!!!


Responder

Gostei + 0

08/08/2006

Renatacoimbra

Obrigada !

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


Responder

Gostei + 0

09/08/2006

Chucky21

Faça assim
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!!!


Responder

Gostei + 0

09/08/2006

Renatacoimbra

Obrigada !

Funcionou tudo certinho.


[]´s


Responder

Gostei + 0

23/01/2016

Eduardo Mendonça

Bom Dia ! e para fechar o arquivo aberto como faz?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar