一、 程序的结构:
典型的ABAP报表程序是由多个代码区域组成,各代码区的存放位置以下列顺序为准,具体格式如下:
*---------------------------------------------------------------
* REPORT NAME : 报表名称及格式
*---------------------------------------------------------------
REPORT Z________“程序名称.
NO STANDARD PAGE HEADING
MESSAGE-ID __ “ 所使用的MESSAGE
LINE-COUNT ___ “ 输出时每页报表行数
LINE-SIZE ___. “ 输出时每页报表的宽度
*---------------------------------------------------------------
* TABLES: 声明报表中使用到的数据表
*---------------------------------------------------------------
TABLES: “数据表名
[STATMENTS]
*---------------------------------------------------------------
* DATA: 定义报表中使用到的变量及内表
*---------------------------------------------------------------
DATA:
*---------------------------------------------------------------
* CONSTANTS: 定义常量
*---------------------------------------------------------------
CONSTANTS:
*---------------------------------------------------------------
* SELECTION-SCREEN:定义选择屏幕中的选择字段
*---------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK ____
SELECT-OPTIONS:
PARAMETERS:
SELECTION-SCREEN END OF BLOCK ___
*---------------------------------------------------------------
* INITIALIZATION : 程序初始化时所执行的代码
*---------------------------------------------------------------
INITIALIZATION.
[CODE]
*---------------------------------------------------------------
* AT SELECTION-SCREEN :在选择屏幕上执行的代码(多用于权限判断,警告信息)
*---------------------------------------------------------------
AT SELECTION-SCREEN :
[CODE]
*---------------------------------------------------------------
* START-OF-SELECTION:程序运行所处理的代码
*---------------------------------------------------------------
START-OF-SELECTION.
[CODE]
*---------------------------------------------------------------
* DEFINE :定义宏
*---------------------------------------------------------------
DEFINE .
[STATMENTS]
END-OF-DEFINITION..
*---------------------------------------------------------------
* END-OF-SELECTION:程序输出时所运行的代码
*---------------------------------------------------------------
END-OF-SELECTION.
[CODE]
*---------------------------------------------------------------
* TOP OF PGAE :输出屏幕的页眉
*---------------------------------------------------------------
TOP OF PGAE.
[CODE]
*---------------------------------------------------------------
* END OF PGAE :输出屏幕的页脚
*---------------------------------------------------------------
END OF PGAE.
[CODE]
*---------------------------------------------------------------
* FORM :定义子程序
*---------------------------------------------------------------
FORM
.
[STATMENTS]
ENDFORM.
二、 程序变量的定义
程序中变量的定义分为两种,对声明的变量尽量多加注释,以提高程序的可读性。
1、 全局变量的定义:
定义在“AT SELECTION-SCREEN”声明之前的变量都为全局变量,全局变量多为内表。变量应该总是被定义在尽可能小的范围内,全局变量使得模块间的耦合增加,提高了程序的复杂性,也使代码的重用和维护更加困难,应尽可能少的定义全局变量。
2、 局部变量的定义:
定义在“START-OF-SELECTION”声明之后的变量为局部变量。
1) 基本数据类型:
数据类型 默认大小 有效大小 初始值 说明
C 1 1-65535Byte Space 文本、字符, 如’Program’
D 8 8 ‘00000000’ 日期, 格式:YYYYMMDD
F 8 8 0 浮点数
I 4 4 0 整数
N 1 1-65535 ‘00…0’ 数字文本
P 8 1-16 0 压缩号
T 6 6 ‘000000’ 时间, 格式:HHMMSS
X 1 1-65535 X’00’ 16进制
2) 一般变量命名规则:
数据类型 前缀 例子
C c cName
D d dDate
F f fRatio
I i iCount
N n nPostCode
P p pNumber
T t tTime
3) 作用范围相关前缀:
前缀 描述
g_ 全局变量
m_ 在INCLUDE创建的变量
没有前缀 非静态变量,或者过程中的变量
3、 内表的定义
内表的名称统一命名以 T开头后跟数字,如若定义多张内表,应对其分别加以注释说明,内表内的字段如果从透明表中取值,应以透明表中字段名称一致,如遇相同,可在其末尾用数字加以区分,如BEZEI1、BEZEI2。对于不常用到的表字段应用注释加以说明。
- 20151009 C# 第一篇 程序编写规范
20151009 程序编写规范 1. 代码书写规则: 1).尽量使用接口,然后使用类实现接口. 2).关键语句写注释 3).避免写超过5个参数的方法,如果要传递多个参数,则使用结构 4).避免代码量过 ...
- C#程序编写规范
代码书写规则 1.尽量使用接口,然后使用类实现接口,提高程序的灵活性. 2.一行不要超过80个字符. 3.尽量不要手工更改计算机生成的代码,若必须要改,一定要改为和计算机生成的代码风格一样. 4.关键 ...
- Java学习---Java代码编写规范
编码规范 1 前言为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程.系统继承的其它资源中的源程序也应按此规 ...
- java编写规范
编码规范 转载于:https://www.cnblogs.com/ftl1012/p/javaCode.html 1 前言为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的 ...
- Java代码编写规范(转载)
编码规范 1 前言为确保系统源程序可读性,从而增强系统可维护性,java编程人员应具有基本类似的编程风格,兹制定下述Java编程规范,以规范系统Java部分编程.系统继承的其它资源中的源程序也应按此规 ...
- ABAP报表中负值展示问题的处理方法
现象描述 在使用ABAP报表展示数据的时候会涉及到金额类字段,在手动计算金额的时候,有时会发生存在负值而无法正常展示的情况. 处理过程 ABAP报表的数据展示常用的方法有两种,分别是表控制和ALV ...
- 基于Asterisk的VoIP开发指南——(2)Asterisk AGI程序编写指南
原文:基于Asterisk的VoIP开发指南--(2)Asterisk AGI程序编写指南 5. Asterisk AGI程序编写指南 5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或 ...
- JavaEE程序编码规范
JavaEE程序编码规范 目 录 JAVA程序编码规范1 1变量的命名规则1 1.1常量(包含静态的)1 1.2类变量(静态变量)及实例变量1 1.3局部变量1 1.4参数2 1.5其它2 2方法 ...
- 代码编写规范说明书(c#.net与asp.net)
代码编写规范说明书(c#.net与asp.net) 目 录1 目的2 范围3 注释规范3.1 概述3.2 自建代码文件注释3.3 模块(类)注释3.4 类属性注释3.5 方法注释3.6 代码间注释4 ...
随机推荐
- 李洪强iOS开发之OC[018]对象和方法之间的关系
// // main.m // 18 - 对象和方法之间的关系 // // Created by vic fan on 16/7/14. // Copyright © 2016年 李洪强. A ...
- Git教程之标签管理
发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照.Git的 ...
- 如何在给快满的Linux分区"无伤"扩容
1. 首先在虚拟机设置里面设置磁盘的扩展,前提条件是该虚拟机没有快照. 2. 在虚拟机设置好以后,需要开机在系统里扩容磁盘 3. 使用 # fdisk /dev/sda 扩展磁盘,具体操作使用 m 选 ...
- Rails中的MIME类型
layout title date comments categories post rails的中的MIME类型 2014-09-08 21:40 true ruby Rails开发中经常使用不同的 ...
- C#.Net 如何动态加载与卸载程序集(.dll或者.exe)6-----在不卸载程序域的前提下替换程序集文件。
当某个程序集文件被载入AppDomain,该文件在AppDomain.Unload之前是不能被替换和删除的.使用AppDomainSetup的影像复制功能可以实现在不卸载程序的情况下替换或者删除程序集 ...
- Oracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp...解决方法
Oracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp...解决方法 sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类 www.2cto.com 应该 ...
- 手机通过WIFI连上ZXV10 H618B路由器但不能上网问题的解决
前几天朋友帮忙拿到一个ZXV10 H618B路由器,一看需要12V供电,还好以前留下一个12V输出的DC充电器,关键时刻用上了,先大概下载了此路由器的用户手册,发现原来是08年的产品,都5年了. 开始 ...
- UVa 1471 (LIS变形) Defense Lines
题意: 给出一个序列,删掉它的一个连续子序列(该子序列可以为空),使得剩下的序列有最长的连续严格递增子序列. 分析: 这个可以看作lrj的<训练指南>P62中讲到的LIS的O(nlogn) ...
- BZOJ_1022_[SHOI2008]_小约翰的游戏John_(博弈论_反Nim游戏)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1022 反Nim游戏裸题.详见论文<组合游戏略述——浅谈SG游戏的若干拓展及变形>. ...
- BZOJ1954: Pku3764 The xor-longest Path
题解: 在树上i到j的异或和可以直接转化为i到根的异或和^j到根的异或和. 所以我们把每个点到根的异或和处理出来放到trie里面,再把每个点放进去跑一遍即可. 代码: #include<cstd ...