quinta-feira, 8 de fevereiro de 2018

Como criar um ClientDataSet em runtime

Para quem quiser saber como criar um ClientDataSet em runtime!

Existe um velho pré conceito de que programadores RAD não sabem criar componentes em runtime, ou seja, apenas arrastam o componente "dataset" e soltam no form. Pode até ser muito usado, mas saibam que é possível fazer isso também em runtime, e vou explicar agora.

Primeiramente:

Declare na seção interface, após o uses a unit DBClient ;

Após isto, declare uma propriedade chamada FCDSItensVenda do tipo TClientDataSet, por exemplo:

     TfrmMain = class(Tfrm)
     private
          FCDSItensVenda: TClientDataSet ;
     public
          procedure afterConstruction ; override ;
     end;

Na sequência, no método afterConstruction, seguindo o exemplo acima, inclua as seguintes linhas:

procedure TfrmMain.afterConstruction;
begin
     inherited;
     FCDSItensVendas := TClientDataSet.Create( application ) ;
     with FCDSItensVendas.FieldDefs do
     begin
          add( 'NumItem', ftString, 3 ) ;
          add( 'Codigo', ftString, 13 ) ;
          add( 'Descricao', ftString, 60 ) ;
          add( 'Qtd', ftFloat ) ;
          add( 'Vl.Unit', ftCurrency ) ;
          add( 'SubTotal', ftCurrency ) ;
     end ;
     FCDSItensVendas.CreateDataSet ;
end;

Explicações:

FCDSItensVendas := TClientDataSet.Create( application ) ; // Aqui eu crio o objeto FCDSItensVendas

with FCDSItensVendas.FieldDefs do // aqui eu pré fixo o ponteiro na "lista de campos" do objeto FCDSItensVendas

add( 'NumItem', ftString, 3 ) ; // aqui eu crio um campo chamado "NumItem" do tipo "String" cujo tamanho é '3' (três).

FCDSItensVendas.CreateDataSet ; // por fim, monto a estrutura "DataSet", ou seja, instancio uma tabela em memória.

Espero que seja útil!

Até +

Nenhum comentário:

Postar um comentário

PHP para iniciantes - Vídeo #1