GARANTIR DESCONTO

Fórum Imprimir contrato ! #193759

08/11/2003

0

Pessoal estou precisando imprimir um contrado que nele tenhas as variaveis como nome, endereço etc...Como faço para imprimir isso ?
No Qreport tem jeito ???

grato


Michel

Michel

Responder

Posts

09/11/2003

Edilcimar

isto dá trabalho, mas vale a pena pois sai exatamente como vc quer
Variaveis Linha, coluna : integer
indicev, indiceH : real;


Linha := 0;
Coluna := 0;
IndiceV := Printer.PageHeight / 2016;
IndiceH := Printer.PageWidth / 960;
Estas duas linhas fazem com que se calcule o valor a ser utilizado pela impressora independentemente da resolução da mesma, para imprimir uma folha oficio.
With table1 do // serve para imprimir todos os dados da tabela
begin
with printer.canvas do
begin
If linha = 0 then
begin
Font.size := 10;
Coluna := 0;
TextOut(Coluna,Linha,´Cliente´);
Coluna := Round(300 * IndiceH);
TextOut(Coluna,Linha,´Telefone´);
Linha := Linha + (30 * IndiceV);
end;
Font.Size := 9;
Coluna := 0;
NomeCliente := FieldByName(´NOME´).AsString;
TextOut(Coluna, Linha, NomeCliente);
Coluna := 290 * IndiceH;
FoneCliente := FieldByName(´FONE´).AsString;
TextOut(Coluna,Linha,FoneCliente);
Linha := Linha + 20;
If Linha > 1900 then
Begin
Linha := 0;
Printer.NewPage;
End;
Next;
End;

Teste o posicionamento das colunas em uma impressora e depois estará feito


Responder

Gostei + 0

09/11/2003

Aroldo Zanela

Colega,

Neste caso, eu prefiro utilizar OleAutomation com o Word, pois proporciona maior flexibilidade para o cliente, pois permite que ele altere cláusulas, formatação, etc, sem a necessidade de intervenção do Desenvolvedor.


Responder

Gostei + 0

09/11/2003

Michel

MAs no word tem como eu colocar tipo assim um modelo ja deixando o contrato pronto e depois so colocar as variaveis ??? se tiver ~será q vc(s) nao sabem de alguma referencia para que eu possa fazer isso, por que estou precisando e nao sei por onde comecar !!

Muito obrigado

Michel


Responder

Gostei + 0

10/11/2003

Aroldo Zanela

Colega,

É extamente a isto que me refiro. Vou disponibilizar um modelo hoje a noite.


Responder

Gostei + 0

10/11/2003

Michel

Obrigado Aroldo

No aguardo !!


Responder

Gostei + 0

10/11/2003

Aroldo Zanela

Colega,

Segue um exemplo de uma pequena aplicação para impressão de contrato de um sistema de factoring:

function TFormContratante.CrieObjeto(const ClasseNome: String): IDispatch;
var Classifique_Id: TGUID;
    Desconhecido: IUnknown;
begin
  Classifique_ID:=ProgIdToClassId(ClasseNome);
  if Succeeded(GetActiveObject(Classifique_ID, nil, Desconhecido)) then
    OleCheck(desconhecido.QueryInterface(Idispatch, Result))
  else
    Result:=CreateOleObject(ClasseNome);
end;

procedure TFormContratante.btnContratoClick(Sender: TObject);
var Doc: Variant;
begin
Word2k := CrieObjeto(´Word.Application´);
  Doc := Word2k.Documents.Open(´c:\dados\factoring\contrato de factoring.doc´);

  // Contratante
  Doc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := tbCadastroCED_NOME.Value);
  Doc.Content.Find.Execute(FindText := ´@02´, ReplaceWith := tbCadastroCED_DENOM.Value);
  Doc.Content.Find.Execute(FindText := ´@03´, ReplaceWith := tbCadastroCED_RAMO.Value);
  Doc.Content.Find.Execute(FindText := ´@04´, ReplaceWith := MascaraCNPJ(tbCadastroCED_CGC.Value));
  Doc.Content.Find.Execute(FindText := ´@05´, ReplaceWith := tbCadastroCED_INSCRI.Value);
  Doc.Content.Find.Execute(FindText := ´@06´, ReplaceWith := tbCadastroCED_ENDERE.Value);
  Doc.Content.Find.Execute(FindText := ´@07´, ReplaceWith := tbCadastroCED_BAIRRO.Value);
  Doc.Content.Find.Execute(FindText := ´@09´, ReplaceWith := tbCadastroCED_CIDADE.Value);
  Doc.Content.Find.Execute(FindText := ´@10´, ReplaceWith := tbCadastroCED_ESTADO.Value);
  Doc.Content.Find.Execute(FindText := ´@11´, ReplaceWith := MascaraCEP(tbCadastroCED_CEP.Value));
  Doc.Content.Find.Execute(FindText := ´@12´, ReplaceWith := tbCadastroCED_TELEFO.Value);
  Doc.Content.Find.Execute(FindText := ´@13´, ReplaceWith := tbCadastroCED_FAX.Value);

  // Corpo do contrato - Procuradores

  Doc.Content.Find.Execute(FindText := ´@50´, ReplaceWith := tbCadastroCED_CTO_P1.Value);
  Doc.Content.Find.Execute(FindText := ´@51´, ReplaceWith := tbCadastroCED_CTO_P2.Value);
  Doc.Content.Find.Execute(FindText := ´@54´, ReplaceWith := FormatDateTime( ´"Brasília-DF," dd "de" mmmm "de" yyyy´, tbCadastroCED_CTO_DT.Value));

  // Representante do contratante

  qPesquisa.Close;
  qPesquisa.ParamByName(´CODIGO´).AsInteger:= tbCadastroCED_REPRE.AsInteger;
  qPesquisa.Open;

  Doc.Content.Find.Execute(FindText := ´@14´, ReplaceWith := qPesquisaCED_NOME.Value);
  Doc.Content.Find.Execute(FindText := ´@15´, ReplaceWith := MascaraCNPJ(qPesquisaCED_CGC.Value));
  Doc.Content.Find.Execute(FindText := ´@16´, ReplaceWith := qPesquisaCED_INSCRI.Value);
  Doc.Content.Find.Execute(FindText := ´@17´, ReplaceWith := qPesquisaCED_RAMO.Value);
  Doc.Content.Find.Execute(FindText := ´@18´, ReplaceWith := qPesquisaCED_ENDERE.Value);
  Doc.Content.Find.Execute(FindText := ´@19´, ReplaceWith := qPesquisaCED_BAIRRO.Value);
  Doc.Content.Find.Execute(FindText := ´@20´, ReplaceWith := qPesquisaCED_CIDADE.Value);
  Doc.Content.Find.Execute(FindText := ´@21´, ReplaceWith := qPesquisaCED_ESTADO.Value);
  Doc.Content.Find.Execute(FindText := ´@22´, ReplaceWith := MascaraCEP(qPesquisaCED_CEP.Value));
  Doc.Content.Find.Execute(FindText := ´@23´, ReplaceWith := qPesquisaCED_TELEFO.Value);


  // Fiador

  qPesquisa.Close;
  qPesquisa.ParamByName(´CODIGO´).AsInteger:= tbCadastroCED_FIADOR.AsInteger;
  qPesquisa.Open;

  Doc.Content.Find.Execute(FindText := ´@24´, ReplaceWith := qPesquisaCED_NOME.Value);
  Doc.Content.Find.Execute(FindText := ´@25´, ReplaceWith := MascaraCNPJ(qPesquisaCED_CGC.Value));
  Doc.Content.Find.Execute(FindText := ´@26´, ReplaceWith := qPesquisaCED_INSCRI.Value);
  Doc.Content.Find.Execute(FindText := ´@27´, ReplaceWith := qPesquisaCED_RAMO.Value);
  Doc.Content.Find.Execute(FindText := ´@28´, ReplaceWith := qPesquisaCED_CIVIL.Value);
  Doc.Content.Find.Execute(FindText := ´@29´, ReplaceWith := qPesquisaCED_ENDERE.Value);
  Doc.Content.Find.Execute(FindText := ´@30´, ReplaceWith := qPesquisaCED_BAIRRO.Value);
  Doc.Content.Find.Execute(FindText := ´@31´, ReplaceWith := qPesquisaCED_CIDADE.Value);
  Doc.Content.Find.Execute(FindText := ´@32´, ReplaceWith := qPesquisaCED_ESTADO.Value);
  Doc.Content.Find.Execute(FindText := ´@33´, ReplaceWith := MascaraCEP(qPesquisaCED_CEP.Value));
  Doc.Content.Find.Execute(FindText := ´@34´, ReplaceWith := qPesquisaCED_TELEFO.Value);

  // Conjuge

  Doc.Content.Find.Execute(FindText := ´@35´, ReplaceWith := qPesquisaCED_CJ_NM.Value);
  Doc.Content.Find.Execute(FindText := ´@36´, ReplaceWith := MascaraCNPJ(qPesquisaCED_CJ_CPF.Value));
  Doc.Content.Find.Execute(FindText := ´@37´, ReplaceWith := qPesquisaCED_CJ_RG.Value);
  Doc.Content.Find.Execute(FindText := ´@38´, ReplaceWith := qPesquisaCED_CJ_PRO.Value);

  Doc.Content.Find.Execute(FindText := ´@52´, ReplaceWith := Concat(FloatToStrF(rxLimiteCredito.Value,ffNumber,15,2),´ (´,DinExtenso(rxLimiteCredito.Value),´)´));
  Doc.Content.Find.Execute(FindText := ´@53´, ReplaceWith := Concat(FloatToStrF(rxPromissoria.Value,ffNumber,15,2),´ (´,DinExtenso(rxPromissoria.Value),´)´));


  Word2k.Visible := true;
end;



Responder

Gostei + 0

10/11/2003

Michel

Aroldo Obrigado vou testar amanha na firma!!

Michel Steev


Responder

Gostei + 0

11/11/2003

Michel

Aroldo desculpa estar te encomodando, mas o meu estádando erro nesta linha. eu tenho q declararalgu coisa ??

[Error] Unit1.pas(30): Undeclared identifier: ´ProgIdToClassId´


Responder

Gostei + 0

11/11/2003

Cavalcanti.fabio

Olá Aroldo ou algum companheiro,

desculpe o aborrecimento, mas vc deu um exemplo na lista de um modelo de
contrato com campos ( marcações...não ao certo ) e gostaria de saber se
seria pedir muito um modelo já feito no Word, pois nunca fiz e nem sei por
onde começar...

estou necessitando deste tipo de material para um programa de academia de um
amigo...

fico grato,

valeu.

Fábio Cavalcanti


Responder

Gostei + 0

11/11/2003

Aroldo Zanela

Colega,

 Doc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := tbCadastroCED_NOME.Value);


Na linha acima, o delphi vai procurar no documento do Word pela constante @01 (independente de onde esteja no documento) e substituir pelo conteúdo de tbCadastroCED_NOME.Value.


Responder

Gostei + 0

11/11/2003

Michel

Cavalcante ou aroldo, desculpe a minha ignorancia mas eu nao estou coneguindo colocar o codigo para rodar...tenho q colocar algum componente ou declarar alguma coisa no USES..

Obrigado :wink:


Responder

Gostei + 0

11/11/2003

Fred

Aroldo só uma pergunta: O que seria este Word2k??? uma variavel?? um componente?? O que??? :?


Responder

Gostei + 0

11/11/2003

Aroldo Zanela

Colegas,

Declare na lista de uses: ComObj e ActiveX.

Complementando o código:

var
  FormContratante: TFormContratante;
  Word2k: Variant;

implementation

uses Funcoes, Geral;



Responder

Gostei + 0

11/11/2003

Michel

:D Legal aroldo deu certo.. MUUUUUUUUIIIIITO obrigado agora sim vou poder terminar o meu sisteminha !!!!!

Por isso que sou fanatico pelo clubedelphi

heuhuheuhueuh

falow


Responder

Gostei + 0

12/11/2003

Anorex

pessoal, desculpe incomodar, onde posso encontrar material sobre como trabalhar com o word através do delphi.....


Responder

Gostei + 0

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

Aceitar