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

  报表类网站项目开发过程中,往往需要利用DATAGRID控件做一些统计类的报表,如每日报表统计某日每个时间段每个工站的生产情况,每周报表统计该周每天每个工站的生产情况,每月报表统计该月每一天每个工站的生产情况,总之花样可能很多,但做法总结起来,其实很简单,以每周报表为例.

效果如下:

 星 期TotalPassFailTotalPassFailTotalPassFailTotalPassFail
星期一000110220330
星期二101211321431
星期三202312422532
星期四303413523633
星期五404514624734
星期六505615725835
星期日606716826936

  做法步骤:

  第一步:设计报表的格式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();
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值