 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
thaita Novato

Registrado: Sábado, 26 de Novembro de 2022 Mensagens: 44
|
Enviada: Ter Ago 29, 2023 5:08 pm Assunto: RESOLVIDO Como mostrar 03 campos de uma tabela na DBGrid, |
|
|
Prezados,
Tenho um formulário com uma dbgrid onde preciso mostra apenas 03 campos de uma tabela, assim que o formulário for aberto, via código. Sou iniciante, alguém pode me ajudar?
Editado pela última vez por thaita em Sáb Set 02, 2023 1:48 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
rodrigoprado Colaborador

Registrado: Terça-Feira, 24 de Mai de 2005 Mensagens: 1074 Localização: Curitiba/PR
|
Enviada: Ter Ago 29, 2023 6:54 pm Assunto: |
|
|
segue um exemplo com dados em memória.... mas vc pode usar uma query no lugar de um dataset, seguindo essa ídeia, abrir ela com um sql do banco.
Código: |
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, Vcl.Grids,
Vcl.DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
ClientDataSet1: TClientDataSet;
ClientDataSet1codigo: TIntegerField;
ClientDataSet1descricao: TStringField;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.AppendRecord([1,'aaaaaa']);
ClientDataSet1.AppendRecord([2,'aaaaaa']);
ClientDataSet1.AppendRecord([3,'aaaaaa']);
DataSource1.DataSet := ClientDataSet1;
DBGrid1.DataSource := DataSource1;
end;
end.
|
_________________ - Compartilhe seus conhecimentos - |
|
Voltar ao Topo |
|
 |
thaita Novato

Registrado: Sábado, 26 de Novembro de 2022 Mensagens: 44
|
Enviada: Qua Ago 30, 2023 2:22 pm Assunto: Como mostrar 03 campos de uma tabela na DBGrid, via código |
|
|
Sim, mas acontece que estou trabalhando com interfaces, segue o código do meu formulário, abaixo.
unit AdmSitio.view.pages.Pessoas;
interface
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
AdmSitio.view.pages.MestreCadastro,
Data.DB,
System.ImageList,
Vcl.ImgList,
Vcl.Grids,
Vcl.DBGrids,
Vcl.StdCtrls,
Vcl.ExtCtrls,
Vcl.WinXPanels,
AdmSitio.controller.interfaces,
FireDAC.Comp.Client,
AdmSitio.model.service.interfaces,
AdmSitio.controller.impl.controller,
AdmSitio.model.service.impl.servicesimpleorm,
AdmSitio.model.entity.pessoa,
Vcl.ComCtrls;
type
TPagePessoas = class(TPageMestreCadastro)
edtCodigo: TLabeledEdit;
edtNome: TLabeledEdit;
edtCPFCnpj: TLabeledEdit;
edtCidade: TLabeledEdit;
edtBairro: TLabeledEdit;
cbTipo: TComboBox;
Label2: TLabel;
edtDataNascReg: TDateTimePicker;
edtTelefone: TLabeledEdit;
edtEmail: TLabeledEdit;
cbAtivo: TComboBox;
Label4: TLabel;
grpVigencia: TGroupBox;
edtDataInicio: TDateTimePicker;
edtDataFim: TDateTimePicker;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
edtEstado: TLabeledEdit;
procedure cbTipoChange(Sender: TObject);
procedure edtCPFCnpjKeyPress(Sender: TObject; var Key: Char);
procedure edtTelefoneKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure btnIncluirClick(Sender: TObject);
procedure btnSalvarClick(Sender: TObject);
procedure btnAlterarClick(Sender: TObject);
procedure btnExcluirClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnPesquisarClick(Sender: TObject);
private
FController: iController;
FDatasource : TDataSource;
public
{ Public declarations }
end;
var
PagePessoas: TPagePessoas;
implementation
uses
AdmSitio.utils.Utilitarios;
{$R *.dfm}
{ TPagePessoas }
procedure TPagePessoas.btnAlterarClick(Sender: TObject);
var
Pessoa : TPESSOA;
begin
Pessoa := TPESSOA.Create;
try
Pessoa.ID := StrToInt(EdtCodigo.Text);
if cbTipo.ItemIndex = 0 then
Pessoa.TipoCadastro :=('Fornecedor')
else
if cbTipo.ItemIndex = 1 then
Pessoa
.TipoCadastro:=('Parceiro Agrícola')
else if cbTipo.ItemIndex = 2 then
Pessoa
.TipoCadastro:=('Cliente')
else
Pessoa.TipoCadastro:=(EmptyStr);
Pessoa.NOME := (EdtNome.Text);
Pessoa.DATANASCREG := (now);
Pessoa.CPFCNPJ := (edtCpfCnpj.Text);
Pessoa.CIDADE :=(edtCidade.Text);
Pessoa.BAIRRO_DISTRITO := (edtBairro.Text);
Pessoa.ESTADO := (edtEstado.Text);
Pessoa.TELEFONE := (edtTelefone.Text);
Pessoa.EMAIL := (edtEmail.Text);
if cbAtivo.ItemIndex = 0 then
Pessoa.Ativo :=('S')
else if cbAtivo.ItemIndex = 1 then
Pessoa.Ativo:=('N')
else
Pessoa.Ativo:=(EmptyStr);
Pessoa.DataInicio := Now;
Pessoa.DataFim := edtDataFim.date;
FDAO.Build.Atualizar;
finally
Pessoa.Free;
end;
inherited;
end;
procedure TPagePessoas.btnExcluirClick(Sender: TObject);
var
SelectedRow: TBookmark;
begin
inherited;
if DBGrid1.SelectedRows.Count > 0 then
begin
if Application.MessageBox('Deseja realmente excluir essa pessoa?',
'SimpleORM', MB_ICONQUESTION + MB_YESNO) = ID_YES then
begin
SelectedRow := DBGrid1.SelectedRows[0];
try
FController.Pessoa.Id(StrToInt(DBGrid1.Fields[0].AsString))
.Build.Excluir;
DBGrid1.DataSource.DataSet.Bookmark := SelectedRow;
DBGrid1.DataSource.DataSet.Delete;
except
on E: Exception do
begin
ShowMessage('Erro ao excluir pessoa: ' + E.Message);
end;
end;
end;
end;
end;
procedure TPagePessoas.btnIncluirClick(Sender: TObject);
begin
inherited;
cbTipo.SetFocus;
end;
procedure TPagePessoas.btnPesquisarClick(Sender: TObject);
begin
inherited;
FController.Pessoa.Build.Pesquisar(edtPesquisar.Text, DBGrid1);
end;
procedure TPagePessoas.btnSalvarClick(Sender: TObject);
begin
try
try
if cbTipo.ItemIndex = 0 then
FController.Pessoa
.TipoCadastro('Fornecedor')
else if cbTipo.ItemIndex = 1 then
FController.Pessoa
.TipoCadastro('Parceiro Agrícola')
else if cbTipo.ItemIndex = 2 then
FController.Pessoa
.TipoCadastro('Cliente')
else
FController.Pessoa.TipoCadastro(EmptyStr);
FController.Pessoa
.Nome(edtNome.Text)
.DataNascReg(edtDataNascReg.Date)
.CpfCnpj(edtCPFCNPJ.Text)
.Cidade(edtCidade.Text)
.Bairro_Distrito(edtBairro.Text)
.Estado(edtEstado.Text)
.Telefone(edtTelefone.Text)
.Email(edtEmail.Text);
if cbAtivo.ItemIndex = 0 then
FController.Pessoa.Ativo('S')
else if cbAtivo.ItemIndex = 1 then
FController.Pessoa.Ativo('N')
else
FController.Pessoa.Ativo(EmptyStr);
FController.Pessoa
.DataInicio(edtDataInicio.Date)
.DataFim(edtDataFim.Date)
.Build
.Inserir;
ShowMessage('Pessoa cadastrada com sucesso!');
except
on E: Exception do
raise Exception.Create('Não foi possível cadastrar a pessoa: ' + E.Message);
end;
finally
end;
inherited;
end;
procedure TPagePessoas.cbTipoChange(Sender: TObject);
begin
inherited;
if cbTipo.Text = 'Parceiro Agrícola' then
grpVigencia.Visible :=True
else
grpVigencia.Visible := False;
end;
procedure TPagePessoas.edtCPFCnpjKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
If not( key in['0'..'9',#08] ) then
key:=#0;
end;
procedure TPagePessoas.edtTelefoneKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
If not( key in['0'..'9',#08] ) then
key:=#0;
end;
procedure TPagePessoas.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
FDataSource.Free;
end;
procedure TPagePessoas.FormCreate(Sender: TObject);
begin
inherited;
FController:= TController.New;
FDataSource := TDataSource.Create(nil);
end;
procedure TPagePessoas.FormKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key =#13 then
begin
Key:=#0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
end. |
|
Voltar ao Topo |
|
 |
rodrigoprado Colaborador

Registrado: Terça-Feira, 24 de Mai de 2005 Mensagens: 1074 Localização: Curitiba/PR
|
Enviada: Qua Ago 30, 2023 4:06 pm Assunto: USando um FDMemTable |
|
|
Código: |
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet, FireDAC.Comp.Client, Data.DB;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
FDataSet: TFDMemTable;
FDataSource: TDataSource;
FGrid: TDBGrid;
procedure CriarObjetos;
procedure DestruirObjetos;
procedure CriarCamposDataSet;
procedure CarregarDataSet;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CriarObjetos;
begin
FDataSet := TFDMemTable.Create(nil);
FDataSource := TDataSource.Create(nil);
FDataSource.DataSet := FDataSet;
FGrid := TDBGrid.Create(nil);
FGrid.DataSource := FDataSource;
FGrid.Parent := Form1;
FGrid.Align := alBottom;
end;
procedure TForm1.DestruirObjetos;
begin
FDataSet.Free;
FDataSource.Free;
FGrid.Free;
end;
procedure TForm1.CriarCamposDataSet;
begin
FDataSet.FieldDefs.Add('Codigo', ftInteger);
FDataSet.FieldDefs.Add('Descricao', ftString, 20);
FDataSet.CreateDataSet; //FDataSet.Open;
end;
procedure TForm1.CarregarDataSet;
var I: integer;
begin
for I := 0 to 4 do
FDataSet.AppendRecord([1, 'Registro ' + IntToStr(I)]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CriarObjetos;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DestruirObjetos;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
CriarCamposDataSet;
CarregarDataSet;
end;
end.
|
_________________ - Compartilhe seus conhecimentos -
Editado pela última vez por rodrigoprado em Qua Ago 30, 2023 4:10 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
rodrigoprado Colaborador

Registrado: Terça-Feira, 24 de Mai de 2005 Mensagens: 1074 Localização: Curitiba/PR
|
Enviada: Qua Ago 30, 2023 7:01 pm Assunto: ou com um ObjectList |
|
|
Código: |
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet, FireDAC.Comp.Client, Data.DB
,System.Generics.Collections;
type
TPessoa = class
private
FCodigo: integer;
FNome: String;
public
constructor Create(const Codigo: integer; const Nome: String); overload;
constructor Create; overload;
property Codigo: integer read FCodigo write FCodigo;
property Nome: String read FNome write FNome;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
FDataSet: TFDMemTable;
FDataSource: TDataSource;
FGrid: TDBGrid;
FListaPessoa: TObjectList<TPessoa>;
procedure CriarObjetos;
procedure DestruirObjetos;
procedure CriarCamposDataSet;
procedure CarregarDataSet;
procedure CarregarPessoa;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CriarObjetos;
begin
FDataSet := TFDMemTable.Create(nil);
FDataSource := TDataSource.Create(nil);
FDataSource.DataSet := FDataSet;
FListaPessoa := TObjectList<TPessoa>.Create;
FGrid := TDBGrid.Create(nil);
FGrid.DataSource := FDataSource;
FGrid.Parent := Form1;
FGrid.Align := alBottom;
end;
procedure TForm1.DestruirObjetos;
begin
FDataSet.Free;
FDataSource.Free;
FGrid.Free;
FListaPessoa.Free;
end;
procedure TForm1.CarregarPessoa;
var
I: integer;
//Pessoa: TPessoa;
begin
for I := 1 to 3 do
begin
{Pessoa := TPessoa.Create;
Pessoa.Codigo := 1;
Pessoa.Nome := 'Pessoa ' + IntToStr(I);
FListaPessoa.Add(Pessoa);}
FListaPessoa.Add(TPessoa.Create(I, 'Pessoa ' + IntToStr(I))); // Pode usar assim tb
end;
end;
procedure TForm1.CriarCamposDataSet;
begin
FDataSet.FieldDefs.Add('Codigo', ftInteger);
FDataSet.FieldDefs.Add('Nome', ftString, 20);
FDataSet.CreateDataSet; //FDataSet.Open;
end;
procedure TForm1.CarregarDataSet;
var Pessoa: TPessoa;
begin
for Pessoa in FListaPessoa do
begin
FDataSet.Append;
FDataSet.FieldByName('Codigo').AsInteger := Pessoa.Codigo;
FDataSet.FieldByName('Nome').AsString := Pessoa.Nome;
FDataSet.Post;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CriarObjetos;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DestruirObjetos;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
CarregarPessoa;
CriarCamposDataSet;
CarregarDataSet;
end;
constructor TPessoa.Create(const Codigo: integer; const Nome: String);
begin
FCodigo := Codigo;
FNome := Nome;
end;
constructor TPessoa.Create;
begin
inherited;
end;
end.
|
_________________ - Compartilhe seus conhecimentos - |
|
Voltar ao Topo |
|
 |
thaita Novato

Registrado: Sábado, 26 de Novembro de 2022 Mensagens: 44
|
Enviada: Sex Set 01, 2023 1:28 pm Assunto: Como mostrar 03 campos de uma tabela na DBGrid, RESOLVIDO |
|
|
OBRIGADO |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|