Fórum Contrato no Word via Delphi #273014
18/03/2005
0
Um um contrato tem 3 variedades de soja e outro tem 5. ja usei obejto do Excel, tabela do word e tal... mas nao consegui formatar usando OlEvARIANT ...
Gostaria de continuar usando OleVariant mas se tiverem tutorias com WordApplication tambem server... obrigado.
Xanatos
Curtir tópico
+ 0Post mais votado
21/03/2005
procedure TrocarString(Str1, Str2: string; R: Range); var Texto1, Texto2: OleVariant; M: OleVariant; begin Texto1:= Str1; Texto2:= Str2; M:= ´2´; // 0 - nao mudar 1 - Mudar a primeira ocorrencia 2 - Mudar todas as ocorrencias R.Find.Execute(Texto1, M,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam, Texto2, M, EmptyParam,EmptyParam,EmptyParam, EmptyParam); end; // Preenchimento do Contrato procedure TfrmPedidoVenda.BitBtn1Click(Sender: TObject); Var Doc: _Document; T: Table; FileName: OleVariant; Linha:OleVariant; teste: boolean; Ini, Fim: OleVariant; R: Range; Direction: OleVariant; Texto,Texto2: Olevariant; Cont: integer; TotalQtd: integer; TotalValor: Currency; Vencimentos: string; begin // Especificando o nome do Documento Modelo para o Contrato FileName := ´c:\CONTRATO DE VENDA SEMENTE SOJA2.doc´; WordApplication1.Connect; // Abertura do Documento WordApplication1.Documents.Open(FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); WordDocument1.ConnectTo(WordApplication1.ActiveDocument); WordApplication1.Visible:=True; // Mostrando o Word Doc := WordApplication1.ActiveDocument; R:= WordApplication1.Selection.Range; // Cabeçalho do Contrato TrocarString(´´, DM.QueryPedidosVendaNR_PEDIDO.AsString, R); TrocarString(´´, DM.QueryPedidosVendaNOME_SAFRA.AsString, R); TrocarString(´´, DM.QueryPedidosVendaNOME_CLIENTE.AsString, R); TrocarString(´´, DM.QueryPedidosVendaDESC_ENDERECO.AsString, R); TrocarString(´´, DM.QueryPedidosVendaCIDADE.AsString, R); TrocarString(´´, DM.QueryPedidosVendaUF.AsString, R); TrocarString(´´, DM.QueryPedidosVendaCPF.AsString+DM.QueryPedidosVendaDIGITO_CPF.AsString, R); TrocarString(´´, DM.QueryPedidosVendaINSC_ESTADUAL.AsString, R); // Manipulacao da Tabela... T := Doc.Tables.Item(1); // Selecionando a Tabela T.Cell(2,1).Select; Linha:= T.Rows.Item(2); Cont:= 1; // Calculando o Numero de linhas em funcao do numero de Itens while Cont < DM.QueryPedidosVendaItens.RecordCount do begin T.Rows.Add(Linha); Inc(Cont); end; TotalQtd:=0; TotalValor:= 0; DM.QueryPedidosVendaItens.First; Cont:=2; // Looping para o preenchimento da Tabela de Itens do Contrato While not DM.QueryPedidosVendaItens.Eof do begin T.Cell(Cont, 1).Range.Text := DM.QueryPedidosVendaItensNOME_PRODUTO.AsString+´/´+DM.QueryPedidosVendaItensCLASSE.AsString; T.Cell(Cont, 2).Range.Text := DM.QueryPedidosVendaItensPENEIRA.AsString; T.Cell(Cont, 3).Range.Text := DM.QueryPedidosVendaItensQUANTIDADE.AsString; T.Cell(Cont, 4).Range.Text := FloatToStrF(DM.QueryPedidosVendaItensVALOR_TOTAL.asFloat / DM.QueryPedidosVendaItensQuantidade.AsFloat,ffNumber,10,2); T.Cell(Cont, 5).Range.Text := FloatToStrF(DM.QueryPedidosVendaItensVALOR_TOTAL.Value,ffNumber,15,2); TotalQtd:= totalQtd + DM.QueryPedidosVendaItensQUANTIDADE.AsInteger; TotalVAlor:= TotalValor + DM.QueryPedidosVendaItensVALOR_TOTAL.Value; DM.QueryPedidosVendaItens.Next; Inc(Cont); end; T.Cell(T.Rows.Count, 3).Range.Text:= IntToStr(TotalQtd); // Quantidade Total T.Cell(T.Rows.Count, 5).Range.Text:= FloatToStrF(TotalValor,ffNumber,15,2); // Valor Total dos Itens DM.QueryContasReceber.First; Vencimentos:=´´; while not DM.QueryContasReceber.Eof do begin Vencimentos:= Vencimentos + DM.QueryContasReceberDATA_VCTO.AsString+´ R$´+ FloatToStrF(DM.QueryContasReceberVALOR_DOCUM.Value,ffNumber,15,2); DM.QueryContasReceber.Next; if not DM.QueryContasReceber.Eof then vencimentos:= Vencimentos + ´ - ´; end; //Corpo do Contrato TrocarString(´´, Vencimentos, R); TrocarString(´´, dm.QueryObsOBSERVACOES.AsString, R); TrocarString(´´, FormatDateTime(´"Rondonópolis," dd "de" mmmm "de" yyyy´, Date), R); TrocarString(´´, DM.QueryPedidosVendaTESTE1.AsString , R); TrocarString(´´, DM.QueryPedidosVendaCPF_TESTE1.AsString+´-´+DM.QueryPedidosVendaDIGITO_CPF_TESTE1.AsString , R); TrocarString(´´, DM.QueryPedidosVendaTESTE2.AsString , R); TrocarString(´´, DM.QueryPedidosVendaCPF_TESTE2.AsString+´-´+DM.QueryPedidosVendaDIGITO_CPF_TESTE2.AsString , R); WordApplication1.Disconnect; end;
Xanatos
Gostei + 2
Mais Posts
22/02/2016
Renato Freitas
Gostei + 0
22/02/2016
Renato Freitas
- ComObj
- OleServer
- WordXP
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)