在点DBGridEh1CellClick时触发数据显示在DBGridEh2里 现在我想在显示DBGridEh2的所有数据前加一个复选框,要怎样加?谢谢先
结果如下:复选框       中国   英国
-------------------------
  □           1      5
  □           aa    cc
  □           ss     dd
  □           d      d如下语句:
procedure TForm17.DBGridEh1CellClick(Column: TColumnEh);
begin
    with ADOQuery1 do
  begin
Close;
SQL.Clear;
SQL.Add('select * from aa where a=:a ');
Parameters.ParamByName('a').Value  := trim(adoquery1.Fields[0].Value);
Prepared;
open;
dbgrideh2.columns[0].Width:=15;
dbgrideh2.columns[0].title.caption:='序号';
 end;
     end;

解决方案 »

  1.   

    在DBGridEh2中增加一列,其Checkboxes设置为true
      

  2.   

    DBGridEh2上找不到Checkboxes  在那个地方的?
      

  3.   

    双击DBGridEh,添加一列,设置checkboxes := True;
      

  4.   


    这样绑定后 触发的数据就无法显示的表格里了  请问怎样绑定数据 因为我语句是这样的
     
    SQL.Add('select * from aa where a=:a '); 
    Parameters.ParamByName('a').Value  := trim(adoquery1.Fields[0].Value); 
    Prepared; 
    open; 
    dbgrideh2.columns[1].Width:=15; 
    dbgrideh2.columns[1].title.caption:='序号'; 
      

  5.   

    首先,你的dbgrideh2中需要添加一列,用于显示checkbox,然后添加其它你需要显示字段的列,其fieldname设置为字段名,这样就ok了
      

  6.   

    fieldname  加不上字段 因为结果是dbgrideh2数据是由SQL语句产生的
      

  7.   


      self.DBGridEh1.Columns.Clear;
      self.ADOQuery1.Close;
      self.ADOQuery1.Connection:=self.ADOConnection1;
      Self.ADOQuery1.SQL.Clear;
      Self.ADOQuery1.SQL.Add('select * from Tzhk_czp');
      Self.ADOQuery1.Open;
      self.DBGridEh1.DataSource:=self.DataSource1;
      self.DataSource1.DataSet:=self.ADOQuery1;
      Self.DBGridEh1.Columns.Add.Checkboxes:=True;
      self.DBGridEh1.Columns.Add.FieldName:='bianhao';
      self.DBGridEh1.Columns.Add.FieldName:='renwu';
      self.DBGridEh1.Columns.Add.FieldName:='cou_item';这样就实现了
      

  8.   

    另外,如果dbgrideh里要显示的字段是固定的,可以先把adoquery写入sql语句,然后FieldName就可以选择了,然后将adoquery关闭,就可以了
      

  9.   

    我的不是固定的 Self.ADOQuery1.SQL.Add('select * from aaa where a=:a');
    所以绑不了
      

  10.   

    如果checkBox字段在数据库中没有对应的字段,是不可编辑的
      

  11.   


    以下字段可以显示了,但 dbgrideh2.columns[0].Width:=50;dbgrideh2.columns[0].title.caption:='选择';不生效的
    没有办法改变字段的名称??要怎么处理才好?    with ADOQuery2 do  begin
    DBGridEh1.Columns.Clear;
    Close;
    SQL.Clear;
    SQL.Add('Exec   applylist  :a  ');
    //rameters.ParamByName('a').Value  := Trim(Edit1.Text);
    Parameters.ParamByName('a').Value  := trim(adoquery1.Fields[0].Value);
    Prepared;
    open;
    DBGridEh2.DataSource:=DataSource2;
      DBGridEh2.Columns[0].Checkboxes:=True;
      DBGridEh2.Columns[1].FieldName:='quantity';
      DBGridEh2.Columns[2].FieldName:='apply_no';
      DBGridEh2.Columns[3].FieldName:='fitting_code';
      DBGridEh2.Columns[4].FieldName:='fname';
      DBGridEh2.Columns[5].FieldName:='queren_quantity';
      DBGridEh2.Columns[6].FieldName:='price';
      DBGridEh2.Columns[7].FieldName:='fqty';
     dbgrideh2.columns[0].Width:=50;
    dbgrideh2.columns[1].Width:=50;
    dbgrideh2.columns[2].Width:=150;
    dbgrideh2.columns[3].Width:=120;
    dbgrideh2.columns[4].Width:=200;
    dbgrideh2.columns[5].Width:=50;
    dbgrideh2.columns[6].Width:=50;
    dbgrideh2.columns[7].Width:=50;
    dbgrideh2.columns[0].title.caption:='选择';
    dbgrideh2.columns[1].title.caption:='序号';
    dbgrideh2.columns[2].title.caption:='申请单号';
    dbgrideh2.columns[3].title.caption:='物料代码';
    dbgrideh2.columns[4].title.caption:='物料名称';
    dbgrideh2.columns[5].title.caption:='确认数量';
    dbgrideh2.columns[6].title.caption:='单价';
    dbgrideh2.columns[7].title.caption:='库存';
      

  12.   

    找到原因了 但 Checkboxes不可能编辑???为什么?? 
    DBGridEh2.Columns[0].Checkboxes:=True;
     DBGridEh2.Columns[0].KeyList.Clear;
    DBGridEh2.Columns[0].KeyList.Add('1');
    DBGridEh2.Columns[0].KeyList.Add('0');