0

我需要从两个不同的 ListBox 中读取两个名称,并将这两个名称关联到 DataSet 中的注册表中。但是,在 DataSet 上,关系是由人的 ID 建立的,名称只是一个 LookUp。

在我脑海里:

第 1 步:读取姓名并获取人员 ID。

第 2 步:在导航器的事件 BeforeInsert 中,在相应列中插入 ID。

重要信息:

  • 该关系来自员工 ID 和经理 ID。

  • 我是德尔福的新手。

问题:

实现失败,因为 DataSet 与 ListBox 位于不同的单元中,我不知道如何在不更改项目的情况下解决此问题。

4

1 回答 1

1

将包含 的单元添加到具有 的单元DataSetimplementationuses 子句中ListBox。如果你TDataSetDataSet1一个TDataModule命名dmMyData的 in 中MyDataMod.pas,你会这样做(见我下面的注释):

unit Main;

interface
  uses Forms, ....

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
  protected
    procedure Button1Click(Sender: TObject);
  private
    ...
  public
    ...
  end;

implementation

uses
  MyDataMod;   // Use the actual unit name, of course

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (ListBox1.ItemIndex <> -1) then
    if (ListBox2.ItemIndex <> -1) then
    begin
      // Access the dataset however you need here
      dmMyData.DataSet1.Insert;
    end;
end;

注意当然,更好的方法是将数据与 UI 分离,并创建一个将员工和经理信息作为参数并在那里处理该信息的所有处理的过程。但是,这与您在此处提出的问题完全不同。

于 2013-04-03T22:12:21.937 回答