您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SAPQuery_2
[分享]QuickViewer和SAPQueryQuickViewer和SAPQuery是两种不同的创建SAP报表的工具,是SAP专门提供给没有任何ABAP背景的用户使用的。当然懂得ABAP的人也可以使用。他们有许多的不同之处:1.QuickViewer只能用来创建最基本的报表,而SAPQuery可以用来创建各式报表;2.和SAPQuery相比,在定义QuickView时不需要指定用户组,而是每个用户创建的QuickView只能由其来更改。SAPQuery则不同,在指定的用户组内的用户都能够修改SAPQuery;3.在定义QuickView时不需要一定定义其InfoSets,你可以直接指定其数据源。透明表、数据库视图、联合表、逻辑数据库,甚至是InfoSets,都可以作为QuickView的数据源。4.QuickView使用各式控件,所以使用要QuickView的话对硬件软件都有一定的要求。5.QuickView并不是SAP系统的一个传输组件,不能够被直接传输至其他的系统/client。在这里,我们主要是针对第五点,怎样使QuickView能够被传输。我们需要将QuickView转化为SAPQuery,才能够被传输至不同的系统,不同的client.下面是一些主要的步骤和细节:1.使用事务代码SQVI创建QuickView。2.使用事务代码SQ01进入到SAPQuery的维护界面。根据SAP提供的步骤,我们需要选择菜单Query-ConvertQuickView来转化所创建的QuickView.但是我们会发现这个菜单项是被灰掉的,没法选中。为什么呢?3.在做上面步骤之前,请选择菜单Environment-Queryareas,这时会弹出一个选择窗口来,其中用两项选择:StandardArea(Client-specific)和GlobalArea(Cross-client).这两项是什么意思呢?从字面上我们知道StandardArea是与客户端相关的,只能在特定的客户端使用的;而GlobalArea是可以跨客户端的,也就是能够在不同的客户端使用的,可以在不同的客户端传输。默认的Query是可以在不同的客户端传输使用的,请改变这个选项,选择StandardArea(Client-specific)。这是因为我们的QuickView是与客户端相关的,只能够在特定的客户端使用,所以首先我们需要将QuickView转换为与特定的客户端相关的SAPquery.4.选定之后,在选择菜单Query-ConvertQuickView,这时该菜单能够被使用了。按照SAP提供的步骤做下去。在弹出的窗口中填写好将要生成的Query和InfoSet的名字。确定。这样就完成了。5.转换完成之后我们知道这个生成的Query和InfoSet还只是能够在该客户端使用的,他并没有生成传输请求以让我们传输。该怎么办呢??6.请在SAPQuery的维护界面选择菜单Environment-Usergroups.这样就到了Usergroup的维护界面了。7.选择菜单Environment-Transports,这样就到了SAPQuery的传输工具的界面,请选择必要的参数,填写所需要传输的Query、InfoSet和Usergroup,执行就能够产生传输请求。这样就可以被传输到其他的客户端了。8.传输到另外的系统后,QUERY还是需要在SQ01里面执行generatedprogram生成本地程序。QuickViewer对于开发人员来说,一般使用的比较少,所以有些需要注意的东西还是值得我们去探究的。1.quickviewerSQVI:2.querySQ01:2.1.先决定“查询区域”StandardArea(Client-specific)和GlobalArea(Cross-client).这两项是什么意思呢?从字面上我们知道StandardArea是与客户端相关的,只能在特定的客户端使用的;而GlobalArea是可以跨客户端的,也就是能够在不同的客户端使用的,可以在不同的客户端传输。2.2.建立“使用者群組”2.3.建立“infoset”2.4.将“infoset”分配给“使用者群組”2.5.建立“query”拖拽“汇总栏位”里面的栏位到“垃圾桶”去,可以去掉栏位汇总。2.6.assignuserID2.7.query的传输只有选择了“标准区域”才有下面的选项这个选项是产生TR的这个选项是现在成txt,然后再到其他client上传要挨个挨个下载、上传。3.权限管理:PFCG:手动加:S_TABU_DIS为SAPQuery创建TCode发布:2009-10-1115:09|作者:admin|查看:439次为SAPQuery创建TCode有两种方式,既可以直接使用程序名创建TCode,也可以通过参数创建TCode。一、使用程序名创建TCode1.SE93输入所需的TCode,需以字母Y或Z开头。2.输入描述,在StartObject页卡中选择第二个选项“Programandselectionscreen(reporttransaction)”。3.输入Query的程序名,勾选GUIsupport页卡的“SAPGUIforwindows”后保存即可。PS:查询Query程序名,SQ01→Query→MoreFunctions→DisplayReportName通过程序名创建事务代码,是一种十分方便的方式,但它存在一定的风险,因为在不同的System中,两个不同的Query的程序名有可能相同,同一個的Query的程序名在不同的systerm有可能不同,那么程序在系统中传输的时候,有可能产生错误。SE93:维护事务代码SE93:选择ProgramandSelectionScreen(ReportTransaction)SE93:在Program字段输入Query所对应的程序名Query注意事項:1.query要選通用區域,才能傳輸2.Query的傳輸:-通用區域會產生TR,如沒有產生,則“更改套件”3.包TCODE不要用query產生的程式名稱去產生,要用參數的方式產生,見下面的介紹:使用此种方法创建Query的TCode,需要填入Query所属的UserGroup以及QueryName等3个字段,以及对应关系。D_SREPOVARI-REPORTTYPE:AQD_SREPOVARI-REPORT:UserGroup+空格(UserGroup与空格相加应为12位)+G(G应为第13位,代表GlobalArea)D_SREPOVARI-EXTDREPORT:QueryName如有必要,也可以为事务代码指定变式:D_SREPOVARI-VARIANT。SE93:选择TransactionwithParameters(ParameterTransaction)在DefaultValuesfor页卡下,Transaction字段填入“START_REPORT”,并勾选“SkipInitialScreen”。SE93:为Query创建TCode20100826備注:標準區域(用戶端特定)產生的程式名稱會帶上client,EX:AQ60ZPP=========ZPPT0006======,所以不能用程式包TCODE。通用區域(跨用戶端)產生的程式名稱就會統一帶上ZZ,不管在DEV還是PRD,EX:AQZZZPP=========ZPPT0006======,所以可以用程式包TCODE。Query写代码:举例说明:毛重-净重,且建立日期201001011.定义附加栏位DIFF2.该附加栏位的code(简单的就直接点code按钮)如果是要去串其他table,就需要写更复杂的代码:下面是一个例子每个item,点击EX:BERKZ代表additionalfiedSTOP-IDNRK代表STOP这个structure里面的栏位IDNRK最后这个有点特别,wa是一笔一笔写入stas里面满足条件的最后一笔。然后把additionaldata里面的栏位都要做分配group#3.如果是要限定最后出来的结果,需要另外增加代码,限定建立日期20100101在query里面新增行的可能做法(业务需求,用户下一个条件进去EX:100颗料号,90个有建料号,10个没有建料号,那么我需要在query里面看到是哪10个没有建料号)在SQ02的5recordingprocessing里面塞资料到%datab里面去DATACOUNTERTYPEC.DATA:BEGINOFWA_MATNROCCURS100,MATNRTYPEMARA-MATNR,ENDOFWA_MATNR.DATA:BEGINOFWA_MARAOCCURS100,MATNRTYPEMARA-MATNR,ENDOFWA_MARA.BREAKAB_LEECH.COUNTER=1.BREAKAB_LEECH.field-symbolsdtabtypestandardtable.field-symbolsWAtypeany.***assign('%dtab')towa.assign('%dtab[]')todtab.ifcounter=1andCHECK='X'.SELECTMATNRINTOWA_MARAFROMMARAWHEREMATNRINS001.APPENDWA_MARA.ENDSELECT.LOOPATS001.WA_MATNR-MATNR=S001-LOW.APPENDWA_MATNR.ENDLOOP.SORTWA_MATNRBYMATNRascending.DELETEADJACENTDUPLICATESFROMWA_MATNRCOMPARINGALLFIELDS.LOOPATWA_MARA.DELETETABLEWA_MATNRWITHTABLEKEYMATNR=WA_MARA-MATNR.ENDLOOP.LOOPATWA_MATNR.move-correspondingWA_MATNRtowa.appendwatodtab.ENDLOOP.clearcounter.endif.效果Infoset里面栏位分组Infoset可以将栏位分组,也可以将栏位按照画面的顺序排列,也可以按照画面栏位的描述改变预设的栏位说明效果点击output运行Query里面改栏位的顺序Query里面修改栏位的描述在header处,点击鼠标,修改描述如果要删除栏位,在header的资料处选中要删除的栏位,再把它拖到垃圾箱里面去Setupdefaultqueryarea
本文标题:SAPQuery_2
链接地址:https://www.777doc.com/doc-13406 .html