ReportPainter详解.docx
- 文档编号:10460595
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:17
- 大小:752.77KB
ReportPainter详解.docx
《ReportPainter详解.docx》由会员分享,可在线阅读,更多相关《ReportPainter详解.docx(17页珍藏版)》请在冰豆网上搜索。
ReportPainter详解
().报表绘制器ReportPainter
在谈ReportPainter前,做一个心理测试,假设你在肉摊市场发现一把锈刀,你会想到什么?
A.屠夫用过的杀猪刀.
B.疱丁用过的宰牛刀.
C.以上纯属扯淡,就一把普通得不能再普通刀.
啊,你选C?
肯定?
确定?
确信?
恭喜你回答正确,正确答案就是C,此类所谓的心理测试本来就是瞎扯淡的.
(1).基本概念.
如图1,在SPL菜单或相关信息系统目录下都可以找到Reportpainter的相关事务码,首先明白Reportpainter的几个基本概念
(1)报表绘制器(ReportPainter)和报表编写器(ReportWriter)
简单理解,ReportPainter是ReportWriter的升级版.
使用ReportPainter的GRR1制造报表比ReportWriter的GR31要简单的多,不信你使用GR31画几个报表出来看看.
(2).集(Set)
集(合):
顾名思义意思就是报表中用到的一些常量或变量的组合.
集的种类:
基本集|单维集|多重集|指标集.
注:
实际上,成本中心组利润中心组科目组等在建立后就会自动产生一个同名的基本集,如果该组下又有子组,则其自动成为单维集,它们的组类型分别是”成本中心组”,”利润中心组,”科目组”等,你可以使用KSH1建立一个成本中心组,然后使用GS03显示出这个基本集,然后再在该成本中心组下挂一个子组,则其又变成了单维集,其子组下面没有孙组,则该子组成了一个基本集,这些集可直接用在绘制报表中.简单理解,基本集只包括值和值间隔,单维集则包括基本集和其它单维集.
接下来还会有更详细描述集的使用.
(3).变量(Variable)
非常数动态取得的值就是变量,系统提供了三种变量:
值变量|集变量|公式变量.
(4).关键指标和基本关键指标
回顾下成本中心的计划格式(Tcode:
KP65-KP67),说,基本关键指标定义就是报表书写器的报告表中的值字段的技术描述,这些定义通常是由系统交付的,不能对其进行更改。
但可用附加选择条件把基本关键指标汇总到关键指标。
通常我们并不需要自定义关键指标和基本关键指标,如果你是首次接触Reportpainter,对这些概念还很陌生,可以先耐心等待一下,在接下来的自定义库时会有更详细描述,将一个比较难懂的技术问题弄成象家常红烧肉一样爽口正是我的专长.
(5).标准格式
一个报表有许多可用于控制报表输出格式的格式参数,通常无需为每个格式输入这些参数的全部,这样就可定义格式只显示所需要的报表参数。
你一定会记得,在做KP06|KP26等各种类型的计划都可定义格式,因为,字段有时也不是需要全部拉出来晒的.
(6).库
库定义了可在报表中使用的Reportwritetable,特征,基本关键指标和关健指标,ReportPainter的报表是基于某一个库的.
(7).报表和报表组
报表都需要包括在一个报表组中.
……
我讲到这里时,一个刺头用户过来了.
刺头用户:
屠哥,你可怜可怜我,别说这么多了,你比唐僧还能絮叨,我只不过想画几张报表而已,我听人家说ReportPainter这鬼东西用起来贼简单,怎么你讲起来却如涛涛江水连绵不绝…
老屠:
那怎么行?
哎,我老大不小啦,现在到处都有人在问:
屠夫老矣,尚能宰否?
你还年轻,将来挑起中国企业报表制作的重任就在你身上,屠宰这东西当然就要一宰到底,不能点到为止,所以俺一定要仔细说,你一定得认真听,现在消化一下,进入第二步,开始建立报表.
(2).报表建立
分步骤介绍一下建立报表,非常简单.
第一步:
建立库(T-code:
GR21|GR23)
系统已经提供了基本的库,通常并不需要自己建立一个库,如果你觉得非要自己买布去做一条”裤”也是可以的,毕竟,自做的”裤”头穿起来舒服些.
自定义的库可设置库所用到的:
I.Reportwritetable(Tcode:
GRCT)
II.特征
III.基本关键指标
IV.关键指标.
图1非常明显地表示了自定义库ST1包含了ReportWrite表CCSS,14个特征(在图1-[5]的Pos显示出),关键指标和基本关键指标,图1-[4]表示可为自定义库中的特征预设一个”缺省组”,这个组通常即一个集,这样在制造报表时就为该特征默认带出一个缺省集.
如果你细心,还能发现象GJAHR(会计年度)|WRTTP(值类型)|KOKRS(控制范围)|VERSN(版本)这些字段是灰色的,并且自动选择上了,就是说这些字段一定是库和报表所必须的特征字段,并且,在制造报表时这些特征一定要选择在任何一张报表上.
注:
这些特征必输状态是在GRCT中定义的,如接下来的图3,从逻辑上非常容易立即,CO报表当然必须得选择一个控制范围,除非你系统确实只有一个控制范围,你可以使用GRCT将控制范围设置为可选,CO提供了强大的计划和预算功能,通常我们会为这些计划或预算数据定义一个版本(Tcode:
OKEQN)以便和实际数据等区分,所以版本当然是必须的,CO数据的实际版本通常是Version0,但在实际数据中又通过WRTTP(值类型)分实际数据(WRTTP值类型4),实际统计数据(WRTTP值类型11)等等,所以WRTTP也是必选字段,这非常必要,一个实际业务,一笔费用只记入成本对象之一的成本中心,Ok,对成本中心来讲,值类型是4实际数据,如果该笔费用既记入该成本中心又记入一个实际内部订单,成本中心的值类型就是11实际统计了,这笔费用应该是成本对象内部订单承担,如果没有值类型区分,则成本中心费用报表就承担了两笔费用,显然这是错误的.
自定义库和报表的关系如何?
合成图2包含了自定义的库和报表(Tcode:
GR21|GRR1)两个操作截图,上半图是自定义库,下半图是制作报表.
图2中假设自定义库ST1,对应的ReportwritetableCCSS(CO模块使用),看看图中的3对箭头.
A.第1对箭头
图2-[2][6]:
库中自定义的特征正是制作报表时显示的可选择的”有效特征”.
B.第2对箭头
图2-[3][5]:
制作报表时选”指标含特征”后出现的”基本关键指标”正是库中定义的”基本关键
指标”.
C.第3对箭头
图2-[4][7]:
报表时选择”预定义的关键指标”显示的正是定义库时的”关键指标”.
到目前为止,相信你已了解了库和报表的关系.
注:
系统提供了多语言支持,如果中文环境建立的库在英文环境中使用时提示语言问题,可对直接SE16对T804I新增E,或者使用T-code:
GCRS也可以
什么是ReportWriteTable?
深入理解ReportWriteTable,输入Tcode:
GRCT,如图3.
如果你配置过使用自定义表的SPL或熟悉LIS系统,在GRCT中就能看到这些表,在激活SPL的过程中,Summarytable也就自动成了Reportwritetable,这样就可使用Reportpainter编制SPL报表,真TNND会集成,一个ERP系统应该有什么?
除了应该具备强大的业务实现功能外,还应该具备简单便捷的报表系统,我跟你讲,企业用户如果没有看到系统出来正确的报表你再怎么忽优用户也难于相信你的系统.
如果你愿意折腾,甚至可以自定义ReportWritetable.
图2-[1][4][5]:
特殊特征,在此设置了控制范围字段”KOKRS”的类型是”1”,必输,还有一些版本(Tcode:
OKEQN),值类型(决定是实际值,计划值还是统计值等)也是必输字段,这就是为什么你建立的报表这些字段是必选的原因,必输字段这个问题刚刚我已经分析过了.
图2-[2]:
系统设置的基本指标,对照你自定义库时的基本关键指标看看.
如有必要,无论是特殊特征和基本指标都可以使用自定义的增强例程.
图2-[3]:
可以看到ReportTableCCSS涉及的数据库表,这些COtable相信大家已经非常熟悉
了.到目前为止,你应该理解了什么是ReportWriteTable?
它无非是一些数据库物理层
的数据表|或结构和相关处理程序组合的一个”视图”.
小结:
Reportwritetable(报表编写器表)
报表基于库,库必须且只能包含一个Reportwritetable,虽然ReportPainter是报表ReportWriter的升级版,但报表编写器表这个词依旧延用.
有一个用户已经有仨顾问为其讲过什么是Reportwritetable,如何制造报表,他还是没弄明白怎么回事,最后俺想到一个高招,制报表这东西实际上类似小学生做作文,故同样采用小学的方法,罚该位老兄抄写什么是Reportwritetable250遍,同时罚做100个同样的报表,如果一周未完成任务则扣一月奖金,事实证明,果然奏效.
有一个用户,听了Reportpainter介绍后,大受启发,立即自己开发了一套报表工具,据说现在正热卖中,这就是用户和用户的区别.如果将Reportpainter看成是一个报表套件,你认为一个成熟的报表套件应该有什么功能?
比如提供报表模板|灵活的格式定制|报表间的数据追溯|提供关键指标(KPI)等等,说到关键指标,说说ReportwritetableCCSS中有一个基本关键指标叫SWOG->按成本货币的总成本(简体中文翻译,你可使用Tcode:
GRCT查看该关键指标),如果你恰好有过编写程序的经验,或者让你在数据库表层写个函数读取总成本,你觉得要如何写?
举个例子,如果是抓取某期间某科目的总成本,根据条件SUM一下返回总成本就行,如果是1-某期间(类似本年累计)某组科目某组成本中心的总计成本,也只涉及的期间科目成本中心3个特征,而理论上,可能是所有特征的各种组合下的总成本,所以这样的函数输入参数应该包含所有特征.
一行白鹭上青天,越扯越远了,回到正题,我举上面的实例在于让读者深入了解Reportwritetable,它是有多个数据库表(比如ReportwritetableCCSS,它几乎包含所有的CO业务交易表,还有非物理表的ABAP结构)和相关程序组成(比如上面所说的关键指标,我觉得叫报表指标更容易理解些,就包含有计算逻辑).
第二步:
集和变量(Tcode:
GS01|GS11).
有一次,我让下面的一个弟兄写一个详细的剖析集和变量的技术手册,该弟兄信誓旦旦的说“我保证,我以个人的名誉保证,我以我的人格保证,一定要彻底剖析这东西写个资料”,我回答说:
”你少来这套,你的个人名誉能买几两猪肉?
不要学人家贪官那样老套动不动就以D性担保这担保那的,没人会相信,拜托下次找个新鲜点的有点创意的保证理由.上个月俺让你跟踪一个问题,你也是保证说如果不掘地三尺将问题根本原因找出来你就提头来见我,结果我等的黄花菜都凉了几茬后问你结果,你倒好,愤愤然地跑出去,到外面找了只可怜的小蚂蚁,提着它的头来见我了”.
集(Set)分四种.
(1).基本集(BasicSets)
basicset下面没有子层次,它包括值和值间隔.
(2).单维集(Single-dimensionSets)
单维集可包含基本集或其它单维集,这样可以组成一个具有层次结构的多级单维集.
前面已经讲过成本中心组的例子,一个成本中心组如仅仅包括成本中心或间隔,就是一个基本集,如果其包含了下一层次的成本中心组,则该成本中心组就成了一个单维集了.
(3).多维集(Multi-dimensionsets)
多维集可包含来自不同维度(多个table的)的基本集和单维集,如图4.
(4).关键指标集(KeyFigureSets)
关键指标集表示可以用指标做值类型,系统预定义了基本指标,可在这些基本指标的基础上定义字表,只在报表中用.
图4显示的是一个系统自有的多维集,包括一个集变量0R-CCTR(对应成本中心组字段RCNTR)和一个基本集0R-RAWMAT.GLT1(原材料科目科目字段RACCT).
注意:
I.COmasterdata的成本中心(组),费用(组).IO(组),利润中心(组),科目组等当建立时都是一个单维集.
II.集变量,表示在建立变量时可建立集的变量.
III.集合这玩意还可用在象财务的validation|Substitution等(Tcode:
OB28|OBBH|OK17)中,比如可以判断先决条件BSEG-HKONTINZTUSZ时将做什么动作,只要使用GS01输入表BSEG|字段HKONT建立的集ZTUSZ包含判断的科目,避免Hard-code,如果科目发生变化,只要修改集ZTUSZ就行.
集合相关表:
SETHEADER:
SetHeaderandDirectory
SETHEADERT:
ShortDescriptionofSets(描述).
SETLEAF:
ValuesinSets
问成本中心组利润中心组建立后保存在什么地方?
就在以上这几个表中,有兴趣的可以好好看看这几个表.
变量分3种
(1).值变量
值变量很容易理解,比如你将公司代码设置成一个值变量而不是固定值,这样允许在报表中
由用户自己输入公司代码参数,可为值变量设置一个缺省值,请参考标准变量0BBUKRS(Tcode:
GS13).
(2)集变量
使用集合的变量,请参考变量0BRACCT(Tcode:
GS13).
(3).公式变量
假设Z国的期间先前于公历3个月,可以做这样一个期间变量ZGQJ,公式是’#S002’+3,S001,S002等是系统预定的获取会计年和月份的公式出口,这样如果期间选择了公式变量后,出现的将是图5-[4]的画面.由于在运行报表时的期间是2007/04,则系统自动出现的期间是04+3=07.
可使用一个名叫G_SET_FORMULA_EXIT的BAdI去做公式增强,如果你喜欢闹腾可以时试试可,今天就不玩这个了,请参考本书介绍BADI的相关章节.
第三步:
报表绘制
有人说中国的企业靠报表管理,所以ERP的报表系统起码应该包装的花稍些,
画报表非常简单,不需任何编程基础,拖拖拽拽,就象拖人力车,无它,体力活而已,本来象我这种老大不小年老体衰已不适合这种活儿,为了做个示范,我还是决定亲自做画个报表,如图7.
报表分析:
一.会计科目
4100180100修理费-直接材料(对应报表项目修理材料)
4100180200修理费-直接人工(对应报表项目修理人工)
4100180300修理费-外聘劳务(对应报表项目修理人工)
二.统计性内部订单
STRCWX:
ST’s一般日常维修统计性内部订单
STDJX:
ST’s大修理统计性内部订单.
根据新会计准则,生产部门发生的修理费用已不再进制造费用或生产成本(废除了制造费用一说?
)而是全部进入当期管理费用,维修费用发生时计入相关成本中心并且根据维修类别选择一般维修或大修理统计性内部订单。
三.功能范围
功能范围名称
0001管理费用
0002销售费用
0003制造费用
0004生产成本
0005辅助生产
报表的库选择刚才建立的库ST1,该库使用的ReportWriterTableCCSS,报表分三个主要部分.
A.一般数据选择,可走编辑菜单找到它,在此只能选择特征,被选择的特征对整个报表有效,所以可将控制整个报表的特征放在此,图9显示了报表的一般数据选择.
*“一般数据选择”不是必需的,就是说也可以不为”一般数据选择”设置任何特征,如果确实需要这样做,则那些必选特征应放在行列中。
B.行,由特征或公式组成
C.列,有基本关键指标|预定义关键指标或公式组成
如图8,报表分四列,列标题分别是管理部|生产部|销售部||合计,前3列都对应基本关键指标SWOG,特征值则分别选择功能范围0001(0001->管理费用)|0003-0005(0003->制造费用,0004->生产成本,0005->辅助生产),第4列合计则使用公式,如图10.
图9-[1]:
在格式化菜单中,选择行|列可以定义该行|列的格式,比如你可以定义某列的小数位显示.
图9-[2]:
选择报表格式子菜单,出现报表格式设置菜单,典型得,可以设置象小数位显示,0金额是否不显示出等格式,读者可自己认真看看这些设置页.
图9-[3]:
一般数据选择,我们可以看到象会计年度,值类型,成本控制范围,期间,版本恰好也是ReportWriteTableCCSS设置的必输字段(请参考Tcode:
GRCT).
注意:
值类型选择的是11->统计实际值而非实际值->4,因为维修费用直接计入成本中心,所以内部
订单的金额就是统计值.
图10-[1][2]:
第4列合计使用公式行,等于前3列之和.
*在ReportPainter的公式组件中,列标识以X开头,行标识则以Y开头.
如图11,在定义列要素时有三种选择,象例中的这个报表,选择的指标是SWOG,特征是功
能范围,选择一个预定义的关键指标后,这个东西类似所谓的报表指标,正是系统预先定义的
指标和一些相应特征之组合,如果是公式列,选择公式.
图12-[1]是第1行直接材料(日常)的被选择特征,包括成本要素4100180100(修理费-直接材料)和统计性内部订单(STRCWX).
图12-[3]:
则是日常维修合计的公式行.
同样完成大检修行的特征设置,至此,一个报表就初步完成了,非常简单.
我们的维修报表是分月计和累计的,比如管理部门,则需分拆两列,一列是月计,一列是本年累计,如图13,我们注意到被选特征不再仅仅是功能范围,而且包含了期间,对月计列,使用变量ZQJ,对(本年)累计列则是从第1期间到当前期间(ZQJ).
小计合计加总计总算出来了,最后,细心的读者会发现,报表的列格式只有一行,格式有点不对,哎,这个破Reportpainter就是这样烂,出中国式的报表格式确实不大好使.
注:
期间选择不再是对所有列相同,所以不能出现在一般数据选择中而是出现在各列,上面说过一般数据选择作用于报表的所有行列,回顾图9,如果一般数据选择中不包含任何特征,则这些实际上控制整个报表的特征必须一一被包行在各行列中,这是非常不方便的,所以才有了一般数据选择.
读者思考:
在中国式的财务报表中,一个报表中怎样同时体现上年同期数|年初数|本期数|本年累计
第四步:
制作事务码和报表追溯
制作Tcode
可以为报表制作一个Tcode,执行报表在出现的选择数据画面走菜单系统->状态->SAP数据->程序可看到报表程序的奇怪名称.然后使用SE93制作Tcode.
报表追溯
执行GRR2,系统提供了很多ReportExample,成本中心报表S_ALR_87013611,实际上也是reportpainter画的,可以追溯,非常方便,那么如何制作追溯呢?
如图14,首先你必须确定菜单设置->选项中的一般设置是否选择专家方式(如图14-[2]),这个设置菜单是动态的,如果没选择专家方式,就看不到图14-[3]的报表/报表界面,现在可以加上追溯界面了,如图14-[4],如果选择其它报告类型,就可为追溯界面选择象SAP查询,ABAP包,Tcode等,可以为一个报表定义多个多种类型的追溯界面.
读者思考
Report是如何将选择参数传递给其包括Query|ABAPprogram|Tcode追溯截面的?
答:
通过ParameterID.
(三).常见问题
1.如何传输报表?
Tcode:
GCTR
2.如何复制报表
•按“创建”按钮,如果从其他类似的表中复制,在“复制自”中输入要复制的表代码,但必须是一个库的中报表才可以复制
最后,需要强调的是,ReportPainter实际上是一个强大的报表开发环境!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ReportPainter 详解