Fórum Carregar dados de uma dbrid Form atual p/ outro formulário #145406

14/03/2003

0

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:


Anonymous

Anonymous

Responder

Posts

14/03/2003

Aroldo Zanela

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;



Responder

Gostei + 0

14/03/2003

Dr. Kill

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:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar