Visualizar e Imprimir dados do DbGrid em Delphi

03/05/2019

5

Prezados, bom dia.
No meu form de cadastro possuo um Dbgrid e gostaria de visualizar e imprimir os dados pesquisados dentro dele.
Componente utilizado: PrintDialog
Encontrei este código mas ao rodar dá erro na linha EndDoc: "Not enough actual parameters"
Poderiam avaliar?

procedure Tfrmcliente.BitBtn1Click(Sender: TObject);
var
x,y,i: integer;
begin
          If Pdimprimir.Execute Then
         Begin
           With Printer Do
           Begin
             BeginDoc;
             X := 200; // margem da página
             Y := 200; // margem da página
             With canvas Do
             Begin
               dm_dados.adqcliente.First;
               For i := 1 To dm_dados.adqcliente.RecordCount Do
               Begin
                 textout(X, Y,
                   inttostr(i) + 'º | Campo 1: ' + dm_dados.adqcliente.FieldValues
                     ['cli_cod  ']   //Código do Cliente
                     + ' | Campo 2: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_nome']) //Nome
                     + ' | Campo 3: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_cpf'])  //CPF
                     + ' | Campo 4: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_end']) //Endereço
                     + ' | Campo 5: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_num'])  //Número
                     + ' | Campo 6: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_complemento']) //Complemento
                     + ' | Campo 7: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_bairro']) //Bairro
                     + ' | Campo 8: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_telefone'])  //Telefone
                     + ' | Campo 6: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_celular']));  //Celular

               End;
                 inc(Y, 50);
                 /// espaçamento das linhas, não eliminar, 50 é para linha normal
                 If Y = 6600 Then
                 /// tamanho de uma página A4
                 Begin
                   Newpage;
                   Y := 200; // margem da nova página
                 End;
                 dm_dados.adqcliente.Next;
               End;
             End;
             EndDoc;
           End;
End;
Responder

Posts

Prezados, bom dia.
No meu form de cadastro possuo um Dbgrid e gostaria de visualizar e imprimir os dados pesquisados dentro dele.
Componente utilizado: PrintDialog
Encontrei este código mas ao rodar dá erro na linha EndDoc: "Not enough actual parameters"
Poderiam avaliar?

procedure Tfrmcliente.BitBtn1Click(Sender: TObject);
var
x,y,i: integer;
begin
          If Pdimprimir.Execute Then
         Begin
           With Printer Do
           Begin
             BeginDoc;
             X := 200; // margem da página
             Y := 200; // margem da página
             With canvas Do
             Begin
               dm_dados.adqcliente.First;
               For i := 1 To dm_dados.adqcliente.RecordCount Do
               Begin
                 textout(X, Y,
                   inttostr(i) + 'º | Campo 1: ' + dm_dados.adqcliente.FieldValues
                     ['cli_cod  ']   //Código do Cliente
                     + ' | Campo 2: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_nome']) //Nome
                     + ' | Campo 3: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_cpf'])  //CPF
                     + ' | Campo 4: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_end']) //Endereço
                     + ' | Campo 5: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_num'])  //Número
                     + ' | Campo 6: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_complemento']) //Complemento
                     + ' | Campo 7: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_bairro']) //Bairro
                     + ' | Campo 8: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_telefone'])  //Telefone
                     + ' | Campo 6: ' + string
                     (dm_dados.adqcliente.FieldValues['cli_celular']));  //Celular

               End;
                 inc(Y, 50);
                 /// espaçamento das linhas, não eliminar, 50 é para linha normal
                 If Y = 6600 Then
                 /// tamanho de uma página A4
                 Begin
                   Newpage;
                   Y := 200; // margem da nova página
                 End;
                 dm_dados.adqcliente.Next;
               End;
             End;
             EndDoc;
           End;
End;
,

So de olhar e contar um pouco to vendo que o tal ENDDOC está fora do laço With que deveria estar, da uma olhada nisso e depois de diz.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira