在一个DBGridEh控件中选中多行记录,现在要循环传选中多个记录的一个字段值给一个变量,该如何做。例如:选中多条客户记录,如何将选中记录的customer_id字段的值传给一个变量user_id。

解决方案 »

  1.   

    for i:=0 to dbgrideh.selectrows.count-1 do
    begin
      dbgrideh.datasource.dataset.gotobookmake(pointer(dbgrideh.selectrows[i]));
      do..........
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
      user_id: integer;
    begin
      if DBGridEh1.SelectedRows.Count>0 then
        with DBGridEh1.DataSource.DataSet do
          for i:=0 to DBGridEh1.SelectedRows.Count-1 do
          begin
            GotoBook(pointer(DBGridEh1.SelectedRows.Items[i]));
            user_id:=fieldbyname('customer_id').asstring;
            showmessage(inttostr(user_id));
          end;
    end;设置dgrowselect为true;
    dgmultiselect为true;
      

  3.   

    版主你能把这个控件给我发一份吗??我得邮箱是 [email protected] 谢了!!
      我的做法不知是否符合你的要求!!献丑了!( :
    Var
      User_id:String;  //假定是String型的
      i:Integer;
      j:Integer;//Customer_id 字段的编号
    begin
      For i:=0 to DbGridEh.selectedRows.count-1 do
      begin
        User_id:=DbGridEh.Field[j].Value;
        ShowMessage(User_Id);
      end;
    end;