收藏 分销(赏)

人力资源-abap内部培训资料.docx

上传人:xrp****65 文档编号:8486442 上传时间:2025-02-14 格式:DOCX 页数:206 大小:364.49KB
下载 相关 举报
人力资源-abap内部培训资料.docx_第1页
第1页 / 共206页
人力资源-abap内部培训资料.docx_第2页
第2页 / 共206页
点击查看更多>>
资源描述
公司内训资料(密) SAP最初开发ABAP/4(高级商业应用程序设计)语言仅为内部使用,为应用程序员提供优化的工作环境。经过不断的改进和修改以满足商业领域的需要。现在,ABAP/4已成为SAP开发所有自己的应用程序的仅有工具。 SAP客户用ABAP/4进行其自身开发。这样的开发对R/3标准解决方案适应特殊问题非常重要。ABAP/4开发工作平台包含所有用于创建和维护ABAP/4程序的工具。 ABAP/4的可解释特性使其易于生成、测试并运行程序的中级版本,以便将来生成最终版本。此过程也叫做早期原形处理,意味着您不必丢弃中级版本。 ABAP/4是第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。 在ABAP/4开发宝典中文版的第一部分,对ABAP/4的基本特性进行了详细描述。这些特性包括: · ABAP/4包括 - 带有各种类型和结构的声明数据的声明元素 - 数据制作的操作元素 - 控制程序流的控制元素 - 反应外部事件的事件元素 · ABAP/4支持多种语言。文本摘要(例如,标题、页眉和其他文本)将根据程序代码分别存储。您可以随时在不改变程序代码的情况下更改、转换和维护这些文本摘要。 · ABAP/4支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。 · ABAP/4提供一系列功能处理字符串。 · ABAP/4包含一个叫OpenSQL的SQL子集。用OpenSQL,您可以读取和访问数据库表,与所用的数据库系统无关。 · ABAP/4允许您定义和处理内部表,该表只在运行程序时存在。内部表使其更容易处理数据表,并帮助使用程序中的复杂数据结构。 · ABAP/4允许您定义和调用子程序。也可以调用其他程序的子程序。参数能够以各种方式从子程序传递或传递到子程序。 · ABAP/4包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。 这里有两种主要的ABAP/4程序类型: · 报表程序 报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。逻辑数据库是特殊的ABAP/4程序,使开发者不必编码所有的数据库访问。关于报表程序的详细信息,参见《ABAP/4开发宝典中文版》的第二部分。 · 对话程序 将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态程序”)都基于一个ABAP/4对话程序。流逻辑包含对ABAP/4对话模块的调用。关于对话程序的详细信息,参见《ABAP/4开发宝典中文版》的第三部分。 语法约定 本文档中涉及的语法语句约定如下: 关键字 定义 语句 关键字和语句选项大写。 <变量> 变量或代表所填入值的词用尖括号括起来。在所使用的值中不要包括角括号 (例外:字段符号) [] 方括号表明用户没有使用、使用一个或多个附加选项。在用户选项中不要 包括方括号。 | 两选项之间的竖条表明用户可以使用一个或另一个选项。 () 应将括号作为命令的一部分键入 , 逗号表示用户可选择多个选项,用逗号隔开,作为命令的一部分键入。 <f1><f2> 带索引的变量表明用户可列出多个变量。变量之间要采用与前两个一样的 符号隔开。 ....... 点号表明用户可在此处放置上下文中允许的任何东西。 在语法指令中,关键字大写,变量放进角括号中。在程序中键入关键字时可以忽略大小写。WRITE、Write和write完全一样。 输出屏幕上的输出或者采用屏幕弹出形式或者采用如下格式: Screen output. 第一部分 ABAP/4基础 第一章 创建简单的ABAP/4程序 本节描述如何创建简单的ABAP/4程序。了解如何创建ABAP/4程序将有助于了解本指南中的其它主题。 创建简单的ABAP/4程序涉及下列基本步骤: 1. 命名程序 2. 指定程序属性 3. 编写程序代码 4. 测试程序 本节也描述如何显示或更改现有程序以及如何从编辑器中启动程序。 此处描述的创建新ABAP/4程序的过程适用于报表和短培训程序。在开始编写报表程序之前,用户也许想先创建报表和短培训程序以熟悉ABAP/4语法。要为新事务创建模块存储,可以采用不同于报表程序的方式进行。关于如何为事务创建模块存储的详细信息,参见ABAP/4模块池。 关于ABAP/4编辑器和调试过程的详细信息,参见文档ABAP/4工作台工具。 本节讲述下列主题: 一、命名程序 要创建ABAP/4程序,请进行如下操作: 1. 在“SAPR/3”初始屏幕上选择“工具->ABAP/4工作台”。 出现“ABAP/4开发工作台”屏幕 2. 选择“ABAP/4编辑器” “ABAP/4编辑器初始屏幕”如下所示: 3. 为在“程序”字段中创建的程序输入名称(关于创建程序名称的详细信息,参见命名程序规则(页455))。 4. 选择“创建”。 不论在“对象组件”下选择什么,都出现“ABAP/4:程序属性”屏幕。 当命名并创建程序后,可以定义其属性(关于定义程序属性的详细信息,参见指定程序属性(页457))。 创建ABAP/4程序还有其它过程。例如,可以: 1. 选择“ABAP/4开发工作台”屏幕上的“对象浏览”。 2. 选择“对象列表”下的“程序”。 3. 选择“单一对象”下的“程序对象”。 4. 输入程序名并单击“显示”。 如果程序不存在,则询问是否要创建它。关于对象浏览器及创建程序其它过程的 详细信息,参见文档ABAP/4工作台工具。 二、命名程序规则 当创建程序名称时请遵循如下规则: _ 使用至少1个但不超过8个字符。 _ 不要使用下列字符 - 句点(.) - 逗号(,) - 空格() - 括号'('')' - 单引号(') - 双引号(") - 等号(=) - 星号(*) - 元音变音(_,_,_,_,_,_)和'_' - 百分号(%)和下划线(_):因为这些符号是SQL语句的通配符,所以也会导致问题(参见为在程序中选定行指定条件)。SAP建议在程序名称中不要使用它们。 创建程序名称时请遵守这些命名约定: _ 报表程序(以列表格式输出数据分析):Yaxxxxxx或Zaxxxxxx。用应用程序区的分类字母替换a。用任何有效字符替换x。注意SAP报表程序遵守相似的命名约定:Raxxxxxx。 _ 任何其它ABAP/4程序(培训程序或事务程序):SAPMYxxx或SAPMZxxx。用有效字符替换x。注意标准SAPABAP/4程序遵守相似的命名约定:SAPMaxxx,其中a代表某应用程序区。 三、命名程序属性 程序属性决定程序属于哪种应用程序以及程序所链接的逻辑数据库。必须谨慎输入属性以便系统能正确处理程序(有关程序属性的详细信息,参见重要的程序属性(页459))。 已经将名称分配给程序并选择“ABAP/4编辑器初始屏幕”上的“创建”时,出现“ABAP/4:程序属性”屏幕。 要输入程序属性,请进行如下操作: 1. 在字段“标题”中输入程序标题。选择描述程序功能的标题。系统自动将标题与文本摘要合并。如果以后要更改标题,请按如下操作进行: - 选择“ABAP/4编辑器初始屏幕”上的“文本摘要”或“属性”。 - 选择“更改”。 2. 完成两个强制字段: - 如果创建报表程序,则在“类型”字段中输入1,如果创建模块存储,则在“类型”字段中输入M。关于可能类型的列表,请单击可能条目箭头。 - 在“应用程序”字段中为应用程序输入分类字母,如财务会计输入F。 3. 如果创建报表(类型=1),请选择“确定”。 系统将特定报表属性自动插入输入字段。然后看见附加字段“逻辑数据库”、“从应用程序”和“选择屏幕”(版本)。 4. 指定与程序相关的所有其他属性(有关程序属性的详细信息,参见重要的程序属性(页459))。 5. 选择“保存”以保存属性。 6. 出现“维护对象目录条目”窗口。 7. 输入开发类。 如果为培训或测试目的创建程序(如某私有对象),则输入开发类$TMP或选择“逻辑对象”。 8. 选择“保存”以保存开发类。 这将关闭“维护对象目录条目”窗口并返回“ABAP/4:程序属性”屏幕。 9. 选择“后退”离开屏幕。如果要直接转到ABAP/4编辑器,请选择“转向->源代码”。 如果通过预定义开发类在“对象浏览器”中创建程序,则跳过步骤6到8。 四、重要的程序属性 最重要的程序如下所述。关于其它属性的详细信息(或关于此处描述的属性的详细信息),请选择相关的输入字段,并单击可能的条目箭头。 注意下述某些属性只适用于报表程序并不适用于其他ABAP/4程序。 类型 除了类型1(如同报表的独立程序)和M(模块存储),还应该注意类型I(包含程序)。包含程序是个独立的程序,它有两个主要特征。首先,它包含程序代码,不同程序都可使用该代码。其次,它用于模块化程序源代码,该代码分成逻辑相关部分。其中每个部分都存储在不同的包含程序中。包含程序改善源代码的可读性并有助于 维护。(有关包含程序的详细信息,参见包含程序)。 应用程序 “应用程序”字段包括应用程序的缩写,如,财务会计缩写为F。该必需条目使系统能将程序分配给适当的业务区。 开发类 开发类对系统之间进行传输非常重要。执行传输时,可以将分配给某个开发类的工作台对象组合起来。 如果用户在某组中工作,也许要将程序分配给现有开发类或创建新的开发类。分配给开发类$TMP的程序是私有对象并且不能传输到其他系统。 但是,也可以通过选择“ABAP/4编辑器初始屏幕”上的“程序->重新分配...”更改分配给程序的开发类。 应用程序中的逻辑数据库(仅报表程序) 这些属性决定报表使用哪个逻辑数据库检索数据,以及逻辑数据库属于哪个应用程序。应用程序中数据库名称必须是唯一的。但是,整个系统可以包括数个同名数据库。因此指定应用程序很重要。关于逻辑数据库的详细信息,参见逻辑数据库的特性和维护。 如果报表程序直接读取数据,而未使用逻辑数据库(关于此主题的详细信息,参见访问带逻辑数据库的数据库表),则应该象通常一样指定应用程序,但将“逻辑数据库”字段置空。 选择屏幕版本(仅报表程序) 如果没有指定选择屏幕版本,则系统在逻辑数据库选择标准、报表特定参数及选择选项的基础上自动创建选择屏幕(关于选择屏幕的详细信息,参见使用选择屏幕)。 如果想使用自己的选择屏幕,请在此字段中输入号码。该号码必须小于1000。可以通过按F4或在DBxxxSEL程序中找到现有选择屏幕号码(详细信息,参见逻辑数据库选择)。 大写/小写 显示和存储时,如果要让ABAP/4编辑器将程序代码与输入时保持相同,则请将该字段置空。如果选择该字段,则所有的程序代码(除了引号中的文本及注释外)都转换成大写字母。屏幕显示依赖于所使用的编辑器模式(详细信息,参见文档ABAP/4工作台工具。 编辑器锁定 如果设置此属性,则其他用户则不能修改、改名或删除程序。只有用户可以更改程序、维护属性、文本摘要及文档;或者解除锁定。 定点算术 如果设置此属性,系统则根据小数点位数将类型P字段四舍五入,或用零填补(关于类型P字段的详细信息,参见数字数据类型(页3-4))。这种情况下,无论在用户主记录中指定了什么,小数点字符总是句点(.)。 通过变式启动(仅报表程序) 如果设置该属性,则用户只可以使用变式启动报表程序。在启动程序之前,必须创建至少一个报表变式(关于创建变式的详细信息,参见使用变式预设置选择)。 五、编写程序 在ABAP/4编辑器中编写ABAP/4程序。 可以直接从“ABAP/4程序属性”屏幕切换到编辑器,也可以从“ABAP/4编辑器初始屏幕”中调用编辑器。 请进行如下操作: 1. 在“ABAP/4程序属性”屏幕上选择“转向->源代码”或“源代码”。 选定“源代码”并选择“ABAP/4编辑器初始屏幕”上的“更改”。 出现“ABAP/4编辑器编辑程序”屏幕。 系统自动输入第一个ABAP/4语句,如 REPORT <report name> or PROGRAM <program name>. 对于 <report/program name>,系统使用在“ABAP/4编辑器初始屏幕”上输入的名称。 语句REPORT和PROGRAM实际上具有相同功能。它们使系统能识别报表程序或任何其他ABAP/4程序并允许为输出列表指定一定的标准: REPORT或PROGRAM语句可以有不同的参数,如LINE-SIZE、LINE-COUNT或NO STANDARD PAGE HEADING。这些参数主要适用于报表程序,用来分析数据并输出结果列表。 关于列表的详细信息,参见[ See also: 第六章 创建列表 <file://nyf:\1\2\5\> ]或参见REPORT和PROGRAM上的关键字文档。 2. 输入程序代码。 3. 选择“检查”进行语法检查。然后系统扫描程序代码寻找语法错误及不相容处。如果检查出错误,则出现消息报告它并且有可能的话将建议解决方案或更正。将光标放在适当的位置上。 4. 选择“保存”保存代码。 源文本存储在程序库中。 六、测试程序 测试程序检查代码是否正确工作。 为测试目的要运行程序,选择“ABAP/4编辑器编辑程序”屏幕上的“程序->执行”。 系统执行该程序,如同从“ABAP/4编辑器初始屏幕”中启动的一样。例如,创建报表程序之后,则首先出现从中输入条件的选择屏幕,然后是结果列表。 如果正创建ABAP/4程序模块,则必须在运行程序之前创建事务代码(关于创建事务代码的详细信息,参见对话编程简介)。 出于测试目的,可以先不进行保存,直接运行某个不是模块存储部件的程序。编辑器保留一个包含更改的临时版本。但是,测试结束后必须返回编辑器以确保所有更改都已保存。 七、显示或更改程序 本节主要说明如何显示或更改现有程序。此处相关的是技术步骤而不是实际代码更改。 要显示或更改程序,请进行如下操作: 1. 在“ABAP/4编辑器初始屏幕”上的“程序”字段中输入要更改的程序名称。 2. 选择“源代码”并选择“显示”或“更改”。 如果选择“更改”则继续步骤3。 如果选择“显示”,则看到“ABAP/4编辑器显示程序”屏幕。此处也显示源代码,但不能进行更改。可以通过选择“显示->更改”切换到更改模式。 3. 如果其他用户锁定该程序对编辑器的访问,则系统显示下列消息: User <name> forbade all changes. 在这种情况下,不能更改程序。要更改程序,必须将它复制到新程序中并用新程序名再开始步骤1。否则,继续步骤5。 4. 输入对程序代码的更改。 5. 选择“检查”检查语法。 6. 保存程序的更改版本。 如果更改程序的私有版本(开发类$TMP),则立即保存更改版本。 如果从$TMP之外的开发类更改程序,则会出现一个窗口,从中可以指定更正请求号(Change Request Number)。 7. 运行程序测试它(关于测试的详细信息,参见测试程序(页11))。 八、将事务代码分配给程序 可以将事务代码分配给类型1的单独程序,以后就将这些程序作为事务代码处理。在[ See also: 第三部分 编写ABAP/4事务 <file://nyf:\1\3\> ]中对事务有说明。 进行如下操作: 1. 按照本节上述主题所述,创建单独程序。 2. SAP菜单树:工具 -> ABAP 工作台 -> 开发 -> 其他工具 -> 事务,事务代码:SE93。 3. 填入事务代码并选择“维护事务”屏幕上的“创建” 4. 在下列对话屏幕上选择“报表事务”; 5. 在下列“创建报表事务”屏幕上填入所需条目“事务说明”和“程序”。 6. 将事务代码保存在开发类中。 开发类可以用事务代码SM30维护视图V_TDEVC来创建或修改。 第二章 ABAP/4程序语法和格式 本节说明ABAP/4语法,并且提供关于如何在ABAP/4中编程的建议。同时解释如何提高程序的清晰性,以及使用已有程序代码模块使编程变得更加容易。本节的主题包括: 本节只是概述。关于单个ABAP/4组件的详细信息,参见本宝典的相应主题。 一、 语法元素 ABAP/4编程语言包括下列元素类型: 语句 ABAP/4程序包括单个ABAP/4语句。每条语句以关键字开头,以句号结束。 PROGRAM SAPMTEST. WRITE 'First Program'. 该示例包含两条语句,每行一条。关键字是PROGRAM和WRITE。程序在屏幕上显示输出(称为列表)。此示例中,列表包括“第一个程序”行。 关键字 关键字是语句的第一个词。它决定整个语句的意义。有四种不同类型的关键字: 说明性关键字 这些关键字定义数据类型,或者说明程序可以访问的数据对象。说明性关键字示例: TYPES,DATA,TABLES 系统在生成程序期间处理说明性关键字,而不是在运行时。在程序代码中独立于其位置处理它们。为清楚起见,应该在程序开头的“说明部分”指定所有说明性关键字。 关于说明关键字的详细信息,参见声明数据。 事件关键字 这些关键字在ABAP/4程序中定义处理块。处理块是当特定事件发生时进行处理的语句组。事件关键字示例如下: AT SELECTION SCREEN, START-OF-SELECTION, AT USER-COMMAND 关于事件关键字的详细信息,参见用事件控制ABAP/4程序流。 控制关键字 这些关键字根据特定条件控制ABAP/4程序流。控制关键字示例如下: IF,WHILE,CASE 关于控制关键字的详细信息,参见控制ABAP/4程序流。 操作关键字 当某事件(由事件关键字触发)和条件(由控制关键字定义)发生时,这些关键字则处理数据(由说明性关键字定义)。操作关键字示例如下: WRITE, MOVE, ADD 关于控制关键字的详细信息,参见[ See also: 第五章 处理数据 <file://nyf:\1\1\4\> ]。 注释 注释是写在ABAP/4程序语句之间用来向读者解释其目的的文本摘要。注释有导致系统忽略它们的特殊字符标记。应该在内部开发程序中使用注释。注释帮助其他用户理解和更改程序。 ************************************************ * PROGRAM SAPMTZST * * CREATED BY CARL BYTE, 06/27/1995 * * LAST CHANGE BY RITA DIGIT, 10/01/1995 * * PURPOSE: DEMONSTRATION * ************************************************ PROGRAM SAPMTEST. ************************************************ * DECLARATION PART * ************************************************ DATA ...... ...... ************************************************ * OPERATION PART * ************************************************ ...... 所有以星号(*)开始的行都是注释,并且被系统忽略(关于注释的详细信息,参见下一节语法结构中的注释结构)。 二、 语法结构 ABAP/4程序是具有特定结构的不同语句的顺序。 可以在语句间插入注释。 分开的但相似的语句顺序可以组成链语句。 语句结构 下列图表显示ABAP/4语句的结构。 ABAP/4没有格式限制。可以自由格式输入语句。这意味着可以缩排语句、在一行中写几条语句或者一条语句跨越几行。 在语句中必须以至少一个空格分开词。系统也将行结束符解释为空格。 语句以句号“.”作为结束,一条语句可以跨越多行。 程序段 PROGRAM SAPMZTST. WRITE 'This is a statement'. 也可以如下编写: PROGRAM SAPMTEST. WRITE 'This is a statement'. 或者如下: PROGRAM SAPMTEST. WRITE 'This is a statement'. 应该使用自由格式提高程序的可读性,但是应避免使用复杂格式。 注释结构 可以在程序的任意处插入注释行。在程序中有两种方法表明注释: 如果要将整行变为注释,则在行开始处输入星号(*)。 如果要将某行的一部分变为注释,则在注释之前输入双引号(")。系统将由双引号标明的注释解释为空格。 PROGRAM SAPMTEST. * The following line contains a WRITE statement WRITE 'First Program'. " Output on List 本程序的第二行是不执行的注释。注释由行开始处的星号(*)标明。 在第三行,双引号(")之后全部都是注释并且不执行。 程序的其余部分为带关键字PROGRAM和WRITE的可执行语句。 连接相似语句 ABAP/4编程语言允许将带相同起始部分的连续语句连入链语句。 要连接分开的语句,只要写一次相同部分,并且在其后设置冒号(:)。在冒号后,列出语句的其余部分并用逗号(,)分开。请保证在最后部分之后设置句号以通知系统链的结束处。 语句顺序: WRITESPFLI-CITYFROM. WRITE SPFLI-CITYTO. WRITE SPFLI-AIRPTO. 链语句: WRITE: SPFLI-CITYFROM, SPFLI-CITYTO, SPFLI-AIRPTO. 在链中,冒号将语句的开始部分与可变部分分开。可以在冒号(或逗号)之前或之后插入任意个空格。 例如,可以写如下相同语句: WRITE: SPFLI-CITYFROM, SPFLI-CITYTO, SPFLI-AIRPTO. 在链语句中,第一部分(冒号之前)不受语句关键字的限制。 语句顺序: SUM = SUM + 1. SUM = SUM + 2. SUM = SUM + 3. SUM = SUM + 4. 链语句: SUM = SUM + : 1, 2, 3, 4. 三、 ABAP/4程序格式 要编写高质量的程序,不仅应该遵循命名约定(参见[ See also: 命名程序规则 <file://nyf:\1\1\0\1\> ]),而且要保持一定的ABAP/4程序格式标准。 一开始定义数据就应该注意这些标准。在构建程序流时注意下列主题中的建议,并且尽可能地使用信息注释。如果遵照这些建议,程序将 更具有可读性 更容易测试和更改 更可靠 要提高程序的质量,请使用下列技术: ABAP/4编辑器包括更容易分配程序格式的工具。该工具称为整齐打印程序。 缩排语句块 应该将属于一组的语句组成单一块。关于语句块的详细信息,参见[ See also: 第六章 控制ABAP/4程序流 <file://nyf:\1\1\5\> ]。 每块至少缩排两列,如下所示。 使用模块化工具 要编出好的程序,应该使用ABAP/4模块化工具(参见[ See also: 第八章 模块化ABAP/4程序 <file://nyf:\1\1\7\> ])。 如果将大处理块写成子程序,则程序的逻辑结构容易识别。允许根据执行的任务排序子程序。 子程序可能增加程序的总长度,但是您将发现该方法大大增加清晰性,特别是在复杂程序的情况下。如果按系统执行的顺序排列子程序,则程序代码很容易读。 正确插入程序注释 应该避免在语句行中放置注释。在注释行放置它们将提高程序的可读性。 要在程序中插入子程序标题和注释,请使用ABAP/4编辑器可用的已有结构。在子程序标题中,解释调用程序的目的并且提供足够的信息和参考。关于已有结构的详细信息,参见插入已有关键字结构和在ABAP/4工作台工具中的ABAP/4编辑器文档。 整齐打印程序 使用整齐打印程序可以更容易地遵循ABAP/4格式指南。 整齐打印程序是ABAP/4编辑器的可选功能(有关详细信息,参见 ABAP/4工作台工具 中的 ABAP/4 编辑器文档 )。 要从ABAP/4编辑器调用整齐打印程序,请选择菜单“编辑->规范化打印机”。 这里是整齐打印程序如何工作的示例。 下面显示在使用整齐打印程序之前程序的格式 : PROGRAM ZSAPMTEST. DATA: SUM1 TYPE I, SUM2 TYPE I, SUM3 TYPE I. IF SUM1 = SUM2. WRITE 'Case 1'. ELSEIF SUM1 = SUM3. WRITE 'Case 2'. ENDIF. 使用整齐打印程序之后,相同程序如下所示: PROGRAM ZSAPMTEST. DATA: SUM1 TYPE I, SUM2 TYPE I, SUM3 TYPE I. IF SUM1 = SUM2. WRITE 'Case 1'. ELSEIF SUM1 = SUM3. WRITE 'Case 2'. ENDIF. 四、 插入已有结构 已有结构可以简化ABAP/4程序的编码。它提供确切的语法,并且遵循ABAP/4格式指南。 使用ABAP/4编辑器时可以在程序中插入两种已有结构: 关于已有结构的详细信息,参见ABAP/4工作台工具中的ABAP/4编辑器文档。 插入已有关键字结构 要在代码中插入已有关键字结构,请进行下列操作: 1. 将光标放在要插入结构的行上。 2. 选择菜单“编辑->模式”。 3. 在出现的对话框中,选择带单选按钮的语句,或者在“其它结构”字段中输入: 要显示所有可用的已有关键字结构的列表,请将光标放在“其它模式”字段上,并且单击输入字段右侧的可能条目箭头。所有首字符为星号(*)的语句都是已有注释行(关于已有注释行的详细信息,参见插入已有注释行(页11))。 如果在对话框的“其它模式”字段中输入CASE,则系统在程序中插入如下行: CASE f. WHEN w1. ...... WHEN w2. ...... WHEN OTHERS. ...... ENDCASE. 插入已有注释行 要在代码中插入已有注释行,请执行下列操作: 1. 遵照 插入已有关键字结构 中的1到2步骤。 2. 在对话框的“其他模式”字段的可能条目列表中选择带首字符为星号(*)的结构。 3. 系统将注释行插入到程序中。 如果在对话框的“其他模式”字段中输入**3,则系统在程序中插入如下行: ********************************************************* * * * * * * ********************************************************* 第三章 将数据输出到屏幕 本节说明如何在屏幕上创建简单输出列表。为此,请使用WRITE语句。 下面将介绍: ABAP/4允许在屏幕和纸张上,生成比这里看到的更复杂和更有效的输出列表。这些介绍是后面章节(例如,创建列表)的基础。 一、 WRITE语句 在屏幕上输出数据的基本ABAP/4语句是WRITE。 语法 WRITE <f>. 该语句以其标准格式,将字段<f>输出到当前列表中。默认情况下,该列表显示在屏幕上。 字段<f>可以是 任何数据对象(参见数据对象) 字段符号或公式参数(参见使用字符符号(页使用字段符号)) 文本符号(参见Working with Text Elements) 选择“打印”,可以直接从输出屏幕打印当前输出列表。如果为程序定义选项屏幕(参见使用选择屏幕),就可以在选择屏幕上选择“执行和打印”,然后,该列表不输出到屏幕上,而是直接发送到打印机。 PROGRAM SAPMZTST. WRITE 'Hello, here I am!'. 当启动该程序时,系统离开当前屏幕(这可能是“ABAP/4编辑器:初始屏幕”),并如下所示转到输出屏幕: 输出屏幕与在程序属性中指定的程序标题有相同的名称(参见指定程序属性)。 屏幕上的第一行包含列表表头。默认情况下,该列表表头与程序标题相同。但是,可以由实际程序外的程序标题单独维护列表表头。详细信息,参见(使用文本摘要)。当前页号(1)出现在右边。 列表表头后紧跟着一条水平线,然后显示输出。 可以选择“搜索”,以搜索特定模式。 在屏幕上,输出通常是左对齐的。如果使用几个WRITE语句,输出字段就一个接一个显示,输出之间由列分开(如一个空格)。如果当前行没有足够空间,则开始新行。 PROGRAM SAPMTEST. TABLES SPFLI. ............. WRITE: 'COMPANY: ', SPFLI-CARRID. 注意冒号和逗号的用法(参见语法结构)。 该示例中的程序段向屏幕输出两个字段:文字“COMPANY:”和表格工作 区 SPFLI 的组件 CARRID: COMPANY: AA。 输出屏幕上的数据字段格式,依赖数据类型(参见预定义的基本数据类型)。 预定义数据类型的输出格式 数据类型 输出长度 定位 C 字段长度 左对齐 D 8 左对齐 F 22 右对齐 I 11 右对齐 N 字段长度 左对齐 P 2*字段长度(+1) 右对齐 T 6 左对齐 X 2*字段长度 左对齐 数字数据类型F、I和P是右对齐的,左边用空格填充。如果有足够的空间,也输出千位分隔符。如果类型P字段包含小数位,则默认输出长度增加一位。 对数据类型D,日期的内部格式与输出格式不同。当输出数据使用WRITE语句时,系统自动以用户主记录中指定的格式(例如,DD/MM/YYYY或MM/DD/YYYY),输出数据类型D。 PROGRAM SAPMTEST. DATA NUMBER TYPE P VALUE '-1234567.89' DECIMALS 2. WRITE: 'Number', NUMBER, 'is packed'. 输出如下: Number 1,234,567.89- is packed 字段NUMBER总长为13,即,9位数字(包括小数点)、前导负号和作为分隔符的两个逗号。因为类型P字段的字段长度为8,所以NUMBER字段的输出长度为2*8+1=17。剩余的位置用四个空格填充。这意味着,在文字‘Number’和数字自身之间有五个空格。 二、 在屏幕上定位WRITE输出 如下所示,通过制定字段名称前面的格式规范,可以在屏幕上定位WRITE语句的输出: 语法 WRITE AT [/][<pos>][(<len>)] <f>. 此处 斜线‘/’表示新的一行 <pos>是最长为三位数字的数字或变量,表示在屏幕上的位置 <len>是最长为三位数字的数字或变量,表示输出长度 如果格式规范只包含直接值(即,不是变量),可以忽略关键字AT。 WRITE 'First line.'. WRITE 'Still first line.' WRITE / 'Second line.' WRITE /13 'Third line.' 这在屏幕上生成如下输出: First Line. Still first line. Second line. Third line. 如果指定某一个位置<pos>,则无论在该位置是否有可用的空间,或写有其它字段,总是在该位置输出字段。 DATA: LEN TYPE I VALUE 10, POS TYPE I VALUE 11, TEXT(10) VALUE '1234567890' WRITE 'The text ------------ appears in the text.'. WRITE AT POS(LEN) TEXT. 这在屏幕上生成如下输出: The text -1234567890- appears in the text. 如果输出长度<len>太短,则显示几个字符。左边截断数字字段,并用星号(*)作前缀。右边截断所有其它字段,但是没有给出该字段较短的指示。 DATA: NUMBER TYPE I VALUE 1234567890, TEXT(10) VALUE 'abcdefghij'. WRITE: (5) NUMBER, /(5) TEXT. 输出如下: *7890 abcde 三、 格式化选项 对 WRITE 语句,可以 使用不同的 格式化选项 。 语法 WRITE .... <f> <选项>. 所有数据类 型的格式化 选项 选项 用途 LEFT-JUSTIFIED 输 出左对齐。 CENTERED 输 出居中。 RIGHT-JUSTIFIED 输 出右对齐。 UNDER <g> 输出 直接开始于 字段 <g> 下。 NO-GAP 忽 略字段 <f> 后的空格。 USING EDIT MASK <m> 指定 格式模板 <m>。 USING NO EDIT MASK 撤 消对 ABAP/4 词典中指定 的格式模板 的激活。 NO-ZERO 如 果字段仅包 含零,则用 空格代替它 们。对类型 C 和 N 字段, 将自 动代替前导 零。 数字字段的 格式化选项 选项 用途 NO-SIGN 如果<f>是类型I,P或F,不 输出前导符 号。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服