关于GridControl的几点介绍
1. 它的功能类似与 Visual Studio .NET 2003自带的 DataGrid ,用于数据的客户端展示。开发者可以领用程序控制进行分页现实,分页方法在此不予介绍了。
2. 它与DataGrid的不同就在于其功能的非常强大,可以直接设计报表并可导出为Excel,Txt,Hmtl 格式。免去了再用其他控件设计报表的烦杂。
常用的几个对象
private DevExpress.XtraGrid.GridControl gridControl1;//整个数据容器
private DevExpress.XtraGrid.Views.BandedGrid.BandedGridView bandedGridView1;//显示容器
private DevExpress.XtraGrid.Views.BandedGrid.GridBand gridBand1;//用于设计表头
private DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn bandedGridColumn1;//用于数据项
之间的关系如下
gridControl1 包含 GridView ,BandedGridView,CarView 以及 AdvBandedGridView,其中bandedGridView又包含 GridBand 和 BandedGridColumn,下面本文以bandedGridView 为列作一使用介绍.
设计样图
步骤一:
将控件拖至设计窗体中,点击 Click here to change view 转换默认gridView为bandedGridView 样式,因为此样式可以给数据设计表头。
步骤二:
点击 Run Designer 进入设计界面入下图
步骤三:
图中 1 框选的按钮功能为添加 数据项bandedGridColumn1 ,根据字段的多少进行添加,
每个字段对应一个数据项。
步骤四:图中 3框选的按钮功能为添加 表头gridBand1,根据需要的数据进行添加。
步骤五:
添加完数据项和表头就需要进行样式设计,即图中2框选的按钮功能。可以自由的进行表头拖动合并,仅需鼠标即可完成,十分方便快捷。如果在字段数量较大的情况,建议使用程序进行控制,因为过多的字段在有限的屏幕中很难控制。
设计过程中gridBand1的放置在表头最底层上bandedGridColumn进行一一对应。为了不显示bandedGridColumn名称,可将属性中的Caption 设置为空字符即一个空格。
代码控制片段
oracleConnection conn = null;
oracleCommand command = null;
try
{
conn = DBConnection.GetConnection();
command = new oracleCommand(m_query_elqc_sql,conn);
oracleDataAdapter oraAdapter = new oracleDataAdapter(command);
DataSet ds = new DataSet();
oraAdapter.Fill(ds);
if(ds.Tables.Count < 1 ) return ;
DataTable dt = ds.Tables[0];
gridControl1.DataSource = dt;
//绑定数据
gridColumn1.FieldName = dt.Columns[0].ColumnName;
gridColumn2.FieldName = dt.Columns[1].ColumnName;
gridColumn3.FieldName = dt.Columns[2].ColumnName;
gridColumn4.FieldName = dt.Columns[3].ColumnName;
gridColumn5.FieldName = dt.Columns[4].ColumnName;
gridColumn6.FieldName = dt.Columns[5].ColumnName;
gridColumn7.FieldName = dt.Columns[6].ColumnName;
gridColumn8.FieldName = dt.Columns[7].ColumnName;
gridColumn9.FieldName = dt.Columns[8].ColumnName;
gridColumn10.FieldName = dt.Columns[9].ColumnName;
gridColumn11.FieldName = dt.Columns[10].ColumnName;
gridColumn12.FieldName = dt.Columns[11].ColumnName;
gridColumn13.FieldName = dt.Columns[12].ColumnName;
}
finally
{
conn.Close();
}
如果需要通过代码进行表头和数据项的设计,可参阅“Windows 窗体设计器生成的代码”中自动生成的方法.
导出报表
仅需如下一步即可完成
this.gridControl1.ExportToExcel(m_savefilename);
存在的不足
1 字段过多不易显示
2 导出报表后字体的样式和表头的背景颜色丢失