如何利用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();
  }

原创粉丝点击