ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

RESOLVIDO Como mostrar 03 campos de uma tabela na DBGrid,

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
thaita
Novato
Novato


Registrado: Sábado, 26 de Novembro de 2022
Mensagens: 43

MensagemEnviada: Ter Ago 29, 2023 5:08 pm    Assunto: RESOLVIDO Como mostrar 03 campos de uma tabela na DBGrid, Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
rodrigoprado
Colaborador
Colaborador


Registrado: Terça-Feira, 24 de Mai de 2005
Mensagens: 1074
Localização: Curitiba/PR

MensagemEnviada: Ter Ago 29, 2023 6:54 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
thaita
Novato
Novato


Registrado: Sábado, 26 de Novembro de 2022
Mensagens: 43

MensagemEnviada: Qua Ago 30, 2023 2:22 pm    Assunto: Como mostrar 03 campos de uma tabela na DBGrid, via código Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
rodrigoprado
Colaborador
Colaborador


Registrado: Terça-Feira, 24 de Mai de 2005
Mensagens: 1074
Localização: Curitiba/PR

MensagemEnviada: Qua Ago 30, 2023 4:06 pm    Assunto: USando um FDMemTable Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rodrigoprado
Colaborador
Colaborador


Registrado: Terça-Feira, 24 de Mai de 2005
Mensagens: 1074
Localização: Curitiba/PR

MensagemEnviada: Qua Ago 30, 2023 7:01 pm    Assunto: ou com um ObjectList Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
thaita
Novato
Novato


Registrado: Sábado, 26 de Novembro de 2022
Mensagens: 43

MensagemEnviada: Sex Set 01, 2023 1:28 pm    Assunto: Como mostrar 03 campos de uma tabela na DBGrid, RESOLVIDO Responder com Citação

OBRIGADO
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB