Delphi dxDBGrid显示不定字段的表

dxDBGrid是Dev Express 控件库里优秀的表格显示控件,并可搭配 dxComponetPrinter 全自动生成报表供打印。

dxDBGrid对固定字段的表显示起来是很方便的,可以设置表格样式,多选,任意字段排序,筛选。但是对于不定字段数的数据表,在设置时较难确定各字段的显示位置及方式等。

以下代码演示从数据库中取出表的内容,然后根据实际取得的字段构造dxDBGrid的显示内容。

procedure TForm1.btn1Click(Sender: TObject);
var
  i:integer;
begin
  qry1.SQL.Clear; //qry1为 TQuery 或 TADOQuery。下面的 dg 为 dxDBGrid控件
  with qry1 do
  begin
    SQL.Add('select * from pb_emply'); //要执行的SQL语句
    try
      open;
      dg.BeginUpdate; //设为更新状态,这样可以避免在字段数较多时,dxDBGrid显示闪烁的问题
      dg.DestroyColumns; //清空以前的显示字段
      for i:=0 to dg.DataSource.DataSet.FieldCount -1 do //逐项处理数据库返回的数据集
      begin
        with dg.CreateColumn(TdxDBGridMaskColumn) as TdxDBGridMaskColumn do //dxDBGrid添加字段。默认使用TdxDBGridMaskColumn类型。可以根据需要使用其他类型
        begin
          FieldName := dg.DataSource.DataSet.Fields[i].FieldName;//将新建出的字段绑定数据集里的字段
          HeaderAlignment := taCenter; //设置对齐方式
          Width := 90;
        end;
      end;
      dg.KeyField :='devicesysid';//设置dxDBGrid的关键字段。一定要设,随便哪个字段名称都可以,否则不出数据
      dg.EndUpdate; //更新状态结束
    except
    end;
  end;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值