首页 > 其他 > 详细

ABAP:从例子学习ABAP

时间:2019-02-15 16:23:41      阅读:150      评论:0      收藏:0      [点我收藏+]

1、插入内表行:

*插入内表行:
DATA: BEGIN OF man,
      name(20) TYPE c,
      high TYPE p DECIMALS 2,
      weight TYPE p DECIMALS 2,
END OF man.

DATA: man1 LIKE TABLE OF man.

man-name =  张参.
man-high = 1.68.
man-weight = 120.
INSERT man INTO TABLE man1.

man-name = 刘志.
man-high = 1.78.
man-weight = 160.
INSERT man INTO TABLE man1.

LOOP AT man1 INTO man.
  WRITE: / man-name,man-high,man-weight.
ENDLOOP.
ULINE.

man-name =  钱华.
man-high = 2.22.
man-weight = 220.
INSERT man INTO man1 INDEX 3.

LOOP AT man1 INTO man.
  WRITE: / man-name,man-high,man-weight.
ENDLOOP.

ULINE.
man-name =  钱华.
man-high = 2.22.
man-weight = 220.
INSERT man INTO man1 INDEX 1.

LOOP AT man1 INTO man.
  WRITE: / man-name,man-high,man-weight.
ENDLOOP.

2、读取文件

*读放文件
DATA: BEGIN OF man,
      name(20) TYPE c,
      high TYPE p DECIMALS 2,
      weight TYPE p DECIMALS 2,
END OF man.

DATA: man1 LIKE TABLE OF man.

CALL FUNCTION UPLOADEXPORTING
    codepage                = test
    filename                = d:\temp\testa.txt
    filetype                = dat
    item                    = 读取文件TABLES
    data_tab                = man1
  EXCEPTIONS
    invalid_filesize        = 1
    invalid_table_width     = 2
    invalid_type            = 3
    no_batch                = 4
    unknown_error           = 5
    gui_refuse_filetransfer = 6
    OTHERS                  = 7.
IF sy-subrc <> 0.
* message id sy-msgid type sy-msgty number sy-msgno
* with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

LOOP AT man1 INTO man.
  WRITE: / man-name,man-high,man-weight.
ENDLOOP.

3、保存文件

*保存文件
DATA: BEGIN OF man,
      name(20) TYPE c,
      high TYPE p DECIMALS 2,
      weight TYPE p DECIMALS 2,
END OF man.

DATA: man1 LIKE TABLE OF man.
DATA: name TYPE rlgrap-filename, typa TYPE rlgrap-filetype.

man-name =  张参.
man-high = 1.68.
man-weight = 120.
INSERT man INTO TABLE man1.

man-name = 刘志.
man-high = 1.78.
man-weight = 160.
INSERT man INTO TABLE man1.

man-name =  钱华.
man-high = 2.22.
man-weight = 220.
INSERT man INTO man1 INDEX 2.

name = d:\temp\testad.txt.
typa = dat.


CALL FUNCTION DOWNLOADEXPORTING
    codepage                = testa
    filename                = name
    filetype                = typa
    item                    = 文件测试TABLES
    data_tab                = man1
  EXCEPTIONS
    invalid_filesize        = 1
    invalid_table_width     = 2
    invalid_type            = 3
    no_batch                = 4
    unknown_error           = 5
    gui_refuse_filetransfer
    =6
    OTHERS                  = 7.
IF
sy-subrc <> 0.
* message id sy-msgid type sy-msgty number sy-msgno
* with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

4、格式化输出

DATA wa LIKE spfli.
WRITE:/.

WRITE:10航班承运人‘,40航班连接‘,60国家代码‘,80起飞城市‘,100起飞机场‘.

5、内表排序

*内表排序
DATA: BEGIN OF man,
      name(20) TYPE c,
      high TYPE p DECIMALS 2,
      weight TYPE p DECIMALS 2,
END OF man.

DATA: man1 LIKE hashed TABLE OF man with unique key name.

man-name =  张参.
man-high = 1.68.
man-weight = 120.
INSERT man INTO TABLE man1.

man-name = 刘志.
man-high = 1.78.
man-weight = 160.
INSERT man INTO TABLE man1.

man-name =  钱华.
man-high = 2.22.
man-weight = 220.
INSERT man INTO table man1.

LOOP AT man1 INTO man.
  WRITE: / man-name,man-high,man-weight.
ENDLOOP.
ULINE.

sort man1 ascending by weight descending .
skip.
uline.
LOOP AT man1 INTO man.
  WRITE: / man-name,man-high,man-weight.
ENDLOOP.

6、消息

*消息
*--开始
*DATA: msg1(20) TYPE c VALUE ‘测试‘.
*DATA: msg2(20) TYPE c VALUE ‘ABAP‘.
*DATA: msg3(20) TYPE c VALUE ‘消息!‘.
*
*MESSAGE i006(ymess) WITH msg1 msg2 msg3.
*
*data:BEGIN OF man,
*     name(30) TYPE c,
*     high TYPE p DECIMALS 2,
*     weight TYPE p DECIMALS 2,
*END OF man.
*
*FIELD-SYMBOLS <fsa> LIKE man.
*DATA man1 LIKE man.
*
*man-name = ‘雨荷‘.
*man-high = ‘1.78‘.
*man-weight = 140.
*
*ASSIGN man TO <fsa>.
*WRITE:/ <fsa>-name,
*    man-high,
*<fsa>-weight.
*--结束

*--开始
*DATA: msg1(20) TYPE c VALUE ‘测试‘.
*DATA: msg2(20) TYPE c VALUE ‘ABAP‘.
*DATA: msg3(20) TYPE c VALUE ‘消息!‘.
*
*MESSAGE i001(00) WITH msg1 msg2 msg3.
*
*
*DATA: c1(2) TYPE c,
*      c2(2) TYPE c,
*      c3(2) TYPE c,
*      c4(2) TYPE c,
*      c5(20) TYPE c VALUE ‘91* 12*23*344445‘,
*      c9(2) TYPE c.
*
*c9 = ‘* ‘.
*WRITE: / .
*WRITE c5.
*SPLIT c5 AT c9 INTO c1 c2 c3 c4 .
*WRITE: / c1,c2,c3,c4.
*--结束

*--开始
*DATA: msg1(20) TYPE c VALUE ‘测试‘.
*DATA: msg2(20) TYPE c VALUE ‘ABAP‘.
*DATA: msg3(20) TYPE c VALUE ‘消息!‘.
*
*MESSAGE i001(00) WITH msg1 msg2 msg3.
*
*
*DATA: BEGIN OF man,
*      name(20) TYPE c,
*      high TYPE p DECIMALS 2,
*      weight TYPE p DECIMALS 2,
*END OF man.
*
*DATA: man1 LIKE TABLE OF man WITH HEADER LINE,
*man2 LIKE TABLE OF man.
*
*man-name =  ‘张参‘.
*man-high = ‘1.68‘.
*man-weight = 120.
*APPEND man TO man1.
*
*man-name = ‘刘志‘.
*man-high = ‘1.78‘.
*man-weight = 160.
*APPEND man TO man1.
*
*MOVE man1[] TO man2.
*
*
*  WRITE: / man-name,man-high,man-weight.
*
*
*LOOP AT man1.
*write: / man1-name,man1-high,man1-weight.
*ENDLOOP.
*--结束

 

ABAP:从例子学习ABAP

原文:https://www.cnblogs.com/miaosj/p/10384232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!