取工作日历数据

当需要读取0007的日工作计划的时候可以使用到这个

TCODE:PT63

做法,将PT63的值直接取出来

            LOOP AT LT_QUERYCONDITION INTO LS_QUERYCONDITION.
              READ TABLE LT_PA0105 ASSIGNING <fs_pa0105> WITH KEY USRID = LS_QUERYCONDITION-WORK_EMAIL.
              IF SY-SUBRC EQ 0.

                LV_WORKSCHEDULE_BEGDA = LS_QUERYCONDITION-WORKSCHEDULE_BEGDA.
                LV_WORKSCHEDULE_ENDDA = LS_QUERYCONDITION-WORKSCHEDULE_ENDDA.

                CLEAR:LS_DATA,SEL_TAB.

                CL_SALV_BS_RUNTIME_INFO=>SET(
                  DISPLAY  = ABAP_FALSE
                  METADATA = ABAP_FALSE
                  DATA     = ABAP_TRUE  ).

                CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
                  EXPORTING
                    CURR_REPORT = 'RPTPSH10'
                  TABLES
                    SELECTION_TABLE = SEL_TAB.
              LOOP AT SEL_TAB ASSIGNING FIELD-SYMBOL(<FS_SEL_TAB>).

                IF <FS_SEL_TAB>-selname = 'PNPBEGDA'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = LV_WORKSCHEDULE_BEGDA.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPENDDA'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = LV_WORKSCHEDULE_ENDDA.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPTIMR1'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = SPACE.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPTIMR2'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = SPACE.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPTIMR3'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = SPACE.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPTIMR4'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = SPACE.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPTIMR5'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = SPACE.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPTIMR6'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = 'X'.
                ENDIF.

                IF <FS_SEL_TAB>-selname = 'PNPPERNR'.
                  <FS_SEL_TAB>-sign = 'I'.
                  <FS_SEL_TAB>-option = 'EQ'.
                  <FS_SEL_TAB>-LOW = <FS_PA0105>-PERNR.
                ENDIF.
              ENDLOOP.

              TRY .

                SUBMIT RPTPSH10
                  WITH SELECTION-TABLE SEL_TAB
                  AND RETURN.

              CATCH CX_ROOT INTO DATA(LV_CX_TOOR).

              ENDTRY.

              TRY.

                CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
                  IMPORTING R_DATA = LS_DATA ).
                  ASSIGN LS_DATA->* TO <LT_DATA>.

                  MOVE-CORRESPONDING LS_QUERYCONDITION TO LS_WORKSCHEDULE.
                  LOOP AT <LT_DATA> ASSIGNING FIELD-SYMBOL(<FS_DATA>).
                    ASSIGN COMPONENT 'TPROG' OF STRUCTURE <FS_DATA> TO <FS_VALUE>.
                    IF <FS_VALUE> NE 'OFF'.

                      ASSIGN COMPONENT 'DATUM' OF STRUCTURE <FS_DATA> TO <FS_VALUE>.

                      ASSIGN COMPONENT 'TPROG' OF STRUCTURE <FS_DATA> TO <FS_VALUE>.

                    ENDIF.

                    AT LAST.
   
                    ENDAT.

                  ENDLOOP.

                  IF SY-SUBRC EQ 0 AND LV_TYPE NE 'E'.
                    LV_TYPE = 'S'.
                    LV_MESSAGE = TEXT-S01.
                  ELSEIF LV_TYPE NE 'E'.
                    LV_TYPE = 'E'.
                    LV_MESSAGE = TEXT-E04.
                  ENDIF.
                CATCH CX_SALV_BS_SC_RUNTIME_INFO.

                ENDTRY.

                CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).

              ENDIF.
            ENDLOOP.

 

posted @   linhuang  阅读(28)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示