Fórum Imprimir contrato ! #193759
08/11/2003
0
No Qreport tem jeito ???
grato
Michel
Curtir tópico
+ 0Posts
09/11/2003
Edilcimar
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
Gostei + 0
09/11/2003
Aroldo Zanela
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.
Gostei + 0
09/11/2003
Michel
Muito obrigado
Michel
Gostei + 0
10/11/2003
Aroldo Zanela
É extamente a isto que me refiro. Vou disponibilizar um modelo hoje a noite.
Gostei + 0
10/11/2003
Michel
No aguardo !!
Gostei + 0
10/11/2003
Aroldo Zanela
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;
Gostei + 0
10/11/2003
Michel
Michel Steev
Gostei + 0
11/11/2003
Michel
[Error] Unit1.pas(30): Undeclared identifier: ´ProgIdToClassId´
Gostei + 0
11/11/2003
Cavalcanti.fabio
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
Gostei + 0
11/11/2003
Aroldo Zanela
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.
Gostei + 0
11/11/2003
Michel
Obrigado :wink:
Gostei + 0
11/11/2003
Fred
Gostei + 0
11/11/2003
Aroldo Zanela
Declare na lista de uses: ComObj e ActiveX.
Complementando o código:
var FormContratante: TFormContratante; Word2k: Variant; implementation uses Funcoes, Geral;
Gostei + 0
11/11/2003
Michel
Por isso que sou fanatico pelo clubedelphi
heuhuheuhueuh
falow
Gostei + 0
12/11/2003
Anorex
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)