表数据:
f1       f2       f3 .......字段数据省略类型1   10.1      12.0
类型1   11.1      13.0
类型1   12.1      14.0
类型2   13.1      15.0
类型3   14.1      16.0
类型4   15.1      17.0
类型4   16.1      18.0
怎么实现在报表中显示的是:----------------------------------------------------------
      |10.1   |   12.0|....字段数据省略
类型1 |11.1   |   13.0|....
      |12.1   |   14.0|....
----------------------------------------------------------
类型2 |13.1   |   15.0|....
----------------------------------------------------------
类型3 |14.1   |   16.0|....
----------------------------------------------------------
类型4 |15.1   |   17.0|....
      |16.1   |   18.0|....
----------------------------------------------------------
一直在捆饶着我的了,之前也有这个需求的,但是我使用分组,分组的条件字段是f1
但是这样默认的格式是:
----------------------------------------------------------
类型1
----------------------------------------------------------
10.1   |   12.0
----------------------------------------------------------
11.1   |   13.0
----------------------------------------------------------
12.1   |   14.0
----------------------------------------------------------
类型2
----------------------------------------------------------
类型2数据....
----------------------------------------------------------
类型N
----------------------------------------------------------
类型N数据..
.
.
.
但是这个方式看的时候不直观。客户需要第一个图那样的,怎么实现?帮帮忙。

解决方案 »

  1.   

    select distinct f1,f2,f3 from table group by f1,f2,f3
      

  2.   

    select distinct f1,f2,f3 from table group by f1,f2,f3
    那么在报表上那些“类型N”怎么写进去?而且类型个数没有限定!!!!
      

  3.   

    kao, 我怎么老是看到 wangsaokui(无间道III(MSMVP)) 在瞎说啊你有没有看明白题意啊to zly1980(zly1980) 你要的这种样子的显示是需要表格控件支持的不要使用 Grid, 试试第三方的表格,比方 UltraGrid 这种
      

  4.   

    找那种支持 CellSpan的表格基本上就可以
      

  5.   

    偷懒的办法:在输出报表的时候输出到 Excel中,在excel中有将单元格合并的命令函数。
    而且将报表输出到Excel中用户一般也不会提出什么太大的问题。
      

  6.   

    水晶报表我不太会,但用编程的方式来实现的话,你用两个变量,一个来用存放'类型n',一个用来存放类型n的数据个数,然后跟据个数来判断'类型n'的位置.用这种方式:
    类型1
    ----------------------------------------------------------
    10.1   |   12.0
    ----------------------------------------------------------
    11.1   |   13.0
    ----------------------------------------------------------
    12.1   |   14.0
    ----------------------------------------------------------不行吗?
      

  7.   

    如果是使用DataGrid(vs2003)或GridView(2005),在相关控件的DataBound事件中这样写就行了。protected void gridViewUserFunctionsList_DataBound(object sender, EventArgs e)
        {
            GridView gridView = (GridView)sender;
            int count = gridView.Rows.Count;
            for (int i = 0; i < count - 1; i++)
            {
                int colnum = 1;
                int j;
                for (j = i + 1; j < count; j++)
                {
                    //Cells就是标记你想合并的列
                    if (gridView.Rows[i].Cells[0].Text == gridView.Rows[j].Cells[0].Text)
                    {
                        colnum++;
                        gridView.Rows[i].Cells[0].RowSpan = colnum;
                        gridView.Rows[j].Cells[0].Visible = false;
                    }
                    else
                    {
                        break;
                    }
                }
                i = j - 1;
            }
        }