procedimento Listar dados no DBGrid. Os Dados não aparecem.

Delphi

27/09/2023

Meus prezados,
Tenho um procedimento para Listar os dados da tabela no DBGrid. Estou usando interfaces. Os dados não aparecem Já revisei o código e não encontro o erro.
Alguém pode me ajudar? Segue o código abaixo.
procedure TPageCadastroPessoas.btnListarTodosClick(Sender: TObject);
var
Field: TField;
Column: TColumn;
lDataSource: TDataSource;
begin
lDataSource := TDataSource.Create(nil);
try
// Limpar o DBGrid1 antes de listar os dados
DBGrid1.Columns.Clear;

// Chamar o método para listar todos os registros
FController.Pessoa.Build.DataSource(lDataSource).ListarTodos;

// Verificar se há dados no DataSet
if lDataSource.DataSet.IsEmpty then
begin
ShowMessage('Não existem dados a serem visualizados');
Exit;
end;

// Defina o DataSource do DBGrid1 para o DataSet
DBGrid1.DataSource := lDataSource;

// Iterar pelos campos do DataSet e criar colunas correspondentes no DBGrid1
for Field in lDataSource.DataSet.Fields do
begin
Column := TColumn.Create(DBGrid1.Columns);
Column.FieldName := Field.FieldName;
Column.Title.Caption := Field.FieldName;
Column.Width := 100; // Defina a largura da coluna conforme necessário
DBGrid1.Columns.Add; // Adicione a coluna ao DBGrid1
end;
finally
lDataSource.Free;
end;
end;

Agradeço a ajuda.
Mauricio Bomfim

Mauricio Bomfim

Curtidas 0

Respostas

Mauricio Bomfim

Mauricio Bomfim

27/09/2023

Meus prezados,
Tenho um procedimento para Listar os dados da tabela no DBGrid. Estou usando interfaces. Os dados não aparecem Já revisei o código e não encontro o erro.
Alguém pode me ajudar? Segue o código abaixo.
procedure TPageCadastroPessoas.btnListarTodosClick(Sender: TObject);
var
Field: TField;
Column: TColumn;
lDataSource: TDataSource;
begin
lDataSource := TDataSource.Create(nil);
try
// Limpar o DBGrid1 antes de listar os dados
DBGrid1.Columns.Clear;

// Chamar o método para listar todos os registros
FController.Pessoa.Build.DataSource(lDataSource).ListarTodos;

// Verificar se há dados no DataSet
if lDataSource.DataSet.IsEmpty then
begin
ShowMessage('Não existem dados a serem visualizados');
Exit;
end;

// Defina o DataSource do DBGrid1 para o DataSet
DBGrid1.DataSource := lDataSource;

// Iterar pelos campos do DataSet e criar colunas correspondentes no DBGrid1
for Field in lDataSource.DataSet.Fields do
begin
Column := TColumn.Create(DBGrid1.Columns);
Column.FieldName := Field.FieldName;
Column.Title.Caption := Field.FieldName;
Column.Width := 100; // Defina a largura da coluna conforme necessário
DBGrid1.Columns.Add; // Adicione a coluna ao DBGrid1
DBGrid1.Columns[0].FieldName := lDatasource.DataSet.FieldByName
('ID').AsString;
DBGrid1.Columns[1].FieldName := lDatasource.DataSet.FieldByName
('TIPOCADASTRO').AsString;
DBGrid1.Columns[2].FieldName := lDatasource.DataSet.FieldByName
('NOME').AsString;
DBGrid1.Columns[3].FieldName := lDatasource.DataSet.FieldByName
('DATANASCREG').AsString;
DBGrid1.Columns[4].FieldName := lDatasource.DataSet.FieldByName
('CPFCNPJ').AsString;
DBGrid1.Columns[5].FieldName := lDatasource.DataSet.FieldByName
('CIDADE').AsString;
DBGrid1.Columns[6].FieldName := lDatasource.DataSet.FieldByName
('BAIRRO_DISTRITO').AsString;
DBGrid1.Columns[7].FieldName := lDatasource.DataSet.FieldByName
('ESTADO').AsString;
DBGrid1.Columns[8].FieldName := lDatasource.DataSet.FieldByName
('TELEFONE').AsString;
DBGrid1.Columns[9].FieldName := lDatasource.DataSet.FieldByName
('EMAIL').AsString;
DBGrid1.Columns[10].FieldName := lDatasource.DataSet.FieldByName
('ATIVO').AsString;
DBGrid1.Columns[11].FieldName := lDatasource.DataSet.FieldByName
('DATAINICIO').AsString;
DBGrid1.Columns[12].FieldName := lDatasource.DataSet.FieldByName
('DATAFIM').AsString;
lDataSource.DataSet.Next;
end;
finally
lDataSource.Free;
end;
end;




Agradeço a ajuda.
GOSTEI 0
POSTAR