如何利用DataGrid控件做些花样的东西

原创 2007年10月06日 21:49:00

  报表类网站项目开发过程中,往往需要利用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();
  }

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Silverlight中DataGrid控件动态生成列并结合DataPager进行分页

1、准备一个实体类 view plaincopy to clipboardprint? using System;  using System.Collections.Generi...

WPF数据处理控件DataGrid :CRUD操作入门经典

前几天打算尝试下DataGrid的用法,起初以为应该很简单,可后来被各种使用方法和功能实现所折磨。网络上的解决方法太多,但也太杂。没法子,我只好硬着头皮阅览各种文献资料,然后不断的去尝试,总算小有成果...

Datagrid控件

RDIFramework.NET框架Web中datagrid与treegrid控件自动生成右键菜单与列标题右键菜单

在实际应用中常可以看到数据展示控件有右键菜单的功能,对应的列标题也可以右键弹出快捷菜单设置指定列的显示与隐藏等功能。在我们的RDIFramework.NET Web框架中,只要是使用了EasyUI的D...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)