如何利用DataGrid控件做些花样的东西
来源:互联网 发布:合工大宿舍网络怎么样 编辑:程序博客网 时间:2024/05/02 09:02
报表类网站项目开发过程中,往往需要利用DATAGRID控件做一些统计类的报表,如每日报表统计某日每个时间段每个工站的生产情况,每周报表统计该周每天每个工站的生产情况,每月报表统计该月每一天每个工站的生产情况,总之花样可能很多,但做法总结起来,其实很简单,以每周报表为例.
效果如下:
星 期 Total Pass Fail Total Pass Fail Total Pass Fail Total Pass Fail 星期一 0 0 0 1 1 0 2 2 0 3 3 0 星期二 1 0 1 2 1 1 3 2 1 4 3 1 星期三 2 0 2 3 1 2 4 2 2 5 3 2 星期四 3 0 3 4 1 3 5 2 3 6 3 3 星期五 4 0 4 5 1 4 6 2 4 7 3 4 星期六 5 0 5 6 1 5 7 2 5 8 3 5 星期日 6 0 6 7 1 6 8 2 6 9 3 6
做法步骤:
第一步:设计报表的格式Table:
private void InitTable()
{
//string [] strTableHead=new string [8];
//报表的第一列
strTableHead[0]="<table border='0' ,cellpadding='0',cellspacing='0' width='70',height='40'><tr><td align='center'>星期</td></tr></table>";
//报表的其他列
for(int i=1;i<5;i++)
{
strTableHead[i]="<table border='0' ,cellpadding='0',cellspacing='0' width='150',height='40'><tr><td align='center' colSpan='3'>第"+i.ToString()+"个工站</td></tr><tr><td align='center'>Total</td><td align='center'>Pass</td><td align='center'>Fail</td></tr></table>";
}
if(Table1==null)
{
Table1=new DataTable();
for (int i=0;i<5;i++)
{
Table1.Columns.Add(strTableHead[i]);
}
}
}
第二步:将要填充报表的内容存储到数组中storedata[i,j,3]中其中storedata[i,j,0]表示星期i+1第j+1个工站生产的总数.其中storedata[i,j,1]表示星期i+1第j+1个工站生产的Pass总数.其中storedata[i,j,2]表示星期i+1第j+1个工站生产的Fail总数.
for (int j=0;j<7;j++)
for (int m=0;m<6;m++)
{
storedata[j,m,0]=(j+m).ToString();
storedata[j,m,1]=m.ToString();
storedata[j,m,2]=j.ToString();
}
第三步:将数组中的内容绑定到Table,再设置datagrid控件的数据源为该Table就可以了.
private void BindTable(string [,,] storedata)
{
InitTable();
System.Data.DataRow row1=null;
for (int i=1;i<8;i++)
{
row1=Table1.NewRow();//新增一行
row1[strTableHead[0]]="<table border='0' ,cellpadding='0',cellspacing='0' width='70',height='40'><tr><td align='center'>星期"+i.ToString()+"</td></tr></table>";
string temp="";
for (int k=1;k<5;k++)
{
temp="<table border='1' cellpadding='0' cellspacing='0'><tr><td width='50' height='25' align='center'>"+storedata[i-1,k-1,0].ToString()+"</td><td width='50' height='25' align='center'>"+storedata[i-1,k-1,1].ToString()+"</td><td width='50' height='25' align='center'>"+storedata[i-1,k-1,2].ToString()+"</td></tr></table>";
row1[strTableHead[k]]="<table border='1' cellpadding='0' cellspacing='0'><tr><td width='50' height='25' align='center'>"+storedata[i-1,k-1,0].ToString()+"</td><td width='50' height='25' align='center'>"+storedata[i-1,k-1,1].ToString()+"</td><td width='50' height='25' align='center'>"+storedata[i-1,k-1,2].ToString()+"</td></tr></table>";
}
Table1.Rows.Add(row1);
}
System.Data.DataView source=null;
source=new DataView(Table1);
DataGrid1.DataSource=source;
DataGrid1.DataBind();
}
- 如何利用DataGrid控件做些花样的东西
- 05跨线程控件操做[别人好的东西]
- 利用UIAutomation做Sliverlight控件的自动化
- asp.net如何利用两个listbox控件做联动?
- 如何向别人介绍你做的东西
- 做东西的困惑
- 如何利用RadioButtonList实现datagrid列的单选
- 如何利用RadioButtonList实现datagrid列的单选
- 如何利用RadioButtonList实现datagrid列的单选
- 2016年的酷开是如何花样崛起的?
- 如何实现在DataGrid中实现DropDownList控件的联动
- Flex中如何创建自定义排序DataGrid控件的例子
- 关于DataGrid的一点基础东西
- asp.net编程利用Repeater控件做简单的留言板
- Java swing 做的东西
- 花样流水灯(利用C51实现多种花样)
- ReLU上的花样
- ReLU上的花样
- 无法结贴
- 探究X Window System运行原理与启动过程(zz)
- 补充:2-12
- 破解校内的图片识别码。
- 10.6
- 如何利用DataGrid控件做些花样的东西
- 海苔和紫菜有什么区别?
- 强制建筑+造小兵不花钱+炒兵赚钱.
- 特殊符号
- 文明的冲突与世界秩序的重建
- 十一作业
- 第一章 世界政治的新时代
- 网上找到一个用不同颜色显示表格奇偶行的例子
- first