王顾问,请教您一个问题。
生产订单报工之后,他们工艺路线删掉,又重建了。然后两边的工艺路线组就对不上了。标工就取错了。
后来想,我不按工单里面的组来关联,按物料来关联。后来发现PLPO 一个组有很多行,甚者有上百行,光凭组代码也无法确定哪条与前台的标工对应。

abcde 2018/7/23 9:35:46

这个问题要怎么解决?

物料的标准工时取数

 

2018/7/23 11:12:30
顾问  2018/7/23 11:12:30

那个报表?

abcde 2018/7/23 11:13:00

ZPP014 报工明细查询

顾问 2018/7/23 11:13:31

那你能不能改成标准的工时取生产订单的,别取工艺路线的?
2018/7/23 11:15:01
abcde 2018/7/23 11:15:01

生产订单的标工不是最新的。

abcde 2018/7/23 11:15:56

最新的他们只能维护到工艺路线里面。

顾问 2018/7/23 11:16:03

稍等,给你找个函数。。
2018/7/23 11:30:18
顾问- 2018/7/23 11:30:18

你调试下CPCC_S_TASK_LIST_READ这个函数。

顾问 2018/7/23 11:30:22

看行不行。。

 

你们用量很多替代工序,应该是有好多条才对。。

顾问- 2018/7/23 14:23:14


2018/7/23 14:28:15
abcde 2018/7/23 14:28:15

那我的标工是不是只要取节点1就好了?

顾问- 2018/7/23 14:29:14

应该是可以的,如果每个替代工序都是一样的话。。

顾问-  2018/7/23 14:29:33

比如A1拉、A2拉的效率如果一样的话,就没啥所谓。。

 

*&---------------------------------------------------------------------*
*& Report ZPPR014
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zppr014 NO STANDARD PAGE HEADING.
TYPE-POOLSslis,vrm.
TABLES:afru,afko,afpo,crhd,aufk,anla,cobrb.
TYPES:BEGIN OF ty_list,
        ersda     TYPE afru-ersda"
        auart     TYPE aufk-auart,
        aufnr     TYPE afru-aufnr,
        gamng     TYPE afko-gamng,
        rueck     TYPE afru-rueck,
        rmzhl     TYPE afru-rmzhl,
        lmnga     TYPE afru-lmnga,
        aueru     TYPE afru-aueru,
        arbid     TYPE afru-arbid,
        ism01     TYPE plpo-vgw01,
        ism02     TYPE plpo-vgw01,
        ism03     TYPE plpo-vgw01,
        arbpl     TYPE crhd-arbpl,
        plnbez    TYPE afko-plnbez,
        maktx     TYPE makt-maktx,
        werks     TYPE afru-werks,
        all_s_rg  TYPE plpo-vgw01,
        all_s_jq  TYPE plpo-vgw01,
        all_s_zf  TYPE plpo-vgw01,
        all_s_mj  TYPE plpo-vgw01,
        all_a_rg  TYPE plpo-vgw01,
        all_a_jq  TYPE plpo-vgw01,
        all_a_zf  TYPE plpo-vgw01,
        all_d_rg  TYPE plpo-vgw01,
        all_d_zf  TYPE plpo-vgw01,
        all_d_jq  TYPE plpo-vgw01,
        r_rg(10),
        r_zf(10),
        r_jq(10),
*        ltxa1     TYPE afru-ltxa1,
        ltxa1     TYPE c LENGTH 300,
        ktext     LIKE aufk-ktext,
        anln(15),
        anln1     LIKE anla-anln1,
        anln2     LIKE anla-anln2,
        txt50     LIKE anla-txt50,
        ddzt(100),
        budat     LIKE afru-budat,
        zzrr      LIKE afru-zzrr,
        ernam     LIKE  aufk-ernam,
      END OF ty_list.
TYPESBEGIN OF ty_internal,
         _number        TYPE i "***
         _excp          TYPE c"需要在LAYOUT-EXCP_FNAME中指定,绿灯3,红灯1,黄灯2"
         _check         TYPE c "复选框,还需要在FCAT中设置成CHECKBOX,记录用户的选择
         _box           TYPE c "需要在LAYOUT-BOX_NAME中指定,记录用户的选择,跟_BOX不同,记录的是ALV控件的标准选择框,
         _delete        TYPE c "记录删除标识X"
         _action        TYPE c "用户操作,插入I,更新U,删除D"
         _row_id        TYPE sytabix"行项目ID"
         _tabix         TYPE sytabix"引用的表行标识"
         _line_color(4TYPE c"行项目的颜色"
         _field_style   TYPE lvc_t_styl"行项目的样式"
         _mess_type     TYPE c"消息类型,用于数据检查"
         _message       TYPE char255"行项目的消息内容"
         reffi          TYPE mara-meins,

       END OF ty_internal.
TYPESBEGIN OF ty_type.
    INCLUDE TYPE ty_list.
    INCLUDE TYPE ty_internal.
TYPES END OF ty_type.
DATAgt_table TYPE TABLE OF ty_type WITH HEADER LINE.
*ALV类变量定义

DATAgs_layout         TYPE lvc_s_layo.
DATAgt_fieldcat       TYPE lvc_t_fcat.
DATAglobal_alv_sort       TYPE lvc_t_sort.

DATAls_style TYPE lvc_s_styl,
      lt_style TYPE lvc_t_styl.
DATAx_save     TYPE c,
      gs_variant TYPE disvariant,
      g_title    TYPE lvc_title.
DATAg_grid            TYPE REF TO cl_gui_alv_grid.

DATA:BEGIN OF gs_aufk,
       aufnr LIKE aufk-aufnr,
       ktext LIKE aufk-ktext"订单描述
       objnr LIKE aufk-objnr"对象号
       auart LIKE aufk-auart"订单类型
     END OF gs_aufk.
DATA:BEGIN OF gs_afko,
       aufnr LIKE afko-aufnr,
       plnty LIKE afko-plnty,
       plnnr LIKE afko-plnnr,
       plnal LIKE afko-plnal,
     END OF gs_afko.
DATA:BEGIN OF gs_plpo,
       plnty LIKE plpo-plnty,
       plnnr LIKE plpo-plnnr,
       vgw01 LIKE plpo-vgw01,
       vgw02 LIKE plpo-vgw01,
       vgw03 LIKE plpo-vgw01,
       plnkn LIKE plpo-plnkn,
     END OF gs_plpo.
DATA:BEGIN OF gs_cobrb,
       objnr LIKE cobrb-objnr"对象号
       anln1 LIKE cobrb-anln1"主资产号
       anln2 LIKE cobrb-anln2"次级资产号
     END OF gs_cobrb.
DATA:BEGIN OF gs_anla,
       anln1 LIKE cobrb-anln1"主资产号
       anln2 LIKE cobrb-anln2"次级资产号
       txt50 LIKE anla-txt50"资产描述
     END OF gs_anla.
DATA:gt_aufk  LIKE TABLE OF gs_aufk,
     gt_cobrb LIKE TABLE OF gs_cobrb,
     gt_afko  LIKE TABLE OF gs_afko,
     gt_plpo  LIKE TABLE OF gs_plpo,
     gt_anla  LIKE TABLE OF gs_anla.

SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
PARAMETERS:p_werks LIKE aufk-werks DEFAULT '1000' OBLIGATORY.
SELECT-OPTIONS:s_ersda FOR afru-ersda DEFAULT sy-datum,
               s_budat FOR afru-budat,
               s_aufnr FOR afko-aufnr,
               s_auart FOR aufk-auart,
               s_arbpl FOR crhd-arbpl MATCHCODE OBJECT zarbpl.
SELECTION-SCREEN:END OF BLOCK blk1.

START-OF-SELECTION.
  PERFORM frm_get_data.
  IF gt_table[] IS NOT  INITIAL.
    PERFORM frm_dis_data.
  ELSE.
    MESSAGE '无符合条件的数据TYPE 'I' DISPLAY LIKE 'E'.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  frm_dis_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_dis_data.
  PERFORM dis_prepare_layout       CHANGING gs_layout.
  PERFORM dis_prepare_field_catalog CHANGING gt_fieldcat.
  PERFORM dis_show_data_alv.
ENDFORM.                    "frm_dis_data













*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_get_data.
  DATA:vgw01 LIKE plpo-vgw01,
       vgw02 LIKE plpo-vgw01,
       vgw03 LIKE plpo-vgw01,
       vgw04 LIKE plpo-vgw01,
       vgw05 LIKE plpo-vgw01,
       vgw06 LIKE plpo-vgw01.
  DATA:rate TYPE DECIMALS 2.
  DATABEGIN OF lt_itab OCCURS 0,
          arbid TYPE afru-arbid,
        END OF lt_itab.

  DATA:BEGIN OF gs_plpo,
         werks  LIKE plpo-werks,
         plnnr  LIKE plpo-plnnr,
         arbid  LIKE plpo-arbid,
*         ltxa1  LIKE plpo-ltxa1,
         ltxa1  TYPE c LENGTH 300,
         bmsch  LIKE plpo-bmsch,
         vgw01  LIKE plpo-vgw01,
         vgw02  LIKE plpo-vgw02,
         vgw03  LIKE plpo-vgw03,
         vgw04  LIKE plpo-vgw04,
         anzma  LIKE plpo-anzma,
         splim  LIKE plpo-splim,
         aufnr  LIKE afko-aufnr,
         plnbez LIKE afko-plnbez,
         gamng  LIKE afko-gamng,
         auart  LIKE aufk-auart,
         ernam  LIKE aufk-ernam,
         plnkn  LIKE plpo-plnkn,
       END OF gs_plpo.
  DATA:BEGIN OF gs_makt,
         matnr LIKE makt-matnr,
         maktx LIKE makt-maktx,
       END OF gs_makt.
  DATA:BEGIN OF gs_crhd,
         objid LIKE crhd-objid,
         arbpl LIKE crhd-arbpl,
       END OF gs_crhd.
  DATA:gt_plpo LIKE TABLE OF gs_plpo,
       gt_makt LIKE TABLE OF gs_makt,
       gt_crhd LIKE TABLE OF gs_crhd.


  SELECT DISTINCT objid INTO  TABLE lt_itab FROM crhd
     
WHERE arbpl IN s_arbpl.
  IF lt_itab[] IS NOT INITIAL.
    SELECT DISTINCT INTO CORRESPONDING FIELDS OF TABLE gt_table FROM afru
       
FOR ALL ENTRIES IN lt_itab
     
WHERE ersda IN s_ersda AND werks EQ p_werks AND stokz '' AND stzhl ''
       AND aufnr IN s_aufnr AND arbid EQ lt_itab-arbid AND budat IN s_budat.
  ELSE.
    SELECT DISTINCT INTO CORRESPONDING FIELDS OF TABLE gt_table FROM afru
     
WHERE ersda IN s_ersda AND werks EQ p_werks AND stokz '' AND stzhl ''
       AND aufnr IN s_aufnr AND budat IN s_budat."
  ENDIF.
  IF gt_table[] IS NOT INITIAL.

    SELECT plpo~werks plpo~plnnr arbid ltxa1 bmsch vgw01 vgw02 vgw03 vgw04 anzma
               splim afko
~aufnr plnbez gamng auart ernam plnkn
              
INTO CORRESPONDING FIELDS OF TABLE gt_plpo FROM plpo
              INNER 
JOIN afko ON plpo~plnnr afko~plnnr
              
JOIN aufk ON afko~aufnr aufk~aufnr
              
FOR ALL ENTRIES IN gt_table WHERE plpo~arbid gt_table-arbid
              
AND afko~aufnr gt_table-aufnr
              
AND plpo~werks p_werks  .
    SELECT matnr maktx INTO  TABLE gt_makt FROM makt FOR ALL ENTRIES IN gt_plpo WHERE matnr gt_plpo-plnbez.

    SELECT objid arbpl INTO TABLE gt_crhd  FROM crhd FOR ALL ENTRIES IN gt_plpo WHERE objid gt_plpo-arbid.


    SORT gt_plpo BY aufnr .
    SORT gt_makt BY matnr.
    SORT gt_crhd BY objid.
    DELETE ADJACENT DUPLICATES FROM gt_makt COMPARING matnr.
    DELETE ADJACENT DUPLICATES FROM gt_crhd COMPARING objid.

    DATA p_arbpl(2TYPE c.
    DATAlv_name TYPE thead-tdname.
    DATAls_tline  TYPE tline .
    DATAlt_tline LIKE TABLE OF tline .

    LOOP AT gt_table.

      CLEAR gs_crhd.
      READ TABLE gt_crhd INTO gs_crhd WITH KEY objid gt_table-arbid BINARY SEARCH.
      IF  sy-subrc EQ .
        gt_table-arbpl gs_crhd-arbpl.
      ENDIF.
      p_arbpl gt_table-arbpl+0(2).
      SELECT SINGLE plnbez INTO gt_table-plnbez FROM afko WHERE aufnr gt_table-aufnr .
      CLEAR gs_plpo.
      READ TABLE gt_plpo INTO gs_plpo WITH KEY aufnr gt_table-aufnr BINARY SEARCH .
      IF  sy-subrc EQ 0.
        "MODIFY BY LXF START

        DATAlv_plnnr LIKE mapl-plnnr .
        DATAlt_re LIKE TABLE OF   opr_class_data .
        DATA:  ls_re LIKE opr_class_data .
        SELECT SINGLE plnnr INTO lv_plnnr FROM mapl
           
WHERE matnr gt_table-plnbez
           
AND  plnty EQ 'N'
           AND werks gt_table-werks
          
AND loekz EQ ''.

        CALL FUNCTION 'CPCC_S_TASK_LIST_READ'
          EXPORTING
            iv_plnty          'N'
            iv_plnnr          lv_plnnr
            iv_plnal          
'01'
            iv_datuv          sy-datum
            iv_datub          
'99991231'
*           IV_READ_FROM_DB   =
*           IV_DISPLAY_LOG    = ' '
          IMPORTING
*           ET_TSK_CLASS_DATA =
*           ET_MTK_CLASS_DATA =
            et_opr_class_data lt_re
*           ET_PRT_CLASS_DATA =
*           ET_CHA_CLASS_DATA =
*           ET_CHV_CLASS_DATA =
*           ET_RETURN         =
          .

*        gs_plpo-bmsch
*        gs_plpo-vgw02
*        gs_plpo-anzma
*        gs_plpo-splim.

        LOOP AT lt_re INTO ls_re WHERE plnfl EQ '000000' AND vornr EQ '0010'.

          gs_plpo-bmsch   =  ls_re-bmsch .
          gs_plpo-vgw02   =  ls_re-vgw02  .
          gs_plpo-anzma   =  ls_re-anzma .
          gs_plpo-splim   =  ls_re-splim .

        ENDLOOP .
        CLEAR lt_re[] .
        CLEAR ls_re.


        "MODIFY BY LXF END




        gt_table-auart gs_plpo-auart.
        gt_table-ernam gs_plpo-ernam.
        gt_table-gamng gs_plpo-gamng.
        gt_table-plnbez gs_plpo-plnbez.
*        IF gt_table-auart = 'LX03' OR gt_table-auart = 'LX08'  OR gt_table-auart = 'LX22'
*          OR gt_table-auart = 'LX23' OR gt_table-auart = 'LX31' OR gt_table-auart = 'LX32'
*            OR ( gt_table-auart = 'LX21' AND p_arbpl <> '再加')
*            OR ( gt_table-auart = 'LX33' AND p_arbpl <> '再加')
*            OR ( gt_table-auart = 'LX07' AND  p_arbpl = 'ZS' )
*            OR ( gt_table-auart = 'LX06' AND  p_arbpl = 'ZS' )
*            OR ( gt_table-auart = 'LX12' AND  p_arbpl = 'ZS' ) .
        IF  gt_table-auart 'LX08'  OR gt_table-auart 'LX22'
            OR gt_table-auart 'LX23' OR gt_table-auart 'LX31' OR gt_table-auart 'LX32'
            OR gt_table-auart 'LX03'   AND p_arbpl <> '再加')
            OR gt_table-auart 'LX21' AND p_arbpl <> '再加')
            OR gt_table-auart 'LX33' AND p_arbpl <> '再加')
            OR gt_table-auart 'LX07' AND  p_arbpl 'ZS' )
            OR gt_table-auart 'LX06' AND  p_arbpl 'ZS' )
            OR gt_table-auart 'LX12' AND  p_arbpl 'ZS' ) .

          IF gs_plpo-bmsch <> AND gs_plpo-splim <> 0.
            gt_table-all_s_rg gt_table-lmnga / gs_plpo-bmsch * gs_plpo-vgw02 * gs_plpo-anzma / gs_plpo-splim.
            gt_table-all_s_jq gt_table-lmnga / gs_plpo-bmsch * gs_plpo-vgw01 / gs_plpo-splim.
            gt_table-all_s_zf gt_table-lmnga / gs_plpo-bmsch * gs_plpo-vgw03 * gs_plpo-anzma / gs_plpo-splim.
          ELSE.
            gt_table-all_s_rg 0.
            gt_table-all_s_jq 0.
            gt_table-all_s_zf 0.
          ENDIF.
          gt_table-all_s_mj gt_table-lmnga.
          gt_table-all_a_rg gt_table-ism02.
          gt_table-all_a_jq gt_table-ism01.
          gt_table-all_a_zf gt_table-ism03.
          gt_table-all_d_rg =  gt_table-all_a_rg  gt_table-all_s_rg.
          gt_table-all_d_jq =  gt_table-all_a_jq  gt_table-all_s_jq.
          gt_table-all_d_zf =  gt_table-all_a_zf  gt_table-all_s_zf.

          CLEAR rate.
          IF gt_table-all_a_rg <> 0.
            rate gt_table-all_s_rg / gt_table-all_a_rg * 100.
            gt_table-r_rg rate.
            CONCATENATE gt_table-r_rg '%' INTO gt_table-r_rg.
          ENDIF.
          CLEAR rate.
          IF gt_table-all_a_jq <> 0.
            rate gt_table-all_s_jq / gt_table-all_a_jq * 100.
            gt_table-r_jq rate.
            CONCATENATE gt_table-r_jq '%' INTO gt_table-r_jq.
          ENDIF.
          CLEAR rate.
          IF gt_table-all_a_zf <> 0.
            rate gt_table-all_s_zf / gt_table-all_a_zf * 100.
            gt_table-r_zf rate.
            CONCATENATE gt_table-r_zf '%' INTO gt_table-r_zf.
          ENDIF.
        ELSE.
          IF  gs_plpo-bmsch <> 0.
            gt_table-all_s_rg gt_table-lmnga * gs_plpo-vgw01 * gs_plpo-anzma / gs_plpo-bmsch .
            gt_table-all_s_zf gt_table-lmnga * gs_plpo-vgw02 * gs_plpo-anzma / gs_plpo-bmsch .
          ELSE.
            gt_table-all_s_rg 0.
            gt_table-all_s_zf 0.
          ENDIF.
          gt_table-all_a_rg gt_table-ism01.
          gt_table-all_a_zf gt_table-ism02.
          gt_table-all_d_rg =  gt_table-all_a_rg  gt_table-all_s_rg.
          gt_table-all_d_zf =  gt_table-all_a_zf  gt_table-all_s_zf.

          CLEAR rate.
          IF gt_table-all_a_rg <> 0.
            rate gt_table-all_s_rg / gt_table-all_a_rg * 100.
            gt_table-r_rg rate.
            CONCATENATE gt_table-r_rg '%' INTO gt_table-r_rg.
          ENDIF.
          CLEAR rate.
          IF gt_table-all_a_zf <> 0.
            rate gt_table-all_s_zf / gt_table-all_a_zf * 100.
            gt_table-r_zf rate.
            CONCATENATE gt_table-r_zf '%' INTO gt_table-r_zf.
          ENDIF.
        ENDIF.
      ENDIF.
      gt_table-reffi 'KAR'.

      CLEAR gs_makt.
      READ TABLE gt_makt INTO gs_makt WITH KEY matnr gt_table-plnbez BINARY SEARCH .
      IF sy-subrc EQ 0.
        gt_table-maktx gs_makt-maktx.
      ENDIF.

      "LTXA1  异常原因 modify by lxf START

      CONCATENATE sy-mandt   gt_table-rueck gt_table-rmzhl  INTO lv_name.

      CLEARlt_tline[] .
      CALL FUNCTION 'READ_TEXT'
        EXPORTING
          client                  sy-mandt
          
id                      'RMEL'
          language                sy-langu
          name                    
lv_name
          object                  
'AUFK'
*         ARCHIVE_HANDLE          = 0
*         LOCAL_CAT               = ' '
*             IMPORTING
*         HEADER                  =
*         OLD_LINE_COUNTER        =
        TABLES
          lines                   lt_tline
        
EXCEPTIONS
          id                      1
          language                2
          name                    3
          not_found               4
          object                  5
          reference_check         6
          wrong_access_to_archive 7
          OTHERS                  8.
      IF sy-subrc <> 0.
*           Implement suitable error handling here
      ENDIF.

      IF lt_tline IS NOT INITIAL .
        CLEAR gt_table-ltxa1 .

        LOOP AT lt_tline  INTO ls_tline .

          CONCATENATE gt_table-ltxa1 ls_tline-tdline INTO gt_table-ltxa1 .

        ENDLOOP.
      ENDIF .

      CLEAR lt_tline[] .


      "LTXA1  异常原因 modify by lxf END

      MODIFY gt_table.
      CLEAR gt_table.

*      SELECT SINGLE auart ernam INTO (gt_table-auart,gt_table-ernam)  FROM aufk WHERE aufnr EQ gt_table-aufnr.
*      SELECT SINGLE gamng INTO gt_table-gamng FROM afko WHERE aufnr EQ gt_table-aufnr.
*      SELECT SINGLE arbpl INTO gt_table-arbpl FROM crhd WHERE objid EQ gt_table-arbid.
*      SELECT SINGLE plnbez INTO gt_table-plnbez FROM afko WHERE aufnr EQ gt_table-aufnr.
*      SELECT SINGLE maktx INTO gt_table-maktx FROM makt WHERE matnr EQ gt_table-plnbez.
*      CLEAR:vgw01,vgw02,vgw03,vgw04,vgw05,vgw06.
*      CALL FUNCTION 'ZPP_MATERIAL_STANDARD_ROUTING'
*        EXPORTING
*          lmnga = gt_table-lmnga
*          matnr = gt_table-plnbez
*          arbid = gt_table-arbid
*          werks = gt_table-werks
*        IMPORTING
*          vgw01 = vgw01
*          vgw02 = vgw02
*          vgw03 = vgw03
*          vgw04 = vgw04
*          vgw05 = vgw05
*          vgw06 = vgw06.
*      CASE gt_table-auart.
*        WHEN 'LX03' OR 'LX08' OR 'LX07' OR  'LX06' OR 'LX12'.
*          gt_table-all_s_rg = vgw02.
*          gt_table-all_s_jq = vgw01.
*          gt_table-all_s_zf = vgw03.
*          gt_table-all_s_mj = vgw04.
*          gt_table-all_a_rg = gt_table-ism02.
*          gt_table-all_a_jq = gt_table-ism01.
*          gt_table-all_a_zf = gt_table-ism03.
*          gt_table-all_d_rg =  gt_table-all_a_rg  - gt_table-all_s_rg.
*          gt_table-all_d_jq =  gt_table-all_a_jq  - gt_table-all_s_jq.
*          gt_table-all_d_zf =  gt_table-all_a_zf  - gt_table-all_s_zf.
*          CLEAR rate.
*          IF gt_table-all_a_rg <> 0.
*            rate = gt_table-all_s_rg / gt_table-all_a_rg * 100.
*            gt_table-r_rg = rate.
*            CONCATENATE gt_table-r_rg '%' INTO gt_table-r_rg.
*          ENDIF.
*          CLEAR rate.
*          IF gt_table-all_a_jq <> 0.
*            rate = gt_table-all_s_jq / gt_table-all_a_jq * 100.
*            gt_table-r_jq = rate.
*            CONCATENATE gt_table-r_jq '%' INTO gt_table-r_jq.
*          ENDIF.
*          CLEAR rate.
*          IF gt_table-all_a_zf <> 0.
*            rate = gt_table-all_s_zf / gt_table-all_a_zf * 100.
*            gt_table-r_zf = rate.
*            CONCATENATE gt_table-r_zf '%' INTO gt_table-r_zf.
*          ENDIF.
*        WHEN OTHERS.
*          gt_table-all_s_rg = vgw01.
*          gt_table-all_s_zf = vgw02.
*          gt_table-all_a_rg = gt_table-ism01.
*          gt_table-all_a_zf = gt_table-ism02.
*          gt_table-all_d_rg =  gt_table-all_a_rg  - gt_table-all_s_rg.
**          GT_TABLE-ALL_D_JQ =  GT_TABLE-ALL_A_JQ  - GT_TABLE-ALL_S_JQ.
*          gt_table-all_d_zf =  gt_table-all_a_zf  - gt_table-all_s_zf.
*          CLEAR rate.
*          IF gt_table-all_a_rg <> 0.
*            rate = gt_table-all_s_rg / gt_table-all_a_rg * 100.
*            gt_table-r_rg = rate.
*            CONCATENATE gt_table-r_rg '%' INTO gt_table-r_rg.
*          ENDIF.
*          CLEAR rate.
*          IF gt_table-all_a_zf <> 0.
*            rate = gt_table-all_s_zf / gt_table-all_a_zf * 100.
*            gt_table-r_zf = rate.
*            CONCATENATE gt_table-r_zf '%' INTO gt_table-r_zf.
*          ENDIF.
*      ENDCASE.
*      gt_table-reffi = 'KAR'.
*      MODIFY gt_table.
*      CLEAR gt_table.
    ENDLOOP.
  ENDIF.
  IF s_auart IS NOT INITIAL.
    DELETE gt_table WHERE auart NOT IN s_auart.
  ENDIF.

*处理LX08
  PERFORMfrm_lx08.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  UPD_PREPARE_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PS_LAYOUT  text
*----------------------------------------------------------------------*
FORM dis_prepare_layout CHANGING ps_layout TYPE lvc_s_layo.
  g_title sy-title.
  ps_layout-cwidth_opt 'X'.
  ps_layout-zebra      'X'.
  ps_layout-box_fname  '_BOX'.
  ps_layout-sel_mode   'A'.
*  PS_LAYOUT-EXCP_FNAME = '_EXCP'.
  ps_layout-info_fname '_LINE_COLOR'.
  ps_layout-grid_title g_title.
  ps_layout-detailinit 'X' 是否可以弹出细节屏幕
  ps_layout-detailtitl g_title细节屏幕标题
ENDFORM.                    "UPD_PREPARE_LAYOUT

*&---------------------------------------------------------------------*
*& Form FRM_LX08
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_lx08 .
  DATAlt_table TYPE TABLE OF ty_type.
  DATAls_table  TYPE ty_type.
  DATA:z_pp_0001 TYPE REF TO zhele_pp_0001.
  CREATE OBJECT z_pp_0001.

  lt_table gt_table[].
  DELETE lt_table WHERE auart <> 'LX08'.

  IF lt_table[] IS INITIAL.
    EXIT.
  ENDIF.

  SELECT aufnr ktext objnr auart
    
INTO TABLE gt_aufk FROM aufk
    
FOR ALL ENTRIES IN lt_table
   
WHERE aufnr lt_table-aufnr.


  SELECT objnr anln1 anln2
    
INTO  TABLE gt_cobrb
    
FROM  cobrb
    
FOR ALL ENTRIES IN gt_aufk
    
WHERE objnr gt_aufk-objnr.

  SELECT anln1 anln2 txt50
       
INTO TABLE gt_anla
       
FROM anla FOR ALL ENTRIES IN gt_cobrb
       
WHERE anln1 gt_cobrb-anln1
        
AND anln2 gt_cobrb-anln2.
  SELECT aufnr plnty plnnr plnal INTO TABLE gt_afko FROM afko
                
FOR ALL ENTRIES IN gt_aufk
                
WHERE aufnr gt_aufk-aufnr.
  SELECT plnty plnnr vgw01 vgw02 vgw03 INTO TABLE gt_plpo FROM plpo
                
FOR ALL ENTRIES IN gt_afko
                  
WHERE plnty gt_afko-plnty
                 
AND plnnr gt_afko-plnnr.

  SORT gt_aufk BY aufnr.
  SORT gt_cobrb BY objnr.
  SORT gt_anla BY anln1 anln2.
  SORT gt_afko BY aufnr.
  SORT gt_plpo BY plnty plnnr.


  LOOP AT gt_table WHERE auart 'LX08'.

    READ TABLE gt_aufk INTO gs_aufk
                       
WITH KEY aufnr gt_table-aufnr
                       
BINARY SEARCH.
    IF sy-subrc <> 0.
      CONTINUE.
    ENDIF.
    gt_table-ktext gs_aufk-ktext.
    CALL METHOD z_pp_0001->dingdanzhuangtai
      
EXPORTING
        aufnr     gs_aufk-aufnr
      
IMPORTING
        status_en gt_table-ddzt.
    CLEAR gs_cobrb.
    READ TABLE gt_cobrb INTO gs_cobrb
      
WITH KEY objnr gs_aufk-objnr
             
BINARY SEARCH.
    IF sy-subrc EQ .
      gt_table-anln1 gs_cobrb-anln1 .
      gt_table-anln2 gs_cobrb-anln2.
      CONCATENATE gs_cobrb-anln1 '-' gs_cobrb-anln2 INTO gt_table-anln.
      IF gt_table-anln '-' .
        gt_table-anln =''.
      ENDIF.
    ENDIF.
    CLEAR:gs_anla.
    READ TABLE gt_anla INTO gs_anla
       
WITH KEY anln1 gt_table-anln1  anln2 gt_table-anln2
         
BINARY SEARCH.
    IF sy-subrc EQ 0.
      gt_table-txt50 gs_anla-txt50.
* MODIFY gt_table.
    ENDIF.
    CLEAR:gs_afko,gs_plpo.
    READ TABLE gt_afko INTO gs_afko
             
WITH KEY aufnr gs_aufk-aufnr
               
BINARY SEARCH .
    IF sy-subrc EQ 0.
      READ TABLE gt_plpo INTO gs_plpo
            
WITH KEY plnty gs_afko-plnty plnnr gs_afko-plnnr
              
BINARY SEARCH.
      IF sy-subrc EQ 0.
        gt_table-all_s_jq gs_plpo-vgw01.
        gt_table-all_s_rg gs_plpo-vgw02.
        gt_table-all_s_zf gs_plpo-vgw03.
      ENDIF.
    ENDIF.
    MODIFY gt_table.
  ENDLOOP.
  "新增字段——订单描述、资产编号、资产描述
*  IF gt_table-auart = 'LX08' .
*    CLEAR:gt_aufk,gt_cobrb,gt_anla,gt_afko,gt_plpo.
*    SELECT aufnr ktext objnr auart INTO TABLE gt_aufk FROM aufk FOR ALL ENTRIES IN gt_table
*                                   WHERE aufnr = gt_table-aufnr AND auart = 'LX08'.
*    SELECT objnr anln1 anln2 INTO  TABLE gt_cobrb FROM  cobrb
*                              FOR ALL ENTRIES IN gt_aufk WHERE objnr = gt_aufk-objnr.
*    SELECT anln1 anln2 txt50 INTO TABLE gt_anla FROM anla FOR ALL ENTRIES IN gt_cobrb
*                               WHERE anln1 = gt_cobrb-anln1 AND anln2 = gt_cobrb-anln2.
*    SELECT aufnr plnty plnnr plnal INTO TABLE gt_afko FROM afko FOR ALL ENTRIES IN gt_aufk WHERE aufnr = gt_aufk-aufnr.
*    SELECT plnty plnnr vgw01 vgw02 vgw03 INTO TABLE gt_plpo FROM plpo FOR ALL ENTRIES IN gt_afko
*                                    WHERE plnty = gt_afko-plnty
*                                    AND plnnr = gt_afko-plnnr.
*
*    SORT gt_aufk BY aufnr.
*    SORT gt_cobrb BY objnr.
*    SORT gt_anla BY anln1 anln2.
*    SORT gt_afko BY aufnr.
*    SORT gt_plpo BY plnty plnnr.
*
*    CLEAR:gs_aufk."gs_afko,gs_cobrb,gs_anla,gs_plpo.
*
*    DATA:z_pp_0001 TYPE REF TO zhele_pp_0001.
*    CREATE OBJECT z_pp_0001.
*
*    LOOP AT gt_aufk INTO gs_aufk.
*      gt_table-ktext = gs_aufk-ktext.
*      CALL METHOD z_pp_0001->dingdanzhuangtai
*        EXPORTING
*          aufnr     = gs_aufk-aufnr
*        IMPORTING
*          status_en = gt_table-ddzt.
*      CLEAR gs_cobrb.
*      READ TABLE gt_cobrb INTO gs_cobrb WITH KEY objnr = gs_aufk-objnr BINARY SEARCH.
*      IF sy-subrc EQ 0 .
**           gt_table-anln1 = gs_cobrb-anln1 .
**           gt_table-anln2 = gs_cobrb-anln2.
*        CONCATENATE gs_cobrb-anln1 '-' gs_cobrb-anln2 INTO gt_table-anln1.
*      ENDIF.
*      CLEAR:gs_anla.
*      READ TABLE gt_anla INTO gs_anla WITH KEY anln1 = gs_cobrb-anln1  anln2 = gs_cobrb-anln2 BINARY SEARCH.
*      IF sy-subrc EQ 0.
*        gt_table-txt50 = gs_anla-txt50.
*      ENDIF.
*      CLEAR:gs_afko,gs_plpo.
*      READ TABLE gt_afko INTO gs_afko WITH KEY aufnr = gs_aufk-aufnr BINARY SEARCH .
*      IF sy-subrc EQ 0.
*        READ TABLE gt_plpo INTO gs_plpo WITH KEY plnty = gs_afko-plnty plnnr = gs_afko-plnnr BINARY SEARCH.
*        IF sy-subrc EQ 0.
*          gt_table-all_s_jq = gs_plpo-vgw01.
*          gt_table-all_s_rg = gs_plpo-vgw02.
*          gt_table-all_s_zf = gs_plpo-vgw03.
*        ENDIF.
*      ENDIF.
*      MODIFY gt_table.
*
*    ENDLOOP.
*
*  ENDIF.
ENDFORM.




FORM dis_prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat.

  CLEAR pt_fieldcat[].
  DATA ls_fcat TYPE lvc_s_fcat .
  CLEAR ls_fcat .
  ls_fcat-coltext     '报工日期'.
  ls_fcat-fieldname   'ERSDA'.
*  ls_fcat-ref_table = 'AFRU'.
*  ls_fcat-ref_field = 'ERDAT'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '过账日期'.
  ls_fcat-fieldname   'BUDAT'.
*  ls_fcat-ref_table = 'AFRU'.
*  ls_fcat-ref_field = 'ERDAT'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '订单类型'.
  ls_fcat-fieldname   'AUART'.
  ls_fcat-ref_table 'AUFK'.
  ls_fcat-ref_field 'AUART'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '订单号'.
  ls_fcat-fieldname   'AUFNR'.
  ls_fcat-ref_table 'AUFK'.
  ls_fcat-ref_field 'AUFNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat."ernam

  ls_fcat-coltext     '订单创建者'.
  ls_fcat-fieldname   'ERNAM'.
  ls_fcat-ref_table 'AUFK'.
  ls_fcat-ref_field 'ERNAM'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '订单描述'.
  ls_fcat-fieldname   'KTEXT'.
  ls_fcat-ref_table 'AUFK'.
  ls_fcat-ref_field 'AUFTEXT'.
*  ls_fcat-no_zero     = 'X'.
*  ls_fcat-fix_column  = 'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '订单状态'.
  ls_fcat-fieldname   'DDZT'.
*  ls_fcat-ref_table = 'X'.
*  ls_fcat-ref_field = 'DDZT'.
  ls_fcat-no_zero     'X'.
*  ls_fcat-fix_column  = 'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '资产编号'.
  ls_fcat-fieldname   'ANLN'.
*  ls_fcat-ref_table = 'COBRB'.
*  ls_fcat-ref_field = 'ANLN1'.
  ls_fcat-no_zero     'X'.
*  ls_fcat-fix_column  = 'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '资产描述'.
  ls_fcat-fieldname   'TXT50'.
  ls_fcat-ref_table 'ANLA'.
  ls_fcat-ref_field 'TXA50_ANLT'.
*  ls_fcat-no_zero     = 'X'.
*  ls_fcat-fix_column  = 'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '订单数量'.
  ls_fcat-fieldname   'GAMNG'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '确认编号'.
  ls_fcat-fieldname   'RUECK'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '确认计数器'.
  ls_fcat-fieldname   'RMZHL'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '报工数量'.
  ls_fcat-fieldname   'LMNGA'.
  ls_fcat-qfieldname 'REFFI'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '确认标识'.
  ls_fcat-fieldname   'AUERU'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '工作中心'.
  ls_fcat-fieldname   'ARBPL'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '产品编码'.
  ls_fcat-fieldname   'PLNBEZ'.
  ls_fcat-ref_table 'MARA'.
  ls_fcat-ref_field 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '产品描述'.
  ls_fcat-fieldname   'MAKTX'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '标准人工总工时'.
  ls_fcat-fieldname   'ALL_S_RG'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  'X'.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '标准机器总工时'.
  ls_fcat-fieldname   'ALL_S_JQ'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '标准其他总工时'.
  ls_fcat-fieldname   'ALL_S_ZF'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '模具分摊数量'.
  ls_fcat-fieldname   'ALL_S_MJ'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '实际人工总工时'.
  ls_fcat-fieldname   'ALL_A_RG'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '实际机器总工时'.
  ls_fcat-fieldname   'ALL_A_JQ'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '实际其他总工时'.
  ls_fcat-fieldname   'ALL_A_ZF'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '差异人工工时'.
  ls_fcat-fieldname   'ALL_D_RG'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '差异机器工时'.
  ls_fcat-fieldname   'ALL_D_JQ'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '差异其他工时'.
  ls_fcat-fieldname   'ALL_D_ZF'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  ls_fcat-qfieldname 'REFFI'.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '人工效率达成率'.
  ls_fcat-fieldname   'R_RG'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '机器效率达成率'.
  ls_fcat-fieldname   'R_JQ'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '其他效率达成率'.
  ls_fcat-fieldname   'R_ZF'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
  ls_fcat-coltext     '异常原因'.
  ls_fcat-fieldname   'LTXA1'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.

  ls_fcat-coltext     '责任人'.
  ls_fcat-fieldname   'ZZRR'.
*  ls_fcat-ref_table = 'MARA'.
*  ls_fcat-ref_field = 'MATNR'.
*  ls_fcat-no_zero     = 'X'.
  ls_fcat-fix_column  ''.
  APPEND ls_fcat TO pt_fieldcat.CLEAR ls_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  dis_SHOW_DATA_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM dis_show_data_alv.
  DATAi_grid_title TYPE lvc_title .
  i_grid_title =  g_title "'ALV标题' .

  定义隐藏标准按钮的变量
  DATAwa_excluding TYPE slis_extab,
        it_excluding TYPE slis_t_extab.

  设置要隐藏的按钮的“FCODE”
  wa_excluding-fcode '&ABC' .
  APPEND wa_excluding TO it_excluding .
  CLEAR wa_excluding.

  DATA:lt_events TYPE TABLE OF slis_alv_event WITH HEADER LINE.
  lt_events-name 'CALLER_EXIT'.
  lt_events-form 'ALV_EVENT_CALLER_EXIT'.
  APPEND lt_events.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       sy-repid 当前程序
      is_layout_lvc            gs_layout 属性内表
      it_fieldcat_lvc          gt_fieldcat[] 列明内表
*     it_excluding             = it_excluding[]
      i_save                   'A' 是否保存布局
      i_callback_pf_status_set 'ALV_PF_STATUS_SET'
*     i_callback_user_command  = 'ALV_USER_COMMAND'
*     IT_EVENTS                = LT_EVENTS[]
      "i_callback_html_top_of_page  = 'ALV_TOP_OF_PAGE1'
      "I_GRID_TITLE                 = I_GRID_TITLE
*    it_sort_lvc                   = gt_alv_sort[]
    TABLES
      t_outtab                 gt_table[] 数据内表
    EXCEPTIONS
      program_error            1
      OTHERS                   2.

ENDFORM.                    "dis_SHOW_DATA_ALV
*&---------------------------------------------------------------------*
*&      Form  alv_pf_status_set
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RT_EXTAB   text
*----------------------------------------------------------------------*
FORM alv_pf_status_set USING rt_extab TYPE slis_t_extab.
*copy the status from SAPLKKBL,and renamed it as ZSTANDARD.
  SET PF-STATUS 'STANDARD'.
ENDFORM.                    "ALV_PF_STATUS_SET

 

相关文章: