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;