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