中国式树型报表--水晶报表

样式

部门名称         级别                   分类
    -----------------------------------------------
                  |                           |                   |     内容
                  |                           |     分类一      |------------
                  |                           |                   |     内容
                  |         A                 |---------------------
                  |                           |                   |     内容
                  |                           |     分类二    |------------
                  |                           |                   |     内容
        ***     |--------------------------------------
                  |                           |                   |     内容
                  |                           |     分类一      |------------
                  |                           |                   |     内容
                  |         B                 |---------------------
                  |                           |                   |     内容
                  |                           |     分类二      |------------
                  |                           |                   |     内容
    ----------------------------------------------

使用水晶报表的解决方法:

如果部门,类别,等级没有垂直方向居中的要求,只需要按部门,等级,类别插入三个分组,并依次在组页眉1,组页眉2,组页眉3,详细资料区放入从长到短四个线条,如下:
________________
        ____________
                ________
                        ____
再去部门,类别,等级进行格式式控制,在公用选项中的拟止显示复选框右边加上脚本,比如对类别的控制:
if   RecordNumber=1   then
formula   =false
else
if   {table.类别} <>   PreviousValue   ({table.类别})   then
formula=false
else
formula=true
end   if
end   if
最终的显示结果与你所发图相似,只是部门,类别,等级位置靠上。如果要求对部门,类别,等级三个字段显示居中,那么就要用公式字段对部门,类别,等级字段的显示位置进行判断,同样处理拟止显示,当前记录在当前分组的合计除2的位置显示,如下
dim   x   as   number
if   {table.部门}   mod   2=0   then
x={table.部门}\   2
else
x=   {table.部门}\2   +1
end   if
if   RecordNumber   =x   then  
formula   =false
else
formula=true
end   if
对类别,等级的判断相对要复杂些。

posted @ 2011-04-02 10:29  DotNet菜园  阅读(515)  评论(0)    收藏  举报