时间:2017-2-16来源:本站原创作者:佚名

*****************************************************************************************

系统字段篇——STRUCT:SYST*****************************************************************************************SY-SUBRC:语句执行后的返回值,0表示成功SY-DATUM:当前服务器日期SY-UZEIT:当前服务器时间SY-ULINE:长度的水平线SY-VLINE:垂直线SY-INDEX:循环说执行的次数SY-TABIX:内表循环的次数SY-DYNNR:当前Screen号SY-MANDT:当前登录的Client号SY-STEPL:返回当前操作的屏幕行号(TableControl)SY-LOOPC:当前表格控件在屏幕中的总行数(TableControl)SY-UCOMM:PAI所出发的功能代码SY-DYNNR:当前屏幕号SY-MSGID:MessageClassSY-MSGNR:MessageNumberSY-MSGTY:MessageTypeSY-MSGV1~4:MessageVariantSY-LINCT:REPROT语句中设定的LINE-COUNTSY-LINSZ:REPROT语句中设定的LINE-SIZESY-SROWS:当前窗口的列表行数SY-SCOLS:当前窗口的列表栏目数SY-PAGNO:当前页的页码SY-LINNO:当前选定行的行号SY-COLNO:当前选定列的列号SY-LSIND:当前列表索引,第一级列表为1SY-LILLI:选择某行时光标行位置SY-CUROW:选择某行时光标列位置*****************************************************************************************Dynpro篇——SE80*****************************************************************************************1.在PAI中,ok_code需要及时赋值给另外一个变量,并立即clear,随后对新的那个变量来case2.屏幕调用(1)SETSCREENnext_screen_number:指定当前屏幕的后续屏幕,在PAI中静态指定的后续屏幕将暂时被覆盖(2)CALLSCREENscreen_number:挂起当前屏幕,进入新的屏幕或事务(即插入新的屏幕流)。CALLTRANSACTIONtcode在新的屏幕中,通过LEAVESCREENTOSCREEN0即可返回挂起的屏幕序列上(3)LEAVESCREEN:未完成当前屏幕控制流就要转入后续屏幕(4)LEAVETOSCREENscreen_number:未完成当前屏幕即进入指定的屏幕或事务LEAVETOTRANSACTIONtcode(5)SETSCREEN0,LEAVESCREEN或LEAVETOSCREEN0:终止当前屏幕3.MODULEmodule_nameATEXIT-COMMAND:只能在PAI中使用,会由于以/E开头或者E型的function而触发(一般就是Back、Exit、Cancel)4.FIELDfield_nameMODULEmodule_name:可以对field执行所指定的module5.TableControl的数据源如果来自多张表则可以自定义一个workarea6.要让TableControl能够拥有行选择的能力,可以在导航中指定,需要workarea中有一个没有被选择显示的列*****************************************************************************************报表(1)——系统报表篇*****************************************************************************************1.报表类型:SAP核心系统及定制过程中已经存在的报表使用ABAP开发的报表使用其他系统工具(如SQPQuery)开发的报表2.QuickViewer——SQVI:提供形式不固定的Adhoc报表(非日常性的业务报表),是SAP提供给用户的最终系统中的一个简易报表生成工具(1)每个系统用户只能定义自己的QuickViews,其他系统用户不能共享该列表。因为它不是SAP传输系统中的一个组件3.SAPQuery——SQ01:较为复杂,涉及到用户组和功能区域。(1)开始查询后,SAP系统内部将根据Queryies中定义的列表字段自动生成一个内部程序,该程序读取数据源,处理并输出数据(2)SAPQuery具有管理功能,主要指数据源和用户组的分配,即设定功能区域和用户组,并将功能区域分配给各个用户组。其中功能区域代表查询数据源,即数据库表和其中的字段,往往参照逻辑数据库生成;而一个系统用户如果需要创建Queries,则该用户必须隶属于至少某一个由系统管理员预设定的用户组,并可以使用属于该用户组的功能区域。一个SAP系统用户可以使多个用户组的成员,功能区域和用户组是多对多的关系。Queries总是隶属于特定的用户组中特定的功能区域生成的,因而只有该用户组内部用户才能访问其中的Queries。如果某用户被分配置多个用户组,则该用户可以在用户组之间切换。因为Queries总是与相应的功能区域相关,所以,如果两个用户组都包含同一个功能区域而且某授权用户同时属于这两个用户组,这该用户可以将其中的Queries从一个用户组拷贝至另外一个用户组。(3)SAPQuery可以生成多种类型的列表:基本列表:可以为单行或多行,多行的基本类表还可以进行压缩统计列表、排序列表:要求列表中至少包含一个数值字段,且数据行数可能被压缩局部列表:一个Query中包含多个局部列表,而在打印过程中可以单独打印(4)不能有用户提供执行设计生成交互式列表,但在列表过程中提供一些标准的交互功能:如将生成列表传递至系统内部或外部的其他工具(Excel、ABCAnalysis等),并以图形的形式或者以交互表格的形式显示列表。4.QuickViewer和SAPQuery的区别(1)SAPQuery可以创建基本、统计和排序等格式的列表;而QuckViewer只能创建基本列表,不包含统计、排序等交互性(2)SAPQuery可以被多个用户共享,需要进行用户组和功能区域的设置,并可以在系统间传输;而QuickViewer是具有用户相关性的*****************************************************************************************报表(2)——报表设计概述篇*****************************************************************************************1.报表事件:INITIALIZATION:程序初始化,类似于C#中的窗体构造函数START-OF-SELECTION:选择开始事件(默认事件),在选择屏幕的处理结束后触发END-OF-SELECTION:选择结束事件,在所有逻辑数据库处理结束后触发,一般用于输出列表2.选择屏幕事件(在INITIALIZATION和START-OF-SELECTION之间触发):ATSELECTION-SCREENOUTPUT:选择屏幕的PBO事件ATSELECTION-SCREEN...:选择屏幕的PAI事件,有多个附加项3.逻辑数据库事件(在START-OF-SELECTION事件结束以后触发,用于选择并整理数据):GETnode...选择逻辑数据库中当前级别数据中的数据GETnodeLATE选择逻辑数据库中上一级别数据源中的数据4.列表事件(在所有报表过程事件和选择屏幕事件结束之后,开始触发列表事件)TOP-OF-PAGE:页眉,每个新页面开始时触发END-OF-PAGE:页脚,当前页面结束前触发AT-LINE-COMMAND:行选择控制,当用户选择某列表行时触发AT-USER-COMMAND:用户交互控制5.一般报表的触发过程:(1)1型程序开始时,LOAD-OF-PROGRAM触发,运行时环境将为该程序在应用服务器中分配程序上下文以及相关内存区域存储内表数据对象,接下来的程序流程将由ABAP运行时环境控制(ABAP处理器)(2)INITIALIZATION事件触发(3)如果有选择屏幕,则在每次屏幕输出之前触发ATSELECTION-SCREENOUTPUT,运行时环境将选择屏幕发送至显示服务器如果用户在选择屏幕中输入某些值后执行某些功能,系统将触发ATSELECTION-SCREEN事件,为用户提示消息信息等。整个过程由屏幕处理器和ABAP处理器交互处理,系统自动在其中进行切换(4)当用户按下Execute按钮后,系统回收对程序的控制,触发START-OF-SELECTION(5)如果有逻辑数据库,则触发GET和GETLATE。(6)最后将触发END-OF-SELECTION事件,此后系统运行时环境将控制交给显示服务器(7)列表输出过程中将触发TOP-OF-PAGE和END-OF-PAGE。当用户点击Back返回选择屏幕时,LOAD-OF-PROGRAM和INITIALIZATION不会触发(8)如果列表存在交互事件,则会在满足交互条件的时候触发。6.事件块的终止(以下语句除STOP外若存在于循环中,则仅跳出该循环)(1)STOP.终止当前事件块并跳转至END-OF-SELECTION;若在END-OF-SELECTION中有STOP则直接退出。(2)EXIT.离开所有事件块并转到列表输出页面(即EXIT之前已经被输出的内容)(3)CHECK.如果CHECK条件为假,则转到下一个事件块*****************************************************************************************报表(3)——选择屏幕篇*****************************************************************************************1.屏幕参数(1)INITIALIZATION事件处理之后,屏幕布局将被发送至显示服务器,初始化的值将被传送至同名字段(2)PARAMETERSnameTYPE

LIKEtype

dobj参数变量长度不超过8个字符参数格式:DEFAULTvalue:默认值,INITIALIZATION事件前填充,因此只有在此事件前已经确定的值才能作为默认值OBLIGATORY:设置为必须项LOWCASE:将参数设置为小写进行传递VISIBLELENGTHlen:设置可见显示长度,但可以输入超过所显示的长度的值MATCHCODEOBJECTs_help:分配查询帮助。s_help必须在数据字典中已经定义VALUECHECK:值检查。检查用户输入值是否符合该字段的约束表(CheckTable,一定要有)。NO-DISPLAY:隐藏显示。在SUBMIT调用过程中,可以通过该字段传递参数或在自定义选择屏幕被调用之前,对该字段赋值。但该字段已经不是屏幕字段,即使使用MODIFYSCREEN修改其属性,也不能在屏幕中显示MODIFIDkey:MEMORYIDpid:使用内存默认值。从SAP内存(用户相关的共有内存)中给参数字段分配默认值,SPA/GPA参数是SAP将屏幕元素填充初始数据的一种通用基本技术。其中pid是公用的SAP内存ID,最多20字节,可以使用SET/GET来设定和读取ASCHECKBOX:复选框。不可使用附加选项TYPE和LIKE,参数是长度为1的C类型,值为X(选中)或(未选中)RADIOBUTTONGROUPradi:单选按钮组,参数是长度为1的C类型,radi组名长度最大为4(3)SELECT-OPTIONSseltabFORf变量格式为ABBC(*)D(*)A:长度为1的C类型的SIGN字段,值为I(Include)或者E(Exclude)B:长度为2的C类型的OPTION字段,如果没有HIGH字段,值为EQ、NE、GT、LE、LT、CP和NP,后两者只有使用了通配符(*,+)才有效;如果有HIGH字段,则可使用BT(BETWEEN)和NB(NOTBETWEEN)C:F类型的LOW字段,定义下界D:F类型的HIGH字段,定义上界参数格式:除PARAMETER的参数外,还有一些其他的参数NO-EXTENSION:限定单行数据,移除多选按钮NOINTERVALS:单值选择,但用户仍然可以通过多选按钮来选择多值DEFAULTg[TOh][OPTIONop][SIGNs]:设定默认值,但只可指定一次(4)其他屏幕元素SELECTION-SCREENSKIP[n]:空n行(0n10)SELECTION-SCREENULINE[[/]pos(len)][MODIFIDkey]:给一行或行中的一部分加下划线。pos可以使用POS_LOW和POS_HIGH这两个系统常量之一,分别代表SELECT-OPTIONS语句的from和to在屏幕上的位置,最后一个选项把下划线分配给某个修改组key,该修改组可以用在ATSELECTION-SCREENOUTPUT事件中用于修改屏幕属性。SELECTION-SCREENCOMMENT[/]pos(len)







































北京治疗白癜风北京哪家医院好
北京白癜风价格是多少

转载请注明原文网址:http://www.gzdatangtv.com/jsyy/5787.html

------分隔线----------------------------