当需要读取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.