QM—定量检验特性需求程序

*&---------------------------------------------------------------------*
*& Report zpprp010.
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zpprp010.
TYPE-POOLS:slis,icon.

"加载需要表
TABLESanlb.

"Excel上传标准内表
DATAiexcel  LIKE alsmex_tabline OCCURS WITH HEADER LINE.

"导入Excel转换后内表格式
DATABEGIN OF wa_excel,
        icon    TYPE char4,    "图标
        werks   TYPE werks_d"工厂
        zwjtx   TYPE char8,   "主文件检验特性
        zqdat   TYPE dats,    "有效起始日期
        ztext   TYPE char40,  "短文本
        zjszd   TYPE char40,  "搜索字段
        zfwxj   TYPE c,       "固定X规范下限
        zfwsj   TYPE c,       "固定X规范上限
        zmbsz   TYPE c,       "固定X检查目标值
        zhzjl   TYPE c,       "汇总特性记录
        zdzjl   TYPE c,       "单值特性记录
        zxsws   TYPE char3,   "小数位数
        zjldw   TYPE char6,   "计量单位
        zmbz    TYPE char13,  "目标值
        zfwxjz  TYPE char13,  "规范下限值
        zfwsjz  TYPE char13,  "规范上限值
        zinfro  TYPE char2,   "信息字段1
        zfloor1 TYPE char2,   "第一个下限值
        zupper1 TYPE char2,   "第一上限值
        zjyfs   TYPE char3,   "检验方法
        zfsgc   TYPE werks_d"检验方法的工厂
        message TYPE bapi_msg,"消息
      END OF wa_excel,
      gt_alv LIKE STANDARD TABLE OF wa_excel WITH HEADER LINE.

DATABEGIN OF wa_bdc,
        werks   TYPE bdc_fval,   "工厂
        zwjtx   TYPE bdc_fval,   "主文件检验特性
        zqdat   TYPE dats,       "有效起始日期
        ztext   TYPE bdc_fval,   "短文本
        zjszd   TYPE bdc_fval,   "搜索字段
        zfwxj   TYPE bdc_fval,   "固定X规范下限
        zfwsj   TYPE bdc_fval,   "固定X规范上限
        zmbsz   TYPE bdc_fval,   "固定X检查目标值
        zhzjl   TYPE bdc_fval,   "汇总特性记录
        zdzjl   TYPE bdc_fval,   "单值特性记录
        zxsws   TYPE bdc_fval,   "小数位数
        zjldw   TYPE bdc_fval,   "计量单位
        zmbz    TYPE qsollwerte"目标值
        zfwxjz  TYPE qsollwerte"规范下限值
        zfwsjz  TYPE qsollwerte"规范上限值
        zinfro  TYPE bdc_fval,   "信息字段1
        zfloor1 TYPE bdc_fval,   "第一个下限值
        zupper1 TYPE bdc_fval,   "第一上限值
        zjyfs   TYPE bdc_fval,   "检验方法
        zfsgc   TYPE bdc_fval,   "检验方法的工厂
        zmbz1   TYPE char16,     "目标值
        zfwxjz1 TYPE char16,     "规范下限值
        zfwsjz1 TYPE char16,     "规范上限值
        zmbz2   TYPE bdc_fval,   "目标值
        zfwxjz2 TYPE bdc_fval,   "规范下限值
        zfwsjz2 TYPE bdc_fval,   "规范上限值
        zqdat1  TYPE bdc_fval,   "有效起始日期
      END OF wa_bdc,
      gt_bdc LIKE STANDARD TABLE OF wa_bdc WITH HEADER LINE.

"定义ALV输出所需变量
DATAs_layout     TYPE slis_layout_alv,
      gt_fieldcat  TYPE slis_t_fieldcat_alv.

"定义临时变量
DATA msg TYPE string.

"导入文件选择
SELECTION-SCREEN BEGIN OF BLOCK WITH FRAME TITLE TEXT-001.
  PARAMETERSp_fname  LIKE rlgrap-filename MEMORY ID m01 OBLIGATORY.      获取文件路径
*  PARAMETERS: p_fname  LIKE rlgrap-filename OBLIGATORY.      " 获取文件路径
SELECTION-SCREEN END OF BLOCK 1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
  PERFORM get_p_fname.                把需要导入的文件的路径 存放在P_name 

INITIALIZATION.

START-OF-SELECTION.
  PERFORM frm_upload.   "通过路径 EXCEL中的数据导入到 内表iexcel
  PERFORM frm_display.  "结果输出显示

FORM get_p_fname.      获取文件路径
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      mask             ',Excel Files,*.xls,All Files,*.csv,*.*.'
      title            '请选择要导入的文件'
    IMPORTING
      filename         p_fname
    
EXCEPTIONS
      inv_winsys       1
      no_batch         2
      selection_cancel 3
      selection_error  4
      OTHERS           5.
  IF sy-subrc <> AND sy-subrc <> 3.
    MESSAGE e100(zdevWITH 'error'(007).
  ENDIF.
ENDFORM.

FORM frm_upload.
  DATA:gv_zgc   TYPE znetpr .
  DATA:gv_fgc   TYPE znetpr .
  DATA:gv_chack TYPE znetpr .
  DATA:gv_zgcon TYPE char13 .
  DATA:gv_fgcon TYPE char13 .
  DATA:gv_un TYPE c .
  DATA:gs_dljc_01 TYPE ztpp_dljc_01 .
  "状态栏显示
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      text TEXT-s01.

  DATA i_while TYPE char10 .
  CLEAR i_while .

*  WHILE i_while < 700000.
*     ADD 1 TO i_while .
*  ENDWHILE.

  "上载文件
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                p_fname
      i_begin_col             
1
      i_begin_row             2
      i_end_col               20
      i_end_row               9998
    TABLES
      intern                  iexcel
    
EXCEPTIONS
      inconsistent_parameters 1
      upload_ole              2
      OTHERS                  3.
    "检查Excel数据内表
    IF sy-subrc <> 0.
      MESSAGE '文件读取失败,请确保该文件未被占用!' TYPE 'S'DISPLAY LIKE 'E'.
      STOP.
    ENDIF.

    IF iexcel IS INITIAL.
      MESSAGE TEXT-m03 TYPE 'S'DISPLAY LIKE 'E'.
      STOP.
    ENDIF.

*    "转换数据提示
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        text TEXT-s02.

    LOOP AT iexcel.
      CASE iexcel-col.
*        WHEN '0001'.
*          MOVE iexcel-value TO wa_excel-werks.    "工厂
*        WHEN '0002'.
*          MOVE iexcel-value TO wa_excel-zwjtx.    "主文件检验特性
*        WHEN '0003'.
*          MOVE iexcel-value TO wa_excel-zqdat.    "有效起始日期
*        WHEN '0004'.
*          MOVE iexcel-value TO wa_excel-ztext.    "短文本
*        WHEN '0005'.
*          MOVE iexcel-value TO wa_excel-zjszd.    "搜索字段
*        WHEN '0006'.
*          MOVE iexcel-value TO wa_excel-zfwxj.    "固定X规范下限
*        WHEN '0007'.
*          MOVE iexcel-value TO wa_excel-zfwsj.    "固定X规范上限
*        WHEN '0008'.
*          MOVE iexcel-value TO wa_excel-zmbsz.    "固定X检查目标值
*        WHEN '0009'.
*          MOVE iexcel-value TO wa_excel-zhzjl.    "汇总特性记录
*        WHEN '0010'.
*          MOVE iexcel-value TO wa_excel-zdzjl.    "单值特性记录
*        WHEN '0011'.
*          MOVE iexcel-value TO wa_excel-zxsws.    "小数位数
        WHEN '0012'.
            MOVE iexcel-value TO wa_excel-zjldw.    "计量单位
        WHEN '0013'.
            MOVE iexcel-value TO wa_excel-zmbz.     "目标值
        WHEN '0014'.
            MOVE iexcel-value TO wa_excel-zfwxjz.   "规范下限值
        WHEN '0015'.
            MOVE iexcel-value TO wa_excel-zfwsjz.   "规范上限值
        WHEN '0016'.
            MOVE iexcel-value TO wa_excel-zinfro.   "信息字段1
*        WHEN '0017'.
*          MOVE iexcel-value TO wa_excel-zfloor1.  "第一个下限值
*        WHEN '0018'.
*          MOVE iexcel-value TO wa_excel-zupper1.  "第一上限值
        WHEN '0019'.
            MOVE iexcel-value TO wa_excel-zjyfs.    "检验方法
*        WHEN '0020'.
*          MOVE iexcel-value TO wa_excel-zfsgc.    "检验方法的工厂
      ENDCASE.

      AT END OF row.  在每一行结束的时候 把工作区域WA_EXCEL中的值写到内表GT_ALV
*------------------------------------------------------------------------------------
*        数据检查
*------------------------------------------------------------------------------------
        CASE ''.
          WHEN wa_excel-zjldw.
            MESSAGE '计量单位不能为空!'   TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
          WHEN wa_excel-zmbz.
            MESSAGE '目标值不能为空!'     TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
          WHEN wa_excel-zfwxjz.
            MESSAGE '规范下限值不能为空!TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
          WHEN wa_excel-zfwsjz.
            MESSAGE '规范上限值不能为空!TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
          WHEN wa_excel-zinfro.
            MESSAGE '信息字段1不能为空!'  TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
          WHEN wa_excel-zjyfs.
            MESSAGE '检验方法不能为空!'   TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
          WHEN OTHERS.
        ENDCASE.
         CLEAR:gv_chack .
         gv_chack wa_excel-zfwsjz wa_excel-zfwxjz .
         IF gv_chack < 0.
            MESSAGE '范围下限值大于范围上限值!TYPE 'S'DISPLAY LIKE 'E'.
            STOP.
         ENDIF.

         wa_excel-werks '1011'.       "工厂
         wa_excel-zqdat '20180101'.   "有效起始日期
         wa_excel-zdzjl 'X'.          "单值特性记录
         wa_excel-zxsws '3'.          "小数位数

         CLEAR:gv_zgc .
         CLEAR:gv_fgc .
         CLEAR:gv_zgcon .
         CLEAR:gv_fgcon .
         gv_zgc   wa_excel-zfwsjz wa_excel-zmbz .
         gv_fgc   wa_excel-zfwxjz wa_excel-zmbz .
         gv_zgcon wa_excel-zfwsjz wa_excel-zmbz .
         gv_fgcon wa_excel-zfwxjz wa_excel-zmbz .
*------------------------------------------------------------------------------------
*        固定值'X'处理
*------------------------------------------------------------------------------------
*只有无公差的时候zfwxj/zfwsj为空否则为'X'
        IF gv_zgc IS NOT INITIAL OR gv_fgc IS NOT INITIAL.
           wa_excel-zfwxj 'X'."固定X规范下限
           wa_excel-zfwsj 'X'."固定X规范上限
        ENDIF.
*只有正正公差或负负公差时wa_excel-zmbsz为空否则为‘X’
        IF gv_zgc * gv_fgc <= 0.
           wa_excel-zmbsz 'X' ."固定X检查目标值
        ENDIF.
*------------------------------------------------------------------------------------
*        字符串处理
*------------------------------------------------------------------------------------
        CLEAR:gv_un .
        CASE wa_excel-zjldw.
          WHEN '毫米'.
           gv_un 'H'.
          WHEN '微米'.
           gv_un 'D'.
          WHEN '厘米'.
           gv_un 'P'.
          WHEN ''.
           gv_un 'W'.
          WHEN '动平衡'.
           gv_un 'L'.
          WHEN OTHERS.
           gv_un 'N'.
        ENDCASE.

        IF gv_zgc IS NOT INITIAL.
          IF gv_zgc >= 0.
             CONCATENATE '+' gv_zgcon INTO gv_zgcon .
          ELSE.
             gv_zgcon gv_zgcon * -.
             CONCATENATE '-' gv_zgcon INTO gv_zgcon .
          ENDIF.
          CONDENSE gv_zgcon NO-GAPS.
        ENDIF.
        IF gv_fgc IS NOT INITIAL.
          IF gv_fgc >= 0.
             CONCATENATE '+' gv_fgcon INTO gv_fgcon .
          ELSE.
             gv_fgcon gv_fgcon * -.
             CONCATENATE '-' gv_fgcon INTO gv_fgcon .
          ENDIF.
          CONDENSE gv_fgcon NO-GAPS.
        ENDIF.

        IF gv_zgc IS INITIAL AND gv_fgc IS INITIAL.
          CONCATENATE wa_excel-zinfro wa_excel-zmbz gv_un wa_excel-zjyfs INTO wa_excel-zjszd .
        ELSEIF gv_zgc IS NOT INITIAL AND gv_fgc IS INITIAL.
          CONCATENATE wa_excel-zinfro wa_excel-zmbz gv_un gv_zgcon gv_un wa_excel-zjyfs INTO wa_excel-zjszd .
        ELSEIF gv_zgc IS INITIAL AND gv_fgc IS NOT INITIAL.
          CONCATENATE wa_excel-zinfro wa_excel-zmbz gv_un gv_fgcon gv_un wa_excel-zjyfs INTO wa_excel-zjszd .
        ELSE.
          CONCATENATE wa_excel-zinfro wa_excel-zmbz gv_un gv_zgcon gv_un '/' gv_fgcon gv_un wa_excel-zjyfs INTO wa_excel-zjszd .
        ENDIF.
        CONDENSE wa_excel-zjszd NO-GAPS.
        wa_excel-ztext wa_excel-zjszd .
        SELECT SINGLE zwjtx INTO wa_excel-zwjtx FROM ztpp_dljc_01
          
WHERE zjszd wa_excel-zjszd .

        IF wa_excel-zwjtx IS INITIAL.

         CALL FUNCTION 'NUMBER_GET_NEXT'
          EXPORTING
            nr_range_nr             '01'
            object                  'ZWJTX_NO1'
          IMPORTING
            number                  wa_excel-zwjtx
          
EXCEPTIONS
            interval_not_found      1
            number_range_not_intern 2
            object_not_found        3
            quantity_is_0           4
            quantity_is_not_1       5
            interval_overflow       6
            buffer_overflow         7
            OTHERS                  8.

         CLEAR gs_dljc_01 .
         gs_dljc_01-zjszd wa_excel-zjszd .
         gs_dljc_01-zwjtx wa_excel-zwjtx .
         MODIFY ztpp_dljc_01 FROM gs_dljc_01 .
         COMMIT WORK .

        ENDIF.

        wa_excel-icon '@9R@'.

       APPEND wa_excel TO gt_alv.
       CLEAR wa_excel.
     ENDAT.
    ENDLOOP.

     SORT gt_alv[] BY zwjtx .

ENDFORM.

FORM frm_display .
  CLEAR s_layout.
  s_layout-zebra 'X'.
  s_layout-colwidth_optimize 'X'.
*  s_layout-box_fieldname    = 'BOX'.
  PERFORM frm_fill_field .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      is_layout                s_layout
      it_fieldcat              
gt_fieldcat
      i_callback_program       
sy-repid
      i_callback_pf_status_set 
'PF_STATUS_SET'
*     i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
      i_callback_user_command  'USER_COMMAND'
    TABLES
      t_outtab                 gt_alv.
ENDFORM.                    " FRM_DISPLAY

FORM frm_fill_field .
  DATA:  wa_fieldcat TYPE slis_fieldcat_alv.
  DEFINE fill_field.
    wa_fieldcat-fieldname &1.
    wa_fieldcat-seltext_l &2.
*    wa_fieldcat-checkbox  = &3.
*     wa_fieldcat-edit    =  &4.

    IF wa_fieldcat-fieldname 'ICON'.
      wa_fieldcat-icon 'X'.
    ENDIF.

*    IF wa_fieldcat-fieldname = 'MESSAGE'.
*      wa_fieldcat-outputlen = 40 .
*    ENDIF.

    APPEND wa_fieldcat TO gt_fieldcat.
    CLEAR wa_fieldcat.
  END-OF-DEFINITION.
  fill_field :
        'ICON'  '处理状态',
        'WERKS' '工厂',
        'ZWJTX' '主文件检验特性',
        'ZQDAT' '有效起始日期',
        'ZTEXT' '短文本',
        'ZJSZD' '搜索字段',
        'ZFWXJ' '固定X规范下限',
        'ZFWSJ' '固定X规范上限',
        'ZMBSZ' '固定X检查目标值',
        'ZHZJL' '汇总特性记录',
        'ZDZJL' '单值特性记录',
        'ZXSWS' '小数位数',
        'ZJLDW' '计量单位',
        'ZMBZ'   '目标值',
        'ZFWXJZ' '规范下限值',
        'ZFWSJZ' '规范上限值',
        'ZINFRO' '信息字段1',
        'ZFLOOR1' '第一个下限值',
        'ZUPPER1' '第一上限值',
        'ZJYFS' '检验方法',
        'ZFSGC' '检验方法的工厂',
        'MESSAGE' '返回消息'.

ENDFORM.

FORM pf_status_set USING rt_extab TYPE slis_t_extab.
  SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.

FORM user_command USING i_ucomm LIKE sy-ucomm
                  is_selfield 
TYPE slis_selfield.
  DATAref TYPE REF TO cl_gui_alv_grid.
  DATA lv_stable TYPE lvc_s_stbl.   "刷新稳定性
  RANGESl_werks FOR t001w-werks.
  RANGESl_matnr FOR mara-matnr.
  DATA:l_bukrs TYPE t001k-bukrs.

  lv_stable-row '1'.
  lv_stable-col '1'.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid ref.
  CALL METHOD ref->check_changed_data.

  CASE i_ucomm.
    WHEN 'DEL_DJ'.
      DATA:lv_answer TYPE c.

      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
          text_question               '是否删除重复项?"是否删除重复项??
          icon_button_1               ''              "
          icon_button_2               ''              "
          default_button              '2'
          display_cancel_button       'X'
          start_column                25
          start_row                   6
        IMPORTING
          answer                      lv_answer
        
EXCEPTIONS
          text_not_found              1
          OTHERS                      2.

     IF lv_answer '1'.
       SORT gt_alv[] BY zwjtx .
       DELETE ADJACENT DUPLICATES FROM gt_alv[] COMPARING zwjtx.
     ENDIF.

    WHEN 'TO_LEAD'.

       CLEAR gt_bdc[] .
       LOOP AT gt_alv.
        MOVE-CORRESPONDING gt_alv TO gt_bdc .

        CALL FUNCTION 'FLTP_CHAR_CONVERSION'   "基本尺寸 把科学计数法转换成普通数据类型
          EXPORTING
            decim gt_bdc-zxsws
            expon 
0
            input gt_bdc-zmbz
            ivalu 
'X '
            maskn ' '
          IMPORTING
            flstr gt_bdc-zmbz1.

        CALL FUNCTION 'FLTP_CHAR_CONVERSION'   "基本尺寸 把科学计数法转换成普通数据类型
          EXPORTING
            decim gt_bdc-zxsws
            expon 
0
            input gt_bdc-zfwxjz
            ivalu 
'X '
            maskn ' '
          IMPORTING
            flstr gt_bdc-zfwxjz1.

        CALL FUNCTION 'FLTP_CHAR_CONVERSION'   "基本尺寸 把科学计数法转换成普通数据类型
          EXPORTING
            decim gt_bdc-zxsws
            expon 
0
            input gt_bdc-zfwsjz
            ivalu 
'X '
            maskn ' '
          IMPORTING
            flstr gt_bdc-zfwsjz1.

        gt_bdc-zmbz2   gt_bdc-zmbz1 .
        gt_bdc-zfwxjz2 gt_bdc-zfwxjz1 .
        gt_bdc-zfwsjz2 gt_bdc-zfwsjz1 .

        CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
         EXPORTING
           date_internal                  gt_bdc-zqdat
         
IMPORTING
           date_external                  gt_bdc-zqdat1
         
EXCEPTIONS
           date_internal_is_invalid       1
           OTHERS                         2
           .

        APPEND gt_bdc .
        CLEAR gt_alv .
        CLEAR gt_bdc .
       ENDLOOP.

       SORT gt_bdc[] BY zwjtx .
       DELETE ADJACENT DUPLICATES FROM gt_bdc[] COMPARING zwjtx.

       IF gt_bdc[] IS NOT INITIAL.
         PERFORM frm_to_lead .
       ENDIF.

    WHEN '&IC1'.
      DATA gs_qpmk TYPE qpmk .
      CHECK is_selfield-tabindex > 0.
      READ TABLE gt_alv INDEX is_selfield-tabindex.
      CLEAR gs_qpmk .
      SELECT SINGLE mkmnr INTO gs_qpmk-mkmnr FROM qpmk WHERE zaehler gt_alv-werks AND mkmnr gt_alv-zwjtx .
      IF sy-subrc 0.
        SET PARAMETER ID:'WRK' FIELD gt_alv-werks.  "工厂
        SET PARAMETER ID:'PMK' FIELD gt_alv-zwjtx.  "主文件检验特性
        CALL TRANSACTION 'QS24' AND SKIP FIRST SCREEN.
      ELSE .
        MESSAGE '特性'&& gt_alv-zwjtx && '(工厂'&& gt_alv-werks && ')' && '  不存在!TYPE 'S' DISPLAY LIKE 'E' .
      ENDIF.

    WHEN OTHERS.

  ENDCASE.

  CALL METHOD ref->refresh_table_display
    
EXPORTING
      is_stable lv_stable.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_TO_LEAD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_to_lead .
  DATA r_message TYPE bapi_msg .
  DATA subrc TYPE syst-subrc .
  DATA messtab TYPE TABLE OF bdcmsgcoll WITH HEADER LINE .
  LOOP AT gt_bdc.
    CLEAR subrc .
    CLEAR r_message .
    CLEAR messtab[] .
    CALL FUNCTION 'ZRFC_QS21_SAVE'
     EXPORTING
       ctu                   'X'
       mode                  'N'
       update                'L'
       nodata                '/'
       werks_001             gt_bdc-werks
       mkmnr_002             
gt_bdc-zwjtx
       gueltigab_003         
gt_bdc-zqdat1
       quantitaet_004        
'X'
       loekz_005             '2'
       kurztext_006          gt_bdc-ztext
       sortfeld_007          
gt_bdc-zjszd
       estukz5_008           
'X'
       rzwang4_009           'X'
       dokukz1_010           'X'
       pumfkz4_011           'X'
       messwerte_012         'X'
       druck1_013            'X'
       keineformel_014       'X'
       quantitaet_015        'X'
       loekz_016             '2'
       stellen_017           gt_bdc-zxsws
       masseinhsw_018        
gt_bdc-zjldw
       sollwert_019          
gt_bdc-zmbz2
       plausiunte_020        
gt_bdc-zfwxjz2
       plausioben_021        
gt_bdc-zfwsjz2
       quantitaet_022        
'X'
       loekz_023             '2'
       argument_024          '1'
       pmtnr_01_025          gt_bdc-zjyfs
       pmwerk_01_026         
gt_bdc-werks
       quantitaet_027        
'X'
       loekz_028             '2'
       quantitaet_029        'X'
       loekz_030             '2'
     IMPORTING
       subrc                 subrc
       r_message             
r_message
     
TABLES
       messtab               messtab[]
       
.

     IF r_message IS NOT INITIAL.
       LOOP AT gt_alv WHERE zwjtx gt_bdc-zwjtx AND werks gt_bdc-werks .
         gt_alv-message r_message .

         LOOP AT messtab WHERE msgtyp 'E' AND msgnr '149'.

         ENDLOOP.
         IF sy-subrc 0.
           gt_alv-icon    '@5D@' .
         ELSE .
           gt_alv-icon    '@5C@' .
         ENDIF.

         MODIFY gt_alv TRANSPORTING message icon.
       ENDLOOP.
     ENDIF.

     CLEAR gt_bdc .
  ENDLOOP.

  LOOP AT gt_alv WHERE message IS INITIAL.
    gt_alv-icon    '@5B@' .
    MODIFY gt_alv TRANSPORTING icon.
  ENDLOOP.

ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值