Vamos la, Criando o DataSet.
faça uso de Data.DB e Datasnap.DBClient
-- Classe --
TPopulaJSON = class
private
FLstCampos: TClientDataSet;
public
constructor Create;
destructor Destroy; override;
property LstCampos: TClientDataSet read FLstCampos write FLstCampos;
end;
-- Create da Classe --
constructor TPopulaJSON.Create;
begin
FLstCampos:=TClientDataSet.Create(nil);
with FLstCampos do
begin
FieldDefs.Add('checado', ftBoolean, 0, False);
FieldDefs.Add('nome', ftString, 100, False);
CreateDataSet;
Fields.Fields[0].DisplayLabel:=EspacoDirEsq('',3,'D');
Fields.Fields[1].DisplayLabel:='Campo de Pesquisa';
end;
end;
isso é o que é preciso para criar o DataSet em RunTime
agora vc tem uma variável String em formato JSON e quer popular 1 campo do DataSet com ela.
vc vai precisar
var LJSONObject : TJSONObject;
j:Integer;
jSubPar: TJSONPair;
vRegistro:String;
begin
try
LJSONObject := TJsonObject.Create;
LJSONObject := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(vRegistro), 0) as TJSONObject;
for j := 0 to LJSONObject.Size - 1 do
begin
jSubPar := LJSONObject.Get(j);
FLstCampos.Append;
FLstCampos.FieldValues['checado']:=False;
FLstCampos.FieldValues['nome']:=jSubPar.JsonString.Value;
FLstCampos.Post;
end;
finally
FreeAndNil(LJSONObject);
end;
end;
usei meu DataSet com F na frente porque fiz esse tratamento dentro da classe, ou seja, no Set da proprierade, mais nada impede de vc usar aonde vc quiser somente chamando o seu DataSet.
ai na sua tela vc vai ter uma dbGrid e 1 DataSource, ligue sua dbGrid no DataSource e no OnShow do Form vc liga o DataSource no DataSet assim
DataSource.DataSet:=seu DataSet
e tudo o que vc fizer no seu DataSet pelo sistema vai aparecer na sua dbGrid.
Nenhum comentário:
Postar um comentário