--建立一个structure.
DATA: BEGIN OF count_line,
carrid TYPE spfli-carrid,
count TYPE i,
END OF count_line,
spfli_tab TYPE TABLE OF spfli.
DATA: dbcur1 TYPE cursor,
dbcur2 TYPE cursor.
--定义parameters参数.接收从页面获得的参数;
PARAMETERS: p_cityfr TYPE spfli-cityfrom,
p_cityto TYPE spfli-cityto.
--建立一个Structure.
DATA: BEGIN OF waa,
fldate TYPE sflight-fldate,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF waa.
--建立一个internal table.内表.
DATA itab LIKE SORTED TABLE OF waa
WITH UNIQUE KEY fldate carrname connid.
--多表连接查询.
SELECT c~carrname p~connid f~fldate
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( scarr AS c
INNER JOIN spfli AS p ON p~carrid = c~carrid
AND p~cityfrom = p_cityfr
AND p~cityto = p_cityto )
INNER JOIN sflight AS f ON f~carrid = p~carrid
AND f~connid = p~connid ).
--循环输出内表里面的,字段.
LOOP AT itab INTO waa.
WRITE: / wa-fldate, wa-carrname, wa-connid.
ENDLOOP.
--指定透明表.
TABLES:ZEDITAB.
--引用zeditab表的structure结构.
DATA:WA_ZDITAB TYPE ZEDITAB.
--对透明表的更新操作.
UPDATE ZEDITAB SET EANCOMSEGMENT = 'G01DTM' EDI_INDEX = '3'
WHERE EDI_INDEX = '11'.
UPDATE ZEDITAB SET EANCOMSEGMENT = 'G01DTM' EDI_INDEX = '2'
WHERE EDI_INDEX = '10'.
UPDATE ZEDITAB SET EANCOMSEGMENT = 'G01DTM' EDI_INDEX = '1'
WHERE EDI_INDEX = '9'.
WRITE:/ 'OK'.
TABLES:ZHT_EMPLOYEE.
DATA:EMPLOYEE_ITAB LIKE STANDARD TABLE OF ZHT_EMPLOYEE WITH HEADER LINE,
EMPLOYEE_WA LIKE LINE OF EMPLOYEE_ITAB.
--给结构赋值.
EMPLOYEE_WA-EMP_ID = 101.
EMPLOYEE_WA-EMP_NAME = 'Admin'.
EMPLOYEE_WA-EMP_SEX = '男'.
APPEND EMPlOYEE_WA TO EMPLOYEE_ITAB.
EMPLOYEE_WA-EMP_ID = 102.
EMPLOYEE_WA-EMP_NAME = 'Apple'.
EMPLOYEE_WA-EMP_SEX = '女'.
APPEND EMPLOYEE_WA TO EMPLOYEE_ITAB.
EMPLOYEE_WA-EMP_ID = 103.
EMPLOYEE_WA-EMP_NAME = '周海涛'.
EMPLOYEE_WA-EMP_SEX = '男'.
--追加到内表中.
APPEND EMPLOYEE_WA TO EMPLOYEE_ITAB.
--循环输出.内部的记录, 这里没有用到into 的原因是,EMPLOYEE_ITAB,有 -
-with..header Line.有头行,就不需要用 into 到一个Structure中.
LOOP AT EMPLOYEE_ITAB.
WRITE: / EMPLOYEE_ITAB-EMP_ID,EMPLOYEE_ITAB-EMP_NAME,EMPLOYEE_ITAB-EMP_SEX.
INSERT INTO zht_employee VALUES employee_itab. "循环添加.
ENDLOOP.
EMPLOYEE_WA-EMP_ID = 103.
EMPLOYEE_WA-EMP_NAME = '周海涛'.
EMPLOYEE_WA-EMP_SEX = '男'.
--删除操作.
delete zht_employee FROM EMPLOYEE_WA.
COMMIT WORK.
WRITE: / sy-uline.
IF sy-subrc = 0.
WRITE: / '删除成功'.
else.
WRITE: / '删除失败'.
ENDIF.
CLEAR EMPLOYEE_ITAB.
SELECT * FROM zht_employee INTO CORRESPONDING FIELDS OF TABLE employee_itab.
LOOP AT EMPLOYEE_ITAB.
WRITE: / EMPLOYEE_ITAB-EMP_ID,EMPLOYEE_ITAB-EMP_NAME,EMPLOYEE_ITAB-EMP_SEX.
ENDLOOP.
WRITE: / sy-uline.
IF sy-subrc = 0.
WRITE:/ '修改成功'.
ELSE.
WRITE: / '修改失败'.
ENDIF.
--更新操作.
UPDATE zht_employee set emp_id = 102 emp_name = 'My Love' emp_sex = '女' WHERE emp_id = 102.
CLEAR employee_wa.
EMPLOYEE_WA-EMP_ID = 101.
EMPLOYEE_WA-EMP_NAME = 'TestName'.
EMPLOYEE_WA-EMP_SEX = '女'.
UPDATE ZHT_EMPLOYEE FROM EMPLOYEE_WA.
COMMIT WORK.
CLEAR EMPLOYEE_ITAB.
SELECT * FROM zht_employee INTO CORRESPONDING FIELDS OF TABLE employee_itab.
LOOP AT EMPLOYEE_ITAB.
WRITE: / EMPLOYEE_ITAB-EMP_ID,EMPLOYEE_ITAB-EMP_NAME,EMPLOYEE_ITAB-EMP_SEX.
ENDLOOP.
SKIP.
DATA:ZEDI_IDOC_ITAB LIKE STANDARD TABLE OF ZEDI_IDOC_PARAM WITH HEADER LINE,
ZEDI_IDOC_WA LIKE LINE OF ZEDI_IDOC_ITAB.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ZEDI_IDOC_ITAB FROM ZEDI_IDOC_PARAM.
DATA:size type i.
size = lines( ZEDI_IDOC_ITAB ).
WRITE: / '输出结果:',size.
LOOP AT ZEDI_IDOC_ITAB .
WRITE:/ ZEDI_IDOC_ITAB-LINE_ID,ZEDI_IDOC_ITAB-MESTYP,ZEDI_IDOC_ITAB-DOCNUM.
ENDLOOP.
SKIP.
DELETE FROM ZEDI_IDOC_PARAM.
WRITE 'Please fill in your name before printing:'.
WRITE / ' Enter name here ' INPUT ON.
ULINE.
WRITE 'You can overwrite the following line:'.
FORMAT INPUT ON INTENSIFIED OFF.
ULINE.
FORMAT INPUT OFF INTENSIFIED ON.
--包含.
INCLUDE <LIST>.
START-OF-SELECTION.
WRITE 'Now comes a'.
FORMAT HOTSPOT ON COLOR 5 INVERSE ON.
WRITE 'HOTSPOT'.
FORMAT HOTSPOT OFF COLOR OFF.
AT LINE-SELECTION.
WRITE / 'New list AT-LINE-SELECTION'.
SKIP.
WRITE 'This is also a hotspot:'.
WRITE ICON_LIST AS ICON HOTSPOT.
上面是一个很简单的例子, 毕竟发的时间不多..还是刚刚掌握一些最基础的语法知识.. 高手级别的人物,千万请别喷..
分享到:
相关推荐
本文将详细介绍如何通过ABAP编程语言实现对SAP透明表数据的批量删除、添加以及修改操作。 #### 一、批量删除透明表数据 在进行批量删除之前,需要确保理解此操作的潜在风险。如果错误地执行了删除操作,可能会导致...
- ALTER TABLE:修改数据表的结构,如添加、删除或更改字段。 - TRUNCATE TABLE:清空数据表的所有记录,但保留表结构。 3. **ABAP的数据表视图**: - 选择视图:基于一个或多个表创建逻辑视图,用于简化复杂的...
- 可以为表定义各种属性,比如透明表或内部表等。 2. **定义结构**: - 同样在SE11中,选择“创建结构”,输入结构名称,并定义其包含的字段。 - 结构主要用于定义复杂数据类型,可以被用作表的列或变量的类型。...
- **扩展内容**:ABAP Dictionary的组成部分(如数据元素、结构、透明表等)及其作用;如何使用SE11来查看和维护这些数据结构。 #### 12. 新建数据库表 - **知识点**:在SAP系统中创建自定义数据库表的过程。 - **...
而对于已有程序的修改,则在原有文档基础上添加内容,禁止删除原有信息,以此保证开发过程的透明性与历史可追溯性。 命名规则同样是规范中的关键一环。用户自定义对象的命名应以“Z”开头,允许使用字母、数字和...