我想用C#做一个这样的报表,就是把列头分成两行两列,,上面一行是总,下面一行是分。就像上面一行是“总计划”,下面一行是“计划1”,“计划2”,像一个品字型这样,(我是菜鸟不会放图片,只能这样显示了,请各位高手见谅)。

解决方案 »

  1.   

    用DevExpress,可以轻松实现,记得给分哦.
      

  2.   

    什么报表控件:
    GridView合并表头多重表头无错完美版(以合并3列3行举例)后台代码:
    //这里就是解决方案
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            switch (e.Row.RowType)
            {
                case DataControlRowType.Header:
                    //第一行表头
                    TableCellCollection tcHeader = e.Row.Cells;
                    tcHeader.Clear();
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[0].Attributes.Add("rowspan", "3"); //跨Row
                    tcHeader[0].Attributes.Add("bgcolor", "white");
                    tcHeader[0].Text = "";
                    tcHeader.Add(new TableHeaderCell());
                    //tcHeader[1].Attributes.Add("bgcolor", "Red");
                    tcHeader[1].Attributes.Add("colspan", "6"); //跨Column
                    tcHeader[1].Text = "全部信息</th></tr><tr>";                //第二行表头
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[2].Attributes.Add("bgcolor", "DarkSeaGreen");
                    tcHeader[2].Text = "身份证号码";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[3].Attributes.Add("bgcolor", "LightSteelBlue");
                    tcHeader[3].Attributes.Add("colspan", "2");
                    tcHeader[3].Text = "基本信息";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[4].Attributes.Add("bgcolor", "DarkSeaGreen");
                    tcHeader[4].Text = "福利";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[5].Attributes.Add("bgcolor", "LightSteelBlue");
                    tcHeader[5].Attributes.Add("colspan", "2");
                    tcHeader[5].Text = "联系方式</th></tr><tr>";                //第三行表头
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[6].Attributes.Add("bgcolor", "Khaki");
                    tcHeader[6].Text = "身份证号码";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[7].Attributes.Add("bgcolor", "Khaki");
                    tcHeader[7].Text = "姓名";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[8].Attributes.Add("bgcolor", "Khaki");
                    tcHeader[8].Text = "出生日期";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[9].Attributes.Add("bgcolor", "Khaki");
                    tcHeader[9].Text = "薪水";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[10].Attributes.Add("bgcolor", "Khaki");
                    tcHeader[10].Text = "家庭住址";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[11].Attributes.Add("bgcolor", "Khaki");
                    tcHeader[11].Text = "邮政编码";
                    break;
            }
        }
    }
      

  3.   

    呵呵。。二楼的做得是我想要的效果了,不过那是在WEB下的。我现在是写C/S的,用的是DataGridView,在里面不知道怎么搞,嘿嘿。思路是会了,但里面的很多类我还没掌握,我刚学,你能帮看看用DataGridView做一个吗?谢了。
      

  4.   

    http://www.cnblogs.com/liuke209/archive/2006/07/29/463023.html
    http://www.cnblogs.com/neuhawk/archive/2006/10/24/538232.html
      

  5.   

    谢谢chagel的回答,虽然不是完全正确的答案,但在B/S里确实能实现,我在CSDN里的下载栏里搜到了这个DataGridView二维表头的实例了,大家可以去看看.相互学习:http://download.csdn.net/source/847575