Carregar dados de uma dbrid Form atual p/ outro formulário
Tenho um formulário chamado agenda. Neste formulário tenho um Dbgrid que armazena alguns dados. O código do paciente, bem como o seu campo lookup Paciente, terão que ir para outro formulário chamado confirmação de consulta. Obs. Irá para outro formulário a linha que for selecionado na Dbgrid. Deu para entender.
Obrigado. :wink:
Obrigado. :wink:
Anonymous
Curtidas 0
Respostas
Aroldo Zanela
14/03/2003
Tenho um formulário chamado agenda. Neste formulário tenho um Dbgrid que armazena alguns dados. O código do paciente, bem como o seu campo lookup Paciente, terão que ir para outro formulário chamado confirmação de consulta. Obs. Irá para outro formulário a linha que for selecionado na Dbgrid. Deu para entender.
Obrigado. :wink:
Ozias,
Quando você está navegando em uma ´dbGrid´ o cursor do banco de dados está rolando e apontado para os dados.
Então:
Quando você carregar o outro formulário, basta ´pegar´ os dados diretamente da tabela ou consulta. Se você estiver usando componentes ´Data-Aware´ no formulário ´chamado´ e com o datasource apontado para o ´chamador´ nenhum código é necessário.
Fiz um exemplo:
Crie uma nova aplicação e no form1, despeje o código abaixo via clipboard:
object DBGrid1: TDBGrid Left = 72 Top = 194 Width = 539 Height = 191 DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -11 TitleFont.Name = ´MS Sans Serif´ TitleFont.Style = [] OnDblClick = DBGrid1DblClick end object Table1: TTable Active = True DatabaseName = ´DBDEMOS´ TableName = ´biolife.DB´ Left = 74 Top = 96 object Table1SpeciesNo: TFloatField FieldName = ´Species No´ end object Table1Category: TStringField FieldName = ´Category´ Size = 15 end object Table1Common_Name: TStringField FieldName = ´Common_Name´ Size = 30 end object Table1SpeciesName: TStringField FieldName = ´Species Name´ Size = 40 end object Table1Lengthcm: TFloatField FieldName = ´Length (cm)´ end object Table1Length_In: TFloatField FieldName = ´Length_In´ end object Table1Notes: TMemoField FieldName = ´Notes´ BlobType = ftMemo Size = 50 end object Table1Graphic: TGraphicField FieldName = ´Graphic´ BlobType = ftGraphic end end object DataSource1: TDataSource DataSet = Table1 Left = 168 Top = 94 end
Crie um outro form e despeje o código abaixo:
object Label1: TLabel Left = 30 Top = 28 Width = 55 Height = 13 Caption = ´Species No´ FocusControl = DBEdit1 end object Label2: TLabel Left = 30 Top = 68 Width = 42 Height = 13 Caption = ´Category´ FocusControl = DBEdit2 end object Label3: TLabel Left = 30 Top = 108 Width = 75 Height = 13 Caption = ´Common_Name´ FocusControl = DBEdit3 end object Label4: TLabel Left = 30 Top = 148 Width = 69 Height = 13 Caption = ´Species Name´ FocusControl = DBEdit4 end object Label5: TLabel Left = 30 Top = 188 Width = 56 Height = 13 Caption = ´Length (cm)´ FocusControl = DBEdit5 end object Label6: TLabel Left = 30 Top = 228 Width = 48 Height = 13 Caption = ´Length_In´ FocusControl = DBEdit6 end object Label7: TLabel Left = 30 Top = 268 Width = 28 Height = 13 Caption = ´Notes´ FocusControl = DBMemo1 end object Label8: TLabel Left = 82 Top = 470 Width = 37 Height = 13 Caption = ´Graphic´ FocusControl = DBImage1 end object DBEdit1: TDBEdit Left = 30 Top = 42 Width = 64 Height = 21 DataField = ´Species No´ DataSource = Form1.DataSource1 TabOrder = 0 end object DBEdit2: TDBEdit Left = 30 Top = 82 Width = 94 Height = 21 DataField = ´Category´ DataSource = Form1.DataSource1 TabOrder = 1 end object DBEdit3: TDBEdit Left = 30 Top = 122 Width = 184 Height = 21 DataField = ´Common_Name´ DataSource = Form1.DataSource1 TabOrder = 2 end object DBEdit4: TDBEdit Left = 30 Top = 162 Width = 244 Height = 21 DataField = ´Species Name´ DataSource = Form1.DataSource1 TabOrder = 3 end object DBEdit5: TDBEdit Left = 30 Top = 202 Width = 64 Height = 21 DataField = ´Length (cm)´ DataSource = Form1.DataSource1 TabOrder = 4 end object DBEdit6: TDBEdit Left = 30 Top = 242 Width = 64 Height = 21 DataField = ´Length_In´ DataSource = Form1.DataSource1 TabOrder = 5 end object DBMemo1: TDBMemo Left = 30 Top = 282 Width = 185 Height = 89 DataField = ´Notes´ DataSource = Form1.DataSource1 TabOrder = 6 end object DBImage1: TDBImage Left = 82 Top = 484 Width = 105 Height = 105 DataField = ´Graphic´ DataSource = Form1.DataSource1 TabOrder = 7 end
Coloque o código no OnDblClick da dbGrid
Form2.ShowModal;
GOSTEI 0
Dr. Kill
14/03/2003
Se você esrtiver usando query faça o seguinte:
crie uma variável do tipo string para receber o valor da coluna selecionada.
ex:
colunaativa:string;
depois no botão que envia as informações para o outro cadastro faça o seguinte.
query.close;
query.sql.clear;
query.sql.add(´select campos da tabela where campodacolunaativa=´´+colunaativa+´ ´ ´);
query.open;
agora você faz o seguinte para todos os campos:
campodoformulário.text:=query.parambyname(´camposdatabela´).astipodocampo; :lol:
crie uma variável do tipo string para receber o valor da coluna selecionada.
ex:
colunaativa:string;
depois no botão que envia as informações para o outro cadastro faça o seguinte.
query.close;
query.sql.clear;
query.sql.add(´select campos da tabela where campodacolunaativa=´´+colunaativa+´ ´ ´);
query.open;
agora você faz o seguinte para todos os campos:
campodoformulário.text:=query.parambyname(´camposdatabela´).astipodocampo; :lol:
GOSTEI 0