📄 fi0000.txt
字号:
WHEN 'BUKRS'.
IT_FIELDCAT-COL_POS = 1.
WHEN 'BELNR'.
IT_FIELDCAT-COL_POS = 2.
WHEN 'GJAHR'.
IT_FIELDCAT-COL_POS = 3.
WHEN 'BLART'.
IT_FIELDCAT-COL_POS = 4.
WHEN 'BLDAT'.
IT_FIELDCAT-COL_POS = 5.
WHEN 'BUDAT'.
IT_FIELDCAT-COL_POS = 6.
WHEN 'WAERS'.
IT_FIELDCAT-COL_POS = 7.
WHEN 'XBLNR'.
IT_FIELDCAT-COL_POS = 8.
WHEN OTHERS.
IT_FIELDCAT-NO_OUT = 'X'.
ENDCASE.
APPEND IT_FIELDCAT.
ENDLOOP.
L_REPID = SY-REPID.
L_DISVARIANT-REPORT = SY-REPID.
L_LAYOUT-GET_SELINFOS = 'X'.
GT_BKPF[] = T_BKPF[].
SORT GT_BKPF BY BUKRS GJAHR BELNR.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = L_REPID
I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT[]
I_SAVE = 'A'
IS_VARIANT = L_DISVARIANT
IS_LAYOUT = L_LAYOUT
TABLES
T_OUTTAB = GT_BKPF[].
ENDFORM. "BKPF_DISPLAY
以父之名(24963363) 09:11:37
*---------------------------------------------------------------------*
* FORM DRB_CALL *
*---------------------------------------------------------------------*
FORM DRB_CALL USING U_BKPF TYPE BKPF.
DATA: L_BORIDENT LIKE BORIDENT.
IF U_BKPF-AWTYP = 'BKPFF'.
L_BORIDENT-OBJTYPE = 'BKPFF'.
ELSE.
L_BORIDENT-OBJTYPE = 'BKPF'.
ENDIF.
L_BORIDENT-OBJKEY(4) = U_BKPF-BUKRS.
L_BORIDENT-OBJKEY+4(10) = U_BKPF-BELNR.
L_BORIDENT-OBJKEY+14(4) = U_BKPF-GJAHR.
CALL FUNCTION 'ASH_HIERARCHY_SHOW'
EXPORTING
I_BORIDENT = L_BORIDENT.
ENDFORM. "DRB_CALL
*&---------------------------------------------------------------------*
*& FORM BKPF_AUTHORITY
*&---------------------------------------------------------------------*
FORM BKPF_AUTHORITY USING U_BKPF TYPE BKPF
CHANGING R_SUBRC LIKE SY-SUBRC.
DATA: L_BLAR_CHECK(1) TYPE C,
L_RTCODE TYPE N.
CLEAR R_SUBRC.
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'BUKRS' FIELD U_BKPF-BUKRS
ID 'ACTVT' FIELD '03'.
IF NOT SY-SUBRC IS INITIAL.
R_SUBRC = SY-SUBRC.
EXIT.
ENDIF.
CALL FUNCTION 'FI_ADD_AUTHORITY_CHECK'
EXPORTING
I_BUKRS = U_BKPF-BUKRS
IMPORTING
E_XBLAR = L_BLAR_CHECK.
CHECK NOT L_BLAR_CHECK IS INITIAL.
CALL FUNCTION 'FI_BLART_AUTH_CHECK'
EXPORTING
I_BUKRS = U_BKPF-BUKRS
I_BLART = U_BKPF-BLART
I_AKTVT = '03'
IMPORTING
E_RTCODE = L_RTCODE.
R_SUBRC = L_RTCODE.
ENDFORM. " BKPF_AUTHORITY
*---------------------------------------------------------------------*
* FORM PROGRESS_INDICATOR *
*---------------------------------------------------------------------*
FORM PROGRESS_INDICATOR
USING VALUE(V_TEXT) TYPE C
VALUE(V_PROCESSED) LIKE SY-TABIX
VALUE(V_TOTAL) LIKE SY-TABIX
VALUE(V_NEW) TYPE C.
STATICS: S_TIME_NEXT LIKE SY-UZEIT,
S_DATE_NEXT LIKE SY-DATUM.
DATA: L_PERCENTAGE TYPE I,
L_TEXT(72) TYPE C.
GET TIME.
IF V_NEW IS INITIAL.
CHECK S_DATE_NEXT < SY-DATUM
OR S_DATE_NEXT = SY-DATUM AND S_TIME_NEXT <= SY-UZEIT.
ENDIF.
IF V_TOTAL IS INITIAL.
IF NOT V_PROCESSED IS INITIAL.
WRITE V_PROCESSED TO L_TEXT LEFT-JUSTIFIED.
ENDIF.
ELSE.
L_PERCENTAGE = ( V_PROCESSED * 100 ) DIV V_TOTAL.
IF L_PERCENTAGE > 0.
WRITE L_PERCENTAGE TO L_TEXT.
CONDENSE L_TEXT.
CONCATENATE L_TEXT '%' INTO L_TEXT.
CONDENSE L_TEXT.
ENDIF.
ENDIF.
CONCATENATE L_TEXT V_TEXT INTO L_TEXT SEPARATED BY SPACE.
CONDENSE L_TEXT.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = L_PERCENTAGE
TEXT = L_TEXT.
S_DATE_NEXT = SY-DATUM.
S_TIME_NEXT = SY-UZEIT + 10.
IF S_TIME_NEXT < SY-UZEIT.
ADD 1 TO S_DATE_NEXT.
ENDIF.
ENDFORM. "PROGRESS_INDICATOR
*&---------------------------------------------------------------------*
*& FORM ARCHPTR_GET_FROM_ADK_INDEX
*&---------------------------------------------------------------------*
FORM ARCHPTR_GET_FROM_ADK_INDEX TABLES T_BELNRSEL STRUCTURE BELNR
T_BUKRSSEL STRUCTURE BUKRS
T_GJAHRSEL STRUCTURE GJAHR
T_BUDATSEL STRUCTURE BUDAT
T_BLARTSEL STRUCTURE BLART
T_ARCHPTR STRUCTURE AIND_ARKEY.
PERFORM PROGRESS_INDICATOR
USING 'LESE ARCHIVINDEX'(002) 0 0 'X'.
SELECT ARCHIV_KEY OFFST FROM ARIX_BKPF APPENDING TABLE T_ARCHPTR
WHERE BELNR IN T_BELNRSEL
AND BUKRS IN T_BUKRSSEL
AND GJAHR IN T_GJAHRSEL
AND BUDAT IN T_BUDATSEL
AND BLART IN T_BLARTSEL.
ENDFORM. " ARCHPTR_GET_FROM_ADK_INDEX
*&---------------------------------------------------------------------*
*& FORM INITIALIZATION
*&---------------------------------------------------------------------*
FORM INITIALIZATION TABLES T_RNG_ARCHIV STRUCTURE RNG_ARCHIV
CHANGING R_USEDB TYPE DTINP-XUSEDB
R_USEAR TYPE DTINP-XUSEAR
R_INFOSYS TYPE C.
DATA: IT_EXCL_DUMMY TYPE TABLE OF SY-UCOMM,
IT_OBJECT TYPE TABLE OF ARCH_OBJ-OBJECT.
APPEND 'FI_DOCUMNT' TO IT_OBJECT.
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
P_STATUS = 'STANDARD'
P_PROGRAM = 'RDRBFI00'
TABLES
P_EXCLUDE = IT_EXCL_DUMMY.
R_USEDB = 'X'.
CALL FUNCTION 'KARL_DATA_INPUT_INIT'
EXPORTING
I_REPORT = 'RDRBFI00'
IMPORTING
E_XUSEDB = R_USEDB
E_XUSEAR = R_USEAR
E_INFOSYS = R_INFOSYS
TABLES
T_OBJECTS = IT_OBJECT[]
T_ARCH_SEL = T_RNG_ARCHIV[].
ENDFORM. " INITIALIZATION
*&---------------------------------------------------------------------*
*& FORM DATASOURCE_SET
*&---------------------------------------------------------------------*
FORM DATASOURCE_SET TABLES T_RNG_ARCHIV STRUCTURE RNG_ARCHIV
CHANGING R_USEDB TYPE DTINP-XUSEDB
R_USEAR TYPE DTINP-XUSEAR
R_INFOSYS TYPE C.
DATA: IT_OBJECT TYPE TABLE OF ARCH_OBJ-OBJECT.
APPEND 'FI_DOCUMNT' TO IT_OBJECT.
CALL FUNCTION 'KARL_DATA_INPUT_SELECT'
EXPORTING
I_DB_AND_ARC = 'X'
I_INFOSYS_POSSIBLE = 'X'
I_OBJECT_FIXED = 'X'
I_DOCUMENTATION = 'DEFAULT'
I_REPORT = 'RDRBFI00'
TABLES
T_OBJECTS = IT_OBJECT[]
T_ARCH_SEL = T_RNG_ARCHIV
CHANGING
C_XUSEDB = R_USEDB
C_XUSEAR = R_USEAR
C_INFOSYS = R_INFOSYS.
ENDFORM. " DATASOURCE_SET
以父之名(24963363) 09:11:48
&---------------------------------------------------------------------*
*& FORM ARCHPTR_GET
*&---------------------------------------------------------------------*
FORM ARCHPTR_GET TABLES T_BELNRSEL STRUCTURE BELNR
T_BUKRSSEL STRUCTURE BUKRS
T_GJAHRSEL STRUCTURE GJAHR
T_MONATSEL STRUCTURE MONAT
T_BUDATSEL STRUCTURE BUDAT
T_BLARTSEL STRUCTURE BLART
T_XBLNRSEL STRUCTURE XBLNR
T_ARCHPTR STRUCTURE AIND_ARKEY.
PERFORM ARCHPTR_GET_FROM_ADK_INDEX
TABLES T_BELNRSEL T_BUKRSSEL T_GJAHRSEL T_BUDATSEL T_BLARTSEL
T_ARCHPTR.
PERFORM ARCHPTR_GET_FROM_AS
TABLES T_BELNRSEL T_BUKRSSEL T_GJAHRSEL T_MONATSEL
T_BUDATSEL T_BLARTSEL T_XBLNRSEL
T_ARCHPTR
USING 'SAP_FI_DOC_001'.
PERFORM ARCHPTR_GET_FROM_AS
TABLES T_BELNRSEL T_BUKRSSEL T_GJAHRSEL T_MONATSEL
T_BUDATSEL T_BLARTSEL T_XBLNRSEL
T_ARCHPTR
USING 'SAP_FI_DOC_002'.
SORT T_ARCHPTR BY ARCHIVEKEY ARCHIVEOFS.
DELETE ADJACENT DUPLICATES FROM T_ARCHPTR
COMPARING ALL FIELDS.
ENDFORM. " ARCHPTR_GET
*&---------------------------------------------------------------------*
*& FORM BKPF_CHECK
*&---------------------------------------------------------------------*
FORM BKPF_CHECK TABLES T_BELNRSEL STRUCTURE BELNR
T_BUKRSSEL STRUCTURE BUKRS
T_GJAHRSEL STRUCTURE GJAHR
T_MONATSEL STRUCTURE MONAT
T_BUDATSEL STRUCTURE BUDAT
T_BLARTSEL STRUCTURE BLART
T_XBLNRSEL STRUCTURE XBLNR
USING U_BKPF TYPE BKPF
CHANGING R_SUBRC TYPE SY-SUBRC.
R_SUBRC = 42.
CHECK U_BKPF-BELNR IN T_BELNRSEL
AND U_BKPF-BUKRS IN T_BUKRSSEL
AND U_BKPF-GJAHR IN T_GJAHRSEL
AND U_BKPF-MONAT IN T_MONATSEL
AND U_BKPF-BUDAT IN T_BUDATSEL
AND U_BKPF-BLART IN T_BLARTSEL
AND U_BKPF-XBLNR IN T_XBLNRSEL.
PERFORM BKPF_AUTHORITY USING U_BKPF CHANGING R_SUBRC.
ENDFORM. " BKPF_CHECK
*&---------------------------------------------------------------------*
*& FORM OPEN_OBJECT_PROCESS
*&---------------------------------------------------------------------*
FORM OPEN_OBJECT_PROCESS
TABLES T_BELNRSEL STRUCTURE BELNR
T_BUKRSSEL STRUCTURE BUKRS
T_GJAHRSEL STRUCTURE GJAHR
T_MONATSEL STRUCTURE MONAT
T_BUDATSEL STRUCTURE BUDAT
T_BLARTSEL STRUCTURE BLART
T_XBLNRSEL STRUCTURE XBLNR
T_BKPF STRUCTURE BKPF
USING VALUE(V_HANDLE) TYPE SY-TABIX
VALUE(V_TOTAL) TYPE I
CHANGING R_PROCESSED TYPE I
R_SELECTEDLINES TYPE I.
DATA: IT_BKPF TYPE TABLE OF BKPF,
L_SUBRC TYPE SY-SUBRC,
L_FIRST TYPE C LENGTH 1.
FIELD-SYMBOLS: <L_BKPF> TYPE BKPF.
CALL FUNCTION 'ARCHIVE_GET_TABLE'
EXPORTING
ARCHIVE_HANDLE = V_HANDLE
RECORD_STRUCTURE = 'BKPF'
ALL_RECORDS_OF_OBJECT = 'X'
TABLES
TABLE = IT_BKPF.
READ TABLE IT_BKPF ASSIGNING <L_BKPF> INDEX 1.
IF NOT SY-SUBRC IS INITIAL.
RAISE PROGRAM_ERROR.
ENDIF.
PERFORM BKPF_CHECK
TABLES T_BELNRSEL T_BUKRSSEL T_GJAHRSEL T_MONATSEL
T_BUDATSEL T_BLARTSEL T_XBLNRSEL
USING <L_BKPF>
CHANGING L_SUBRC.
IF L_SUBRC IS INITIAL.
APPEND <L_BKPF> TO T_BKPF.
ADD 1 TO R_SELECTEDLINES.
ENDIF.
ADD 1 TO R_PROCESSED.
IF R_PROCESSED = 1.
L_FIRST = 'X'.
ENDIF.
PERFORM PROGRESS_INDICATOR
USING 'LESE ARCHIV'(001) R_PROCESSED V_TOTAL L_FIRST.
ENDFORM. " OPEN_OBJECT_PROCESS
*-------------------------------------------------------------------
* FORM NUMBER_OF_OBJECTS_GET
*-------------------------------------------------------------------
FORM NUMBER_OF_OBJECTS_GET TABLES T_FILES STRUCTURE ADMI_FILES
CHANGING R_NUMBER LIKE SY-TABIX.
CLEAR R_NUMBER.
LOOP AT T_FILES.
ADD T_FILES-OBJ_COUNT TO R_NUMBER.
ENDLOOP.
ENDFORM. "NUMBER_OF_OBJECTS_GET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -