⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fi0000.txt

📁 sap:ABAP程序:财务帐查看报表。用于财务FI
💻 TXT
📖 第 1 页 / 共 2 页
字号:
      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 + -