LOOP … ASSIGNING …”,可直接修改内表数据

ABAP 语法:“LOOP … ASSIGNING …”,可直接修改内表数据,效率更高

语法:LOOP … ASSIGNING …

LOOP AT lt_print ASSIGNING  FIELD-SYMBOL(<ls_print>) where qmnum is NOT INITIAL .  "打印计划的时候不用显示检验的信息

        <ls_print>-matxt2 =  ''.    "证书编号

        <ls_print>-matxt = ''.

        <ls_print>-auswkt = ''.

        <ls_print>-qmnam = ''.

ENDLOOP.

相比于"LOOP … INTO …""LOOP … ASSIGNING …"可以直接修改内表中的数据,不需要将数据循环到工作区,再用工作区更新到内表。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例程序,用于从Excel上传数据到通用内表: REPORT z_upload_excel_data. TYPES: BEGIN OF ty_data, field1 TYPE string, field2 TYPE string, field3 TYPE string, END OF ty_data. DATA: gt_data TYPE STANDARD TABLE OF ty_data. DATA: gv_filename TYPE string, gv_filetype TYPE string, gv_filepath TYPE string. PARAMETERS: p_file TYPE rlgrap-filename. * 获取文件信息 CALL FUNCTION 'WS_UPLOAD' EXPORTING filename = p_file filetype = 'ASC' IMPORTING filelength = gv_filelength filetype = gv_filetype filename = gv_filename filepath = gv_filepath EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 header_not_allowed = 8 separator_not_allowed = 9 header_too_long = 10 unknown_dp_error = 11 access_denied = 12 dp_out_of_memory = 13 disk_full = 14 dp_timeout = 15 OTHERS = 16. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * 读取Excel数据 DATA: gt_excel_data TYPE STANDARD TABLE OF alsmex_tabline. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING filename = gv_filename i_begin_col = 1 i_begin_row = 2 TABLES intern = gt_excel_data EXCEPTIONS inconsistent_parameters = 1 upload_ole = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * 将Excel数据转换为通用内表 LOOP AT gt_excel_data ASSIGNING FIELD-SYMBOL(<fs_excel_data>). DATA(lv_data) = <fs_excel_data>-value. SPLIT lv_data AT cl_abap_char_utilities=>horizontal_tab INTO TABLE DATA(lt_fields). IF sy-tabix = 1. CONTINUE. " 跳过表头行 ENDIF. APPEND VALUE ty_data( field1 = lt_fields[1] field2 = lt_fields[2] field3 = lt_fields[3] ) TO gt_data. ENDLOOP. * 输出上传的数据 LOOP AT gt_data ASSIGNING FIELD-SYMBOL(<fs_data>). WRITE: / <fs_data>-field1, <fs_data>-field2, <fs_data>-field3. ENDLOOP.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值