数据表的操作

REPORT zr_it_100.
SELECTION-SCREEN BEGIN OF BLOCK flag1 WITH FRAME TITLE text-001.
PARAMETERS s_vbeln TYPE zppcu-vbeln OBLIGATORY. "销售订单号
SELECTION-SCREEN END OF BLOCK flag1.
SELECTION-SCREEN BEGIN OF BLOCK flag2 WITH FRAME TITLE text-002.
PARAMETERS:p_a RADIOBUTTON GROUP g1 DEFAULT 'X',
           p_b RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK flag2.
DATA:gt_zppcu TYPE STANDARD TABLE OF zppcu WITH HEADER LINE.

SELECT * FROM zppcu INTO TABLE gt_zppcu WHERE vbeln = s_vbeln.

IF p_a IS NOT INITIAL.
  IF gt_zppcu[] IS NOT INITIAL.
    LOOP AT gt_zppcu.
      IF gt_zppcu-xloek = 'X'.
        MESSAGE '当前销售订单号已经关闭修改,是否开启修改?' TYPE 'I'.
        UPDATE zppcu SET xloek = ''  WHERE vbeln = s_vbeln."FROM gt_zppcu.
        MESSAGE '销售订单开启CU51修改操作成功.' TYPE 'S'.
      ELSE.
        MESSAGE '当前销售订单号已经开启修改,请勿重复操作。' TYPE 'E'.
      ENDIF.
    ENDLOOP.
  ELSE.
    gt_zppcu-vbeln = s_vbeln.
    gt_zppcu-xloek = ''.
    gt_zppcu-erdat = sy-datum.
    gt_zppcu-erzet = sy-uzeit.
    gt_zppcu-ernam = sy-uname.
    APPEND gt_zppcu.
    INSERT zppcu FROM gt_zppcu.
  ENDIF.
ENDIF.

IF p_b IS NOT INITIAL.
  IF gt_zppcu[] IS INITIAL.
    MESSAGE '当前销售订单号无修改开启记录.' TYPE 'E'.
  ELSE.
    LOOP AT gt_zppcu.
      IF gt_zppcu-xloek = 'X'.
        MESSAGE '当前销售订单号已经关闭修改,请勿重复操作.' TYPE 'E'.
      ELSE.
        UPDATE zppcu SET xloek = 'X' zgbrq = sy-datum zgbsj = sy-uzeit zgbr = sy-uname WHERE vbeln = s_vbeln."FROM gt_zppcu.
        MESSAGE '销售订单关闭CU51修改操作成功.' TYPE 'S'.
      ENDIF.
    ENDLOOP.
  ENDIF.
*  DELETE FROM zppcu WHERE vbeln = s_vbeln.
ENDIF.


关键词: ABAP SQL

网友评论

发表评论