SAP(第3周)
se38
输入程序名(新创建程序):【Z_姓名首拼_日期】-点击【创建】
输入标题:【汉字姓名_日期】
选择类型:【可执行程序】-点击【保存】
点击
输入自己创建的包名,点击【对号】
点击【本地对象】
程序创建成功
任务一:ABAP的基本数据类型有哪些,含义是什么?
任务二:在 ABAP 程序中,根据以下要求定义变量:
-
定义一个整数类型的变量
lv_number
,用于存储一个 4 字节整数。 -
定义一个字符串类型的变量
lv_string
,用于存储可变长度的文本。 -
定义一个日期类型的变量
lv_date
,用于存储日期。
定义了三个变量用于存储姓名、年龄和出生日期,并将结果打印出来
REPORT Z_XM_0306.
DATA: lv_name TYPE string, " 姓名 // 或者 DATA: lv_name TYPE c LENGTH 20, " 姓名
lv_age TYPE i, " 年龄
lv_birthdate TYPE date. " 出生日期
" 给变量赋值
lv_name = '张三'.
lv_age = 30.
lv_birthdate = '19900515'. " 格式为 YYYYMMDD
" 打印结果
WRITE: / '姓名:', lv_name.
WRITE: / '年龄:', lv_age.
WRITE: / '出生日期:', lv_birthdate.
输出样例:
任务三:ABAP String类型和C类型的作用和区别?
string定义时不需要指定长度,c定义时需要指定长度,否则无法正常输出
在 ABAP 中,`STRING` 类型和 `C` 类型都是用于存储字符串数据的,但它们在作用和使用场景上有一些区别:
STRING类型
定义 :`STRING` 是可变长度的字符串类型,它可以存储任意长度的文本数据,最大长度受系统限制。
特点:
长度可变:可以根据实际存储的字符串长度动态调整,不需要预先定义固定长度。
存储效率:对于长度不确定或可能变化的字符串,`STRING` 类型可以更高效地存储和处理,因为它不需要像定长字符串那样预留固定的空间。
操作灵活:提供了丰富的字符串操作函数,如字符串拼接、截取、查找等。
适用场景:
存储长度不确定的文本数据,如地址、描述、备注等。
需要频繁进行字符串操作的场景,如文本处理、文件读写等。
C类型
定义:`C` 是定长字符串类型,长度在定义时确定,如果存储的字符串长度小于定义长度,则用空格填充。
特点:
长度固定:在定义时必须指定长度,如 `C(10)` 表示长度为 10 个字符。
存储固定:无论实际存储的字符串长度如何,都会占用定义的固定长度空间。
格式严格:由于长度固定,适用于需要严格格式控制的场景。
适用场景:
存储长度固定的字符串数据,如代码、编号、状态等。
需要与数据库表字段、结构字段等保持数据类型一致的场景,特别是在数据传输和存储时。
区别总结
长度特性:`STRING` 类型长度可变,`C` 类型长度固定。
存储效率:`STRING` 类型在存储长度不确定或可能变化的字符串时更高效,`C` 类型在存储长度固定的字符串时更严格和规范。
操作灵活性:`STRING` 类型提供了更丰富的字符串操作函数,适用于复杂的文本处理场景;`C` 类型适用于需要严格格式控制的场景。
// 以下是一个示例程序,展示了 `STRING` 类型和 `C` 类型的使用:
REPORT zstring_vs_c.
DATA: lv_string TYPE STRING,
lv_c TYPE C LENGTH 10.
START-OF-SELECTION.
" 给变量赋值
lv_string = 'ABAP Programming'.
lv_c = 'STATUS'.
" 打印结果
WRITE: / 'STRING 类型:', lv_string.
WRITE: / 'C 类型:', lv_c.
输出结果
程序运行后,输出结果如下:
STRING 类型: ABAP Programming
C 类型: STATUS
在这个示例中,`lv_string` 是一个可变长度的字符串,存储了 'ABAP Programming';而 `lv_c` 是一个定长为 10 个字符的字符串,存储了 'STATUS',如果存储的字符串长度小于 10 个字符,则会用空格填充到 10 个字符。