*&---------------------------------------------------------------------*
*& Report ZFIR090
*&---------------------------------------------------------------------*
*& Author : NathanSun
*& Create Date : 2018-08-31
*& Program Type : Report
*& Description : 应收账款回款计划明细表
*&---------------------------------------------------------------------*
REPORT ZFIR107.
*&---------------------------------------------------------------------*
*& 包含 ZFIR090_TOP
*&---------------------------------------------------------------------*
TABLES:T001,BKPF,KNA1,TVKO.
TYPE-POOLS:SLIS.
"OOALV-DEFINITION
DATA GO_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA GO_ALV_GRID_SUB TYPE REF TO CL_GUI_ALV_GRID.
DATA LO_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA gt_tools TYPE UI_FUNCTIONS .
DATA OK_CODE TYPE SY-UCOMM.
DATA OK_SAVE TYPE SY-UCOMM.
FIELD-SYMBOLS:<F1>.
"""" 如下参数定义为操作EXCEL所用
INCLUDE: OLE2INCL,
ZFIR090_EXCEL.
DATA: I_EXCEL_CONTROL TYPE REF TO EXCEL_CONTROL,
I_EXCEL_DESTINATION TYPE REF TO EXCEL_DESTINATION.
DATA: I_ROWS_TABLE TYPE ROWS_TAB.
DATA: BEGIN OF EXCEL_COLUMN OCCURS 0,
S_INDEX LIKE SY-TABIX,
S_ID TYPE C,
END OF EXCEL_COLUMN.
TYPES: BEGIN OF GTS_DATA,
VLFAG TYPE C, "标记字段
LV_LINES TYPE SY-TABIX, "序号
BUKRS TYPE T001-BUKRS, "公司代码
BUTXT TYPE T001-BUTXT, "公司代码名称
BUDAT TYPE BKPF-BUDAT, "过账日期
BUDATJ TYPE BKPF-BUDAT, "屏幕截止日期
KUNNR TYPE KNA1-KUNNR, "客户
NAME1 TYPE KNA1-NAME1, "客户名称
BLDAT TYPE BLDAT, "月度付款日
BLDA TYPE CHAR2, "月度付款日
DYQJ TYPE CHAR6, "当月期间
DQRNY TYPE CHAR6, "到期日年月
ZTAGG TYPE ZSDRP_001-ZTAGG, "信用账期
ZTAGQ TYPE ZSDRP_001-ZTAGG, "信用期
WAERS TYPE T001-WAERS, "本币币别
DMBTR_YS TYPE DMBTR, "应收总额
DMBTR_YQ TYPE DMBTR, "已经逾期
DMBTR_N TYPE DMBTR, "当月(N)到期
DMBTR_N1 TYPE DMBTR, "N+1到期
DMBTR_N2 TYPE DMBTR, "N+2到期
DMBTR_N3 TYPE DMBTR, "N+3到期
DMBTR_N4 TYPE DMBTR, "N+4到期
DMBTR_N5 TYPE DMBTR, "N+5到期
TEXT20 TYPE TEXT20, "备注
VKORG TYPE ZSDRP_001-VKORG, "销售组织
ZFBDT TYPE BSID-ZFBDT, "起算日
ZFBDQ TYPE BSID-ZFBDT, "到期日
ZBD1T TYPE BSID-ZBD1T, "天数
BELNR TYPE BSID-BELNR, "凭证
BUZEI TYPE BSID-BUZEI, "行项目
HKONT TYPE BSID-HKONT, "总账科目
AUGBL TYPE BSID-AUGBL, "清算凭证
SHKZG TYPE BSID-SHKZG, "借贷
DMBTR TYPE BSID-DMBTR, "本币金额
GJAHR TYPE GJAHR, "财年
END OF GTS_DATA.
DATA: GT_DATA TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_ADD TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_A TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_B TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_C TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_D TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_E TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_F TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_DATA_G TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATA: GT_T001 TYPE TABLE OF T001 WITH HEADER LINE.
DATA: LV_FLAG TYPE C.
DATA LV_DATUM1 TYPE DATS .
DATA LV_DATUM2 TYPE DATS .
DATA LV_DATUM3 TYPE DATS .
DATA LV_DATUM4 TYPE DATS .
DATA LV_DATUM5 TYPE DATS .
CONSTANTS:SELECTED VALUE 'X'.
DATA: CONTROLS_CREATED.
DATA: LV_WAERS TYPE T001-WAERS .
* global fields
DATA: DRAGDROP_TREE TYPE REF TO CL_DRAGDROP,
DRAGDROP_ALV TYPE REF TO CL_DRAGDROP,
FLG_NEW,
GRID TYPE REF TO CL_GUI_ALV_GRID,
GS_LAYOUT_ALV TYPE LVC_S_LAYO,
GS_TOOLBAR TYPE STB_BUTTON,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_CONTAINER_OBJECT TYPE REF TO CL_GUI_DOCKING_CONTAINER,
G_DROPEFFECT TYPE I,
G_HANDLE_TREE TYPE I,
G_HANDLE_ALV TYPE I,
G_HIERARCHY_HEADER TYPE TREEV_HHDR,
G_REPID LIKE SY-REPID,
CONTROLS_CREATED1,
TREE1 TYPE REF TO CL_GUI_ALV_TREE.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS MODIF ID C1 OBLIGATORY . "公司代码
SELECT-OPTIONS: S_KUNNR FOR KNA1-KUNNR MODIF ID C1 . "客户
PARAMETERS: P_BUDAT TYPE BKPF-BUDAT MODIF ID C1 OBLIGATORY . "截止日期 "SO2订单号
SELECTION-SCREEN END OF BLOCK B1.
*
*SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.
*PARAMETERS: p_chong AS CHECKBOX USER-COMMAND mx MODIF ID mb.
*SELECTION-SCREEN END OF BLOCK b3.
*&---------------------------------------------------------------------*
*& 包含 ZFIR090_CLASS
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS cl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
" 声明单击事件的方法
METHODS HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID.
" 声明双击事件方法
METHODS HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN.
" 声明TOOLBAR事件方法
METHODS HANDLE_TOOLBAR
FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
IMPORTING E_OBJECT E_INTERACTIVE.
" 声明USER-COMMAND 事件方法
METHODS HANDLE_COMMAND
FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
IMPORTING E_UCOMM.
"修改时触发
METHODS HANDLE_DATA_CHANGED
FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
IMPORTING ER_DATA_CHANGED.
"Drag
METHODS HANDLE_ONDRAG
FOR EVENT ONDRAG OF CL_GUI_ALV_GRID
IMPORTING E_ROW
E_COLUMN
ES_ROW_NO
E_DRAGDROPOBJ.
"Drop
METHODS HANDLE_ONDROP
FOR EVENT ONDROP OF CL_GUI_ALV_GRID
IMPORTING E_ROW
E_COLUMN
E_DRAGDROPOBJ.
PRIVATE SECTION.
ENDCLASS. "CL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
* CLASS cl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CL_EVENT_RECEIVER IMPLEMENTATION.
" 单击事件方法的实现
METHOD HANDLE_HOTSPOT_CLICK.
ENDMETHOD. "HANDLE_HOTSPOT_CLICK
" 双击事件方法的实现
METHOD HANDLE_DOUBLE_CLICK.
DATA: GRID_TITLE TYPE LVC_TITLE.
CLEAR GT_DATA_D .
READ TABLE GT_DATA_D[] INDEX E_ROW-INDEX INTO GT_DATA_D .
CLEAR GT_DATA_E[] .
CASE E_COLUMN-FIELDNAME.
WHEN 'DMBTR_YS'."应收总额
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--应收总额明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR.
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_YQ'. "已经逾期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--已经逾期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY < P_BUDAT(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_N'. "当月(N)到期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--当月(N)到期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY = P_BUDAT(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_N1'. "N+1到期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--N+1到期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY = LV_DATUM1(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_N2'. "N+2到期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--N+2到期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY = LV_DATUM2(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_N3'. "N+3到期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--N+3到期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY = LV_DATUM3(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_N4'. "N+4到期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--N+4到期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY = LV_DATUM4(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN 'DMBTR_N5'. "N+5到期
GRID_TITLE = GT_DATA_D-BUTXT && '->' && GT_DATA_D-NAME1 && '--N+5到期明细数据'.
LOOP AT GT_DATA INTO GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY >= LV_DATUM5(6).
APPEND GT_DATA TO GT_DATA_E[] .
CLEAR GT_DATA .
ENDLOOP.
WHEN OTHERS.
MESSAGE '请双击有效字段!' TYPE 'S' DISPLAY LIKE 'W' .
GRID_TITLE = 'NULL !' .
ENDCASE.
DATA : LV_STABLE TYPE LVC_S_STBL. "刷新稳定性
LV_STABLE-ROW = '1'.
LV_STABLE-COL = '1'.
GS_LAYOUT_ALV-GRID_TITLE = GRID_TITLE."标题栏文本
GS_LAYOUT_ALV-SEL_MODE = 'D'. "选择方式
GS_LAYOUT_ALV-CWIDTH_OPT = 'X'. "优化列宽
* handle for D'n'D
* GS_LAYOUT_ALV-S_DRAGDROP-ROW_DDID = G_HANDLE_ALV.
CALL METHOD GO_ALV_GRID_SUB->SET_FRONTEND_LAYOUT
EXPORTING
IS_LAYOUT = GS_LAYOUT_ALV.
CALL METHOD GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = LV_STABLE.
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = GO_ALV_GRID_SUB.
CALL METHOD CL_GUI_CFW=>FLUSH.
CALL SCREEN 200 .
ENDMETHOD. "HANDLE_DOUBLE_CLICK
" 实现TOOLBAR事件方法
METHOD HANDLE_TOOLBAR.
DATA: LS_TOOLBAR TYPE STB_BUTTON.
* DELETE E_OBJECT->MT_TOOLBAR WHERE FUNCTION = '&PRINT_BACK'.
* CLEAR: LS_TOOLBAR.
* LS_TOOLBAR-BUTN_TYPE = 3. " 分隔符
* APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
* CLEAR: LS_TOOLBAR.
* ls_toolbar-function = 'BT_8'. "功能码
* ls_toolbar-icon = icon_incomplete. " 图标名称
* ls_toolbar-text = '功能按钮1'. " 按钮上显示的文本
* ls_toolbar-quickinfo = '功能按钮'. " 图标的提示信息
* ls_toolbar-butn_type = 0. " 0表示正常按钮
* ls_toolbar-disabled = ''. " X表示灰色,不可用
* APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD. "HANDLE_TOOLBAR
" 实现USER-COMMAND 事件方法
METHOD HANDLE_COMMAND.
DATA: REF TYPE REF TO CL_GUI_ALV_GRID.
DATA : LV_STABLE TYPE LVC_S_STBL. "刷新稳定性
* RANGES: L_WERKS FOR T001W-WERKS.
* RANGES: L_MATNR FOR MARA-MATNR.
DATA:L_BUKRS TYPE T001K-BUKRS.
LV_STABLE-ROW = '1'.
LV_STABLE-COL = '1'.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF.
CALL METHOD REF->CHECK_CHANGED_DATA.
* CASE E_UCOMM.
* WHEN 'BT_8'.
** SORT gt_data[] BY bedat.
** CALL METHOD go_alv_grid->refresh_table_display "内表改变时刷新ALV
** EXPORTING
** is_stable = lv_stable.
* WHEN OTHERS.
* ENDCASE.
CALL METHOD REF->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = LV_STABLE.
ENDMETHOD. "HANDLE_COMMAND
" 实现DATA_CHANGED 事件方法
METHOD HANDLE_DATA_CHANGED.
ENDMETHOD. "handle_data_changed
* Drag & Drop
METHOD HANDLE_ONDRAG.
CHECK NOT E_ROW IS INITIAL.
* PERFORM DISPLAY_FLIGHTS USING NODE_KEY.
* CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE EXPORTING NEW_CODE =
* FCODE_ENTR.
ENDMETHOD.
* Drag & Drop
METHOD HANDLE_ONDROP.
CHECK NOT E_ROW IS INITIAL.
*
ENDMETHOD.
ENDCLASS. "cl_event_receiver IMPLEMENTATION
*&---------------------------------------------------------------------*
*& 包含 ZFIR090_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_MONTH_LASTDAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM GET_MONTH_LASTDAY .
*取上个月最后一天
P_BUDAT = SY-DATUM(6) && '01'.
P_BUDAT = P_BUDAT - 1 .
*取本月最后一天
* CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
* EXPORTING
* i_date = P_BUDAT
* IMPORTING
* e_date = p_budat
* .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM SCREEN_SETTING .
CLEAR LV_FLAG.
CLEAR GT_T001[].
SELECT BUKRS INTO CORRESPONDING FIELDS OF TABLE GT_T001[] FROM T001
WHERE BUKRS IN S_BUKRS .
LOOP AT GT_T001.
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'BUKRS' FIELD GT_T001-BUKRS.
IF SY-SUBRC <> 0.
LV_FLAG = 'X' .
EXIT .
ENDIF.
CLEAR GT_T001 .
ENDLOOP.
IF LV_FLAG IS NOT INITIAL.
MESSAGE '您没有公司:'&& GT_T001-BUKRS && ' 的权限!' TYPE 'E' .
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .
*取未清项BSID:
CLEAR GT_DATA[] .
SELECT
BSID~ZFBDT
BSID~ZBD1T
BSID~BELNR
BSID~BUZEI
BSID~HKONT
BSID~AUGBL
BSID~SHKZG
BSID~BUKRS
BSID~KUNNR
BSID~DMBTR
BSID~GJAHR
BSID~BUDAT
INTO CORRESPONDING FIELDS OF TABLE GT_DATA[]
FROM BSID
WHERE BSID~BUKRS IN S_BUKRS
AND BSID~KUNNR IN S_KUNNR
AND BSID~BUDAT <= P_BUDAT
AND BSID~HKONT IN ('1122010000','1122020000','1122030000')
AND BSID~BSTAT = ''
.
*取已清项BSAD:
CLEAR GT_DATA_ADD[] .
SELECT
BSAD~ZFBDT
BSAD~ZBD1T
BSAD~BELNR
BSAD~BUZEI
BSAD~HKONT
BSAD~AUGBL
BSAD~SHKZG
BSAD~BUKRS
BSAD~KUNNR
BSAD~DMBTR
BSAD~GJAHR
BSAD~BUDAT
INTO CORRESPONDING FIELDS OF TABLE GT_DATA_ADD[]
FROM BSAD
WHERE BSAD~BUKRS IN S_BUKRS
AND BSAD~KUNNR IN S_KUNNR
AND BSAD~BUDAT <= P_BUDAT
AND BSAD~HKONT IN ('1122010000','1122020000','1122030000')
AND BSAD~BSTAT = ''
AND BSAD~AUGDT > P_BUDAT
.
APPEND LINES OF GT_DATA_ADD[] TO GT_DATA[] .
IF GT_DATA[] IS NOT INITIAL.
*根据公司代码查询销售组织(TVKO-VKORG);
CLEAR GT_DATA_A[] .
SELECT BUKRS VKORG INTO CORRESPONDING FIELDS OF TABLE GT_DATA_A[] FROM TVKO
FOR ALL ENTRIES IN GT_DATA[]
WHERE BUKRS = GT_DATA-BUKRS
.
LOOP AT GT_DATA.
READ TABLE GT_DATA_A WITH KEY BUKRS = GT_DATA-BUKRS .
IF SY-SUBRC = 0.
GT_DATA-VKORG = GT_DATA_A-VKORG .
ENDIF.
*如果借贷(SHKZG)是H,则对本币金额(DMBTR)取负数
IF GT_DATA-SHKZG = 'H' .
GT_DATA-DMBTR = GT_DATA-DMBTR * -1 .
ENDIF.
MODIFY GT_DATA .
CLEAR GT_DATA .
CLEAR GT_DATA_A .
ENDLOOP.
*客户取表ZSDRP_001的应收信用账期(ZSDRP_001-ZTAGG)
CLEAR GT_DATA_B[] .
SELECT VKORG KUNNR ZTAGG INTO CORRESPONDING FIELDS OF TABLE GT_DATA_B[] FROM ZSDRP_001
FOR ALL ENTRIES IN GT_DATA[]
WHERE VKORG = GT_DATA-VKORG
AND KUNNR = GT_DATA-KUNNR
.
LOOP AT GT_DATA_B.
READ TABLE GT_DATA WITH KEY VKORG = GT_DATA_B-VKORG KUNNR = GT_DATA_B-KUNNR .
IF SY-SUBRC = 0.
GT_DATA_B-BUKRS = GT_DATA-BUKRS .
ENDIF.
MODIFY GT_DATA_B .
CLEAR GT_DATA_B .
CLEAR GT_DATA .
ENDLOOP.
SORT GT_DATA_B[] BY BUKRS KUNNR ZTAGG.
DELETE ADJACENT DUPLICATES FROM GT_DATA_B[] COMPARING BUKRS KUNNR .
*按公司代码、客户汇总本币金额得到应收总额。
GT_DATA_C[] = GT_DATA[] .
SORT GT_DATA_C[] BY BUKRS KUNNR .
DELETE ADJACENT DUPLICATES FROM GT_DATA_C[] COMPARING BUKRS KUNNR .
LOOP AT GT_DATA_C.
CLEAR GT_DATA_C-DMBTR_YS.
LOOP AT GT_DATA WHERE BUKRS = GT_DATA_C-BUKRS AND KUNNR = GT_DATA_C-KUNNR.
GT_DATA_C-DMBTR_YS = GT_DATA_C-DMBTR_YS + GT_DATA-DMBTR .
CLEAR GT_DATA .
ENDLOOP.
MODIFY GT_DATA_C .
CLEAR GT_DATA_C .
ENDLOOP.
LOOP AT GT_DATA.
READ TABLE GT_DATA_B WITH KEY BUKRS = GT_DATA-BUKRS KUNNR = GT_DATA-KUNNR .
IF SY-SUBRC = 0.
GT_DATA-ZTAGG = GT_DATA_B-ZTAGG .
ENDIF.
IF GT_DATA-ZTAGG IS INITIAL.
GT_DATA-ZTAGG = 30 .
ENDIF.
READ TABLE GT_DATA_C WITH KEY BUKRS = GT_DATA-BUKRS KUNNR = GT_DATA-KUNNR .
IF SY-SUBRC = 0.
GT_DATA-DMBTR_YS = GT_DATA_C-DMBTR_YS .
ENDIF.
*将取到的未清项、已清项的起算日 加上 天数 加上应收信用账期得到 到期日
GT_DATA-ZFBDQ = GT_DATA-ZFBDT + GT_DATA-ZBD1T + GT_DATA-ZTAGG .
GT_DATA-DYQJ = P_BUDAT(6).
GT_DATA-DQRNY = GT_DATA-ZFBDQ(6).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GT_DATA-KUNNR
IMPORTING
OUTPUT = GT_DATA-KUNNR.
SELECT SINGLE NAME1 INTO GT_DATA-NAME1 FROM KNA1
WHERE KUNNR = GT_DATA-KUNNR
.
SELECT SINGLE BUTXT WAERS INTO ( GT_DATA-BUTXT,GT_DATA-WAERS ) FROM T001
WHERE BUKRS = GT_DATA-BUKRS
.
GT_DATA-BUDATJ = P_BUDAT .
MODIFY GT_DATA .
CLEAR GT_DATA .
CLEAR GT_DATA_B .
CLEAR GT_DATA_C .
ENDLOOP.
*信用期的处理:将未清项、已清项中取到的条目的天数 加上 应收信用账期得到临时信用期,按照公司代码、客户、过账日期、凭证排序,最大一条的临时信用期即为信用期。
GT_DATA_F[] = GT_DATA[] .
LOOP AT GT_DATA_F.
GT_DATA_F-ZTAGQ = GT_DATA_F-ZBD1T + GT_DATA_F-ZTAGG .
MODIFY GT_DATA_F .
CLEAR GT_DATA_F .
ENDLOOP.
SORT GT_DATA_F[] BY BUKRS KUNNR ZTAGQ DESCENDING.
DELETE ADJACENT DUPLICATES FROM GT_DATA_F[] COMPARING BUKRS KUNNR .
*按公司代码、客户、到期日的年月汇总本币金额
GT_DATA_D[] = GT_DATA[] .
SORT GT_DATA_D[] BY BUKRS KUNNR DQRNY.
DELETE ADJACENT DUPLICATES FROM GT_DATA_D[] COMPARING BUKRS KUNNR DQRNY .
LOOP AT GT_DATA_D.
CLEAR GT_DATA_D-DMBTR.
LOOP AT GT_DATA WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR AND DQRNY = GT_DATA_D-DQRNY.
GT_DATA_D-DMBTR = GT_DATA_D-DMBTR + GT_DATA-DMBTR .
CLEAR GT_DATA .
ENDLOOP.
MODIFY GT_DATA_D .
CLEAR GT_DATA_D .
ENDLOOP.
*取所选期间的最后一天
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = P_BUDAT
IMPORTING
E_DATE = LV_DATUM1
.
*取下一个期间的第一天
LV_DATUM1 = LV_DATUM1 + 1 .
*取所选期间的最后一天
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = LV_DATUM1
IMPORTING
E_DATE = LV_DATUM2
.
*取下一个期间的第一天
LV_DATUM2 = LV_DATUM2 + 1 .
*取所选期间的最后一天
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = LV_DATUM2
IMPORTING
E_DATE = LV_DATUM3
.
*取下一个期间的第一天
LV_DATUM3 = LV_DATUM3 + 1 .
*取所选期间的最后一天
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = LV_DATUM3
IMPORTING
E_DATE = LV_DATUM4
.
*取下一个期间的第一天
LV_DATUM4 = LV_DATUM4 + 1 .
*取所选期间的最后一天
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = LV_DATUM4
IMPORTING
E_DATE = LV_DATUM5
.
*取下一个期间的第一天
LV_DATUM5 = LV_DATUM5 + 1 .
DATA LV_LINES TYPE SY-TABIX .
CLEAR LV_LINES .
LOOP AT GT_DATA_D.
IF P_BUDAT(6) > GT_DATA_D-DQRNY."已经逾期
GT_DATA_D-DMBTR_YQ = GT_DATA_D-DMBTR_YQ + GT_DATA_D-DMBTR .
ENDIF.
IF P_BUDAT(6) = GT_DATA_D-DQRNY."当月(N)到期
GT_DATA_D-DMBTR_N = GT_DATA_D-DMBTR_N + GT_DATA_D-DMBTR .
ENDIF.
IF LV_DATUM1(6) = GT_DATA_D-DQRNY."N+1到期
GT_DATA_D-DMBTR_N1 = GT_DATA_D-DMBTR_N1 + GT_DATA_D-DMBTR .
ENDIF.
IF LV_DATUM2(6) = GT_DATA_D-DQRNY."N+2到期
GT_DATA_D-DMBTR_N2 = GT_DATA_D-DMBTR_N2 + GT_DATA_D-DMBTR .
ENDIF.
IF LV_DATUM3(6) = GT_DATA_D-DQRNY."N+3到期
GT_DATA_D-DMBTR_N3 = GT_DATA_D-DMBTR_N3 + GT_DATA_D-DMBTR .
ENDIF.
IF LV_DATUM4(6) = GT_DATA_D-DQRNY."N+4到期
GT_DATA_D-DMBTR_N4 = GT_DATA_D-DMBTR_N4 + GT_DATA_D-DMBTR .
ENDIF.
IF LV_DATUM5(6) <= GT_DATA_D-DQRNY."N+5到期
GT_DATA_D-DMBTR_N5 = GT_DATA_D-DMBTR_N5 + GT_DATA_D-DMBTR .
ENDIF.
ADD 1 TO LV_LINES .
GT_DATA_D-LV_LINES = LV_LINES .
MODIFY GT_DATA_D .
CLEAR GT_DATA_D .
ENDLOOP.
DELETE GT_DATA_D WHERE DMBTR_YS IS INITIAL .
GT_DATA_G[] = GT_DATA_D[] .
SORT GT_DATA_D[] BY BUKRS KUNNR .
DELETE ADJACENT DUPLICATES FROM GT_DATA_D[] COMPARING BUKRS KUNNR .
LOOP AT GT_DATA_D.
CLEAR GT_DATA_D-DMBTR_YQ .
CLEAR GT_DATA_D-DMBTR_N .
CLEAR GT_DATA_D-DMBTR_N1 .
CLEAR GT_DATA_D-DMBTR_N2 .
CLEAR GT_DATA_D-DMBTR_N3 .
CLEAR GT_DATA_D-DMBTR_N4 .
CLEAR GT_DATA_D-DMBTR_N5 .
LOOP AT GT_DATA_G WHERE BUKRS = GT_DATA_D-BUKRS AND KUNNR = GT_DATA_D-KUNNR.
GT_DATA_D-DMBTR_YQ = GT_DATA_D-DMBTR_YQ + GT_DATA_G-DMBTR_YQ .
GT_DATA_D-DMBTR_N = GT_DATA_D-DMBTR_N + GT_DATA_G-DMBTR_N .
GT_DATA_D-DMBTR_N1 = GT_DATA_D-DMBTR_N1 + GT_DATA_G-DMBTR_N1 .
GT_DATA_D-DMBTR_N2 = GT_DATA_D-DMBTR_N2 + GT_DATA_G-DMBTR_N2 .
GT_DATA_D-DMBTR_N3 = GT_DATA_D-DMBTR_N3 + GT_DATA_G-DMBTR_N3 .
GT_DATA_D-DMBTR_N4 = GT_DATA_D-DMBTR_N4 + GT_DATA_G-DMBTR_N4 .
GT_DATA_D-DMBTR_N5 = GT_DATA_D-DMBTR_N5 + GT_DATA_G-DMBTR_N5 .
CLEAR GT_DATA_G .
ENDLOOP.
SELECT SINGLE BLDAT INTO GT_DATA_D-BLDAT FROM ZTFI107
WHERE BUKRS = GT_DATA_D-BUKRS
AND KUNNR = GT_DATA_D-KUNNR
.
READ TABLE GT_DATA_F WITH KEY BUKRS = GT_DATA_D-BUKRS KUNNR = GT_DATA_D-KUNNR .
IF SY-SUBRC = 0.
GT_DATA_D-ZTAGQ = GT_DATA_F-ZTAGQ .
ENDIF.
GT_DATA_D-BLDA = GT_DATA_D-BLDAT+6(2) .
MODIFY GT_DATA_D .
CLEAR GT_DATA_D .
CLEAR GT_DATA_F .
ENDLOOP.
ELSE.
MESSAGE 'NO_DATA!'TYPE'S'DISPLAY LIKE 'E'.
ENDIF.
ENDFORM.
FORM FRM_SET_ALV_TOOLBAR .
REFRESH GT_TOOLS[].
"你也可以删除标准的功能按钮
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&DETAIL'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&REFRESH'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&LOCAL&UNDO'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&SORT_ASC'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&SORT_DSC'.
*
*
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&FIND'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&FIND_MORE'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&MB_FILTER'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&MB_SUM'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&MB_SUBTOT'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&MB_EXPORT'.
*
* DELETE e_object->mt_toolbar WHERE FUNCTION = '&MB_VARIANT'.
*
*
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '插入行'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '删除行'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '剪切'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '复制文本'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '插入总览'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '附加行'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '复制行'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '视图'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '显示图形'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '撤销'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '明细'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '打印'.
*
* DELETE e_object->mt_toolbar WHERE quickinfo = '最终用户文档'.
APPEND CL_GUI_ALV_GRID=>MC_FC_CHECK TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_CUT TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_COPY TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_SUM TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_INFO TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_REFRESH TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_GRAPH TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO TO GT_TOOLS.
APPEND CL_GUI_ALV_GRID=>MC_FC_SAVE_VARIANT TO GT_TOOLS.
ENDFORM. " FRM_SET_ALV_TOOLBAR
*&---------------------------------------------------------------------*
*& Form CREATEDOCKINGCONTROL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM CREATEDOCKINGCONTROL .
* create container for alv-tree
CREATE OBJECT G_CONTAINER_OBJECT
EXPORTING SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_LEFT
EXTENSION = 1300
REPID = G_REPID
DYNNR = '0100'.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM CREATETREECONTROL
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> P1 TEXT
*& <-- P2 TEXT
*&---------------------------------------------------------------------*
FORM CREATETREECONTROL .
DATA L_FCAT_CACHE TYPE LVC_T_FCAT.
DATA WA_LAYOUT_CACHE TYPE LVC_S_LAYO.
DATA WA_FIELD TYPE LVC_S_FCAT.
DATA LO_EVENT TYPE REF TO CL_EVENT_RECEIVER.
DATA L_DISVARIANT TYPE DISVARIANT.
* CREATE OBJECT GO_ALV_GRID
* EXPORTING
* I_PARENT = G_CONTAINER_OBJECT.
CREATE OBJECT LO_CONTAINER
EXPORTING
CONTAINER_NAME = 'CONT01'.
CREATE OBJECT GO_ALV_GRID
EXPORTING
I_PARENT = LO_CONTAINER.
DEFINE FILL_FIELD.
WA_FIELD-FIELDNAME = &1.
WA_FIELD-COLTEXT = &2.
* IF WA_FIELD-FIELDNAME = 'MATNR' .
* WA_FIELD-REF_TABLE = 'MARA'.
* WA_FIELD-REF_FIELD = 'MATNR'.
* ENDIF.
IF WA_FIELD-FIELDNAME = 'BUKRS'
OR WA_FIELD-FIELDNAME = 'KUNNR'
OR WA_FIELD-FIELDNAME = 'LV_LINES'
.
WA_FIELD-KEY = 'X'.
ENDIF.
APPEND WA_FIELD TO L_FCAT_CACHE .
CLEAR WA_FIELD.
END-OF-DEFINITION.
FILL_FIELD :
'LV_LINES' '序号',
'BUKRS' '公司代码',
'BUTXT' '公司代码名称',
'BUDATJ' '屏幕的截止日期',
'KUNNR' '客户',
'NAME1' '客户名称',
'BLDA' '月度付款日',
'DYQJ' '当月期间',
* 'DQRNY' '到期日年月',
'ZTAGQ' '信用期',
'WAERS' '本币币别',
'DMBTR_YS' '应收总额',
'DMBTR_YQ' '已经逾期',
'DMBTR_N' '当月(N)到期',
'DMBTR_N1' 'N+1到期',
'DMBTR_N2' 'N+2到期',
'DMBTR_N3' 'N+3到期',
'DMBTR_N4' 'N+4到期',
'DMBTR_N5' 'N+5到期',
'TEXT20' '备注'.
CREATE OBJECT LO_EVENT.
SET HANDLER LO_EVENT->HANDLE_DOUBLE_CLICK FOR GO_ALV_GRID.
SET HANDLER LO_EVENT->HANDLE_ONDRAG FOR GO_ALV_GRID.
SET HANDLER LO_EVENT->HANDLE_TOOLBAR FOR GO_ALV_GRID.
SET HANDLER LO_EVENT->HANDLE_COMMAND FOR GO_ALV_GRID.
WA_LAYOUT_CACHE-GRID_TITLE = '应收账款回款计划总表'."标题栏文本
* WA_LAYOUT_CACHE-SEL_MODE = 'D'. "选择方式
WA_LAYOUT_CACHE-CWIDTH_OPT = 'X'. "优化列宽
* WA_LAYOUT_CACHE-ZEBRA = 'X'.
CLEAR L_DISVARIANT.
L_DISVARIANT-REPORT = SY-REPID. "当前程序
*添加自定义工具条
PERFORM FRM_SET_ALV_TOOLBAR.
CALL METHOD GO_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = WA_LAYOUT_CACHE
I_SAVE = 'A'
IS_VARIANT = L_DISVARIANT
* IT_TOOLBAR_EXCLUDING = GT_TOOLS
CHANGING
IT_FIELDCATALOG = L_FCAT_CACHE
IT_OUTTAB = GT_DATA_D[].
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FORM_INIT_0101
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FORM_INIT_0101 .
DATA L_FCAT_CACHE TYPE LVC_T_FCAT.
DATA WA_LAYOUT_CACHE TYPE LVC_S_LAYO.
DATA WA_FIELD TYPE LVC_S_FCAT.
DATA LO_EVENT TYPE REF TO CL_EVENT_RECEIVER.
DATA L_DISVARIANT TYPE DISVARIANT.
CREATE OBJECT LO_CONTAINER
EXPORTING
CONTAINER_NAME = 'CONT02'.
CREATE OBJECT GO_ALV_GRID_SUB
EXPORTING
I_PARENT = LO_CONTAINER.
DEFINE FILL_FIELD.
WA_FIELD-FIELDNAME = &1.
WA_FIELD-COLTEXT = &2.
IF WA_FIELD-FIELDNAME = 'DMBTR' .
WA_FIELD-DO_SUM = 'X'.
ENDIF.
* IF WA_FIELD-FIELDNAME = 'MATNR' .
* WA_FIELD-REF_TABLE = 'MARA'.
* WA_FIELD-REF_FIELD = 'MATNR'.
* ENDIF.
IF WA_FIELD-FIELDNAME = 'BUKRS'
OR WA_FIELD-FIELDNAME = 'KUNNR'
.
WA_FIELD-KEY = 'X'.
ENDIF.
APPEND WA_FIELD TO L_FCAT_CACHE .
CLEAR WA_FIELD.
END-OF-DEFINITION.
FILL_FIELD :
'BUKRS' '公司代码',
'BUTXT' '公司代码名称',
'BELNR' '会计凭证',
'BUZEI' '行项目',
'BUDATJ' '屏幕的截止日期',
'KUNNR' '客户',
'NAME1' '客户名称',
'WAERS' '本币币别',
'GJAHR' '年度',
'DMBTR' '本币金额',
'SHKZG' '借贷标识',
'BUDAT' '过账日期',
'ZFBDT' '起算日',
'ZFBDT' '起算日',
'ZBD1T' '天数',
'ZTAGG' '信用账期',
'ZFBDQ' '到期日',
'HKONT' '总账科目',
'AUGBL' '清算凭证'.
CREATE OBJECT LO_EVENT.
SET HANDLER LO_EVENT->HANDLE_TOOLBAR FOR GO_ALV_GRID_SUB.
SET HANDLER LO_EVENT->HANDLE_COMMAND FOR GO_ALV_GRID_SUB.
SET HANDLER LO_EVENT->HANDLE_ONDROP FOR GO_ALV_GRID_SUB.
WA_LAYOUT_CACHE-GRID_TITLE = '应收账款回款计划明细表(请双击总表数据查看)'."标题栏文本
* WA_LAYOUT_CACHE-SEL_MODE = 'D'. "选择方式
WA_LAYOUT_CACHE-CWIDTH_OPT = 'X'. "优化列宽
CLEAR L_DISVARIANT.
L_DISVARIANT-REPORT = SY-REPID. "当前程序
CALL METHOD GO_ALV_GRID_SUB->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = WA_LAYOUT_CACHE
I_SAVE = 'A'
IS_VARIANT = L_DISVARIANT
CHANGING
IT_FIELDCATALOG = L_FCAT_CACHE
IT_OUTTAB = GT_DATA_E[].
GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& Form INIT_DRAGDROP
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM INIT_DRAGDROP .
* set allowed drop effect
G_DROPEFFECT = CL_DRAGDROP=>MOVE.
* Initialize drag & drop descriptions
* -> tree
CREATE OBJECT DRAGDROP_TREE.
CALL METHOD DRAGDROP_TREE->ADD EXPORTING
FLAVOR = 'LINE'
DRAGSRC = SELECTED
DROPTARGET = ''
EFFECT = G_DROPEFFECT.
CALL METHOD DRAGDROP_TREE->GET_HANDLE IMPORTING
HANDLE = G_HANDLE_TREE.
* -> ALV grid
CREATE OBJECT DRAGDROP_ALV.
CALL METHOD DRAGDROP_ALV->ADD EXPORTING
FLAVOR = 'LINE'
DRAGSRC = ''
DROPTARGET = SELECTED
EFFECT = G_DROPEFFECT.
CALL METHOD DRAGDROP_ALV->GET_HANDLE IMPORTING
HANDLE = G_HANDLE_ALV.
ENDFORM.
*&---------------------------------------------------------------------*
*& 包含 ZFIR090_PBO
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'PF_0100'.
SET TITLEBAR 'TITLE_0100'.
CHECK CONTROLS_CREATED IS INITIAL.
CALL METHOD CL_GUI_CFW=>FLUSH."触发SAP GUI更新界面
PERFORM FORM_INIT_0101. "实例化ALV_GRID
CONTROLS_CREATED = SELECTED.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SCREEN_SETTING_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE SCREEN_SETTING_0100 OUTPUT.
LOOP AT SCREEN.
CASE SCREEN-GROUP1 .
WHEN 'G1'.
SCREEN-ACTIVE = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module TREE_AND_DOCKING OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE TREE_AND_DOCKING OUTPUT.
CHECK CONTROLS_CREATED1 IS INITIAL.
* docking control
* PERFORM CREATEDOCKINGCONTROL.
* tree control
PERFORM CREATETREECONTROL.
CONTROLS_CREATED1 = SELECTED.
ENDMODULE.
*&---------------------------------------------------------------------*
*& 包含 ZFIR090_PAI
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE cancel INPUT.
LEAVE PROGRAM .
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
ok_save = sy-ucomm .
CLEAR sy-ucomm .
CLEAR ok_code .
CASE ok_save.
WHEN 'BACK' .
LEAVE TO SCREEN 0 .
WHEN OTHERS .
ENDCASE .
ENDMODULE.
INITIALIZATION .
PERFORM GET_MONTH_LASTDAY.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN.
PERFORM SCREEN_SETTING.
START-OF-SELECTION.
* Initialization Drag and Drop
PERFORM INIT_DRAGDROP.
PERFORM FOM_GETDATA .
CALL SCREEN 100.
应收账款回款计划明细表-(开发笔记)
最新推荐文章于 2023-09-27 08:30:00 发布