




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/SAP动态树程序DialogALV报表(下)--Author:SUNZKQQ:1131341075WEIXIN:DreamSunlight88REPORT
ZFIR_1026.
INCLUDE
ZFIR_1026_TOP.
INCLUDE
ZFIR_1026_CLS.
INCLUDE
ZFIR_1026_SEL.
INCLUDE
ZFIR_1026_O01.
INCLUDE
ZFIR_1026_I01.
INCLUDE
ZFIR_1026_F01.*&*
*&
包含
ZFIR_1026_TOP
*&*
TYPE-POOLS:KKBLO
.
TABLES:T001,T012K,TCJ_POSITIONS
,ZFIT1011
,
SSCRFIELDS,BKPF,ISELLIST,TCJ_DOCUMENTS.
TYPES:
BEGIN
OF
TY_TAB
.
INCLUDE
TYPE
ZFIT1011
.
TYPES:
BANKA
TYPE
BNKA-BANKA
,
HBKID
TYPE
T012K-HBKID
,
KDYKHB_01
TYPE
FDBL_DE_S
,
"可动用可划拨-可动用可划拨
KDYKHB_02
TYPE
FDBL_DE_S
,"可动用可划拨-现金
KDYKHB_XJ
TYPE
FDBL_DE_S
,"可动用可划拨-小计
KDYBKHB_10
TYPE
FDBL_DE_S
,
"可动用不可划拨-外汇资本金户
KDYBKHB_11
TYPE
FDBL_DE_S
,"可动用不可划拨-外债户
KDYBKHB_12
TYPE
FDBL_DE_S
,"可动用不可划拨-销售监管户
KDYBKHB_13
TYPE
FDBL_DE_S
,"可动用不可划拨-贷款监管户
KDYBKHB_XJ
TYPE
FDBL_DE_S
,"可动用不可划拨-小计
BKDY_20
TYPE
FDBL_DE_S
,"不可动用-还本付息户
BKDY_21
TYPE
FDBL_DE_S
,"不可动用-保证金户-按揭保证金
BKDY_22
TYPE
FDBL_DE_S
,"不可动用-保证金户-还贷保证金
BKDY_23
TYPE
FDBL_DE_S
,"不可动用-保证金户-解押保证金
BKDY_24
TYPE
FDBL_DE_S
,"不可动用-保证金户-保函保证金
BKDY_25
TYPE
FDBL_DE_S
,"不可动用-保证金户-政府保证金
BKDY_26
TYPE
FDBL_DE_S
,"不可动用-保证金户-银行承兑汇票
BKDY_27
TYPE
FDBL_DE_S
,"不可动用-临时验资户
BKDY_28
TYPE
FDBL_DE_S
,"不可动用-纳税专户
BKDY_29
TYPE
FDBL_DE_S
,"不可动用-其它户
BKDY_XJ
TYPE
FDBL_DE_S
,"不可动用-小计
ZHJ
TYPE
FDBL_DE_S
."合计
TYPES:
END
OF
TY_TAB
.
DATA:BEGIN
OF
GT_TCJ_POSITIONS
OCCURS
0
.
INCLUDE
TYPE
TCJ_POSITIONS
.
DATA:
TRANSACT_NAME
TYPE
TCJ_TRANS_NAMES-TRANSACT_NAME
,
*
NUM
TYPE
CHAR4
,
*
ORT01
TYPE
T001-ORT01
,
HBKID
TYPE
T012K-HBKID
,
"帐号
*
FUNAC
TYPE
T012K-FUNAC
,
"资金性质
*
FUNACT
TYPE
ZFIE1002-FUNACT
,
"资金性质描述
ACATR
TYPE
T012K-ACATR
,
"资金类别明细
ACATRT
TYPE
ZFIE1002-ACATRT
,
"账户性质描述
*
TEXT1
TYPE
T012T-TEXT1
,
"银行账户描述
BANKA
TYPE
BNKA-BANKA
,
"银行账户描述
CLASS
TYPE
CHAR20
,
*
CSHYE
TYPE
FAGL_BALANCE_LINE-DEBIT,
*
QCYE
TYPE
FAGL_BALANCE_LINE-DEBIT,
*
CSHRQ
TYPE
BKPF-BUDAT
CAJO_NUMBERT
TYPE
CHAR20
.
DATA:END
OF
GT_TCJ_POSITIONS
.
"SC100
*
ALV实列
DATA:
GC_ALVGRID100
TYPE
REF
TO
CL_GUI_ALV_GRID.
*
客户容器
DATA:
GC_CCONTAINER100
TYPE
REF
TO
CL_GUI_CUSTOM_CONTAINER,
GO_TREE100
TYPE
REF
TO
CL_GUI_COLUMN_TREE,
GV_CONT_100
TYPE
SCRFNAME
VALUE
'ALV100',
*
ALV字段设置
GT_FIELDCAT100
TYPE
LVC_T_FCAT,
GS_FIELDCAT100
TYPE
LVC_S_FCAT,
*
ALV布局
GS_LAYOUT100
TYPE
LVC_S_LAYO,
GT_SORT100
TYPE
LVC_T_SORT,
GS_SORT100
TYPE
LVC_S_SORT,
GT_UIFUNCTION100
TYPE
UI_FUNCTIONS.
**
*
DOI
varibles
**
DATA:
INITIALIZED(1),
SPLITTER
TYPE
REF
TO
CL_GUI_SPLITTER_CONTAINER,
CONTAINER
TYPE
REF
TO
CL_GUI_CONTAINER,
CONTROL
TYPE
REF
TO
I_OI_CONTAINER_CONTROL,
DOCUMENT
TYPE
REF
TO
I_OI_DOCUMENT_PROXY,
LIKE
RLGRAP-
,
RETCODE
TYPE
SOI_RET_STRING,
SPREADSHEET
TYPE
REF
TO
I_OI_SPREADSHEET,
ERROR
TYPE
REF
TO
I_OI_ERROR,
ERRORS
TYPE
REF
TO
I_OI_ERROR
OCCURS
0
WITH
HEADER
LINE,
APP
TYPE
VRM_ID,
BDS_INSTANCE
TYPE
REF
TO
CL_BDS_DOCUMENT_SET,
DOC_SIGNATURE
TYPE
SBDST_SIGNATURE,
WA_DOC_SIGNATURE
LIKE
LINE
OF
DOC_SIGNATURE,
DOC_COMPONENTS
TYPE
SBDST_COMPONENTS,
DOC_URIS
TYPE
SBDST_URI,
WA_DOC_URIS
LIKE
LINE
OF
DOC_URIS,
EXCEL(80)
VALUE
'Excel.Sheet',
RANGES
TYPE
SOI_RANGE_LIST,
RANGEITEM
TYPE
SOI_RANGE_ITEM,
EXCEL_INPUT
TYPE
SOI_GENERIC_TABLE,
EXCEL_INPUT_WA
TYPE
SOI_GENERIC_ITEM,
TABLENAME(10),
OKCODE(15),
ROW(4),
COLUMN(4),
DATA(39),
DOCUMENT_TYPE(80),
ITEM_URL(256).
DATA:BEGIN
OF
GT_CULUMN
OCCURS
0
,
NAME
TYPE
TV_ITMNAME,
TEXT
TYPE
TV_HEADING
,
END
OF
GT_CULUMN
.
DATA:BEGIN
OF
GT_T012
OCCURS
0
.
INCLUDE
TYPE
T012
.
DATA:
BANKA
TYPE
BNKA-BANKA
.
DATA:END
OF
GT_T012
.
DATA:BEGIN
OF
GT_SUB_ALV
OCCURS
0
.
INCLUDE
TYPE
TCJ_POSITIONS
.
DATA:
END
OF
GT_SUB_ALV
.
DATA:
BEGIN
OF
IT_TAB
OCCURS
0,
FLAG(1),
AREANO(5)
TYPE
N
,
TABCONTENT
TYPE
ZTAB_EXCEL
,
END
OF
IT_TAB.
DATA:
BEGIN
OF
ITAB
OCCURS
0.
INCLUDE
STRUCTURE
ALSMEX_TABLINE.
DATA:
END
OF
ITAB.
RANGES:R_BUKRS
FOR
T001-BUKRS
.
DATA:GV_FLAG
TYPE
C
,
EV_REGCT
TYPE
ZFINODID,
GV_NUM
TYPE
CHAR3
,
G_VALUE
TYPE
STRING
.
DATA:GT_HIERARCHY
TYPE
SOI_HIERARCHY_TABLE.
DATA:GT_T001
TYPE
T001
OCCURS
0
WITH
HEADER
LINE
,
GT_T012K
TYPE
TABLE
OF
T012K
WITH
HEADER
LINE
,
GT_ZFIE1002
TYPE
TABLE
OF
ZFIE1002
WITH
HEADER
LINE
.
TYPES:TT_DEMO_ITEM
TYPE
STANDARD
TABLE
OF
DEMO_ITEM,
TT_ZFIT1011
TYPE
STANDARD
TABLE
OF
ZFIT1011,
TT_TAB
TYPE
STANDARD
TABLE
OF
TY_TAB
,
TY_DEMO_ITEM
TYPE
DEMO_ITEM,
TY_ZFIT1011
TYPE
ZFIT1011.
DATA:GT_NODE_TAB
TYPE
TREEV_NTAB,
GT_ITEM_TAB
TYPE
STANDARD
TABLE
OF
DEMO_ITEM,
GT_ZFIT1011
TYPE
TABLE
OF
ZFIT1011,
GS_ZFIT1011
TYPE
ZFIT1011,
GT_TAB
TYPE
TT_TAB
,
WT_TAB
TYPE
TT_TAB
,
GS_TAB
TYPE
TY_TAB,
WS_TAB
TYPE
TY_TAB
.
FIELD-SYMBOLS:<ZFIT1011>
TYPE
ZFIT1011.
DATA:GT_TCJ_DOCUMENTS
TYPE
TCJ_DOCUMENTS
OCCURS
0
WITH
HEADER
LINE,
GT_TCJ_TRANSACTIONS
TYPE
TCJ_TRANSACTIONS
OCCURS
0
WITH
HEADER
LINE
,
GT_TCJ_TRANS_NAMES
TYPE
TCJ_TRANS_NAMES
OCCURS
0
WITH
HEADER
LINE
,
GT_BNKA
TYPE
BNKA
OCCURS
0
WITH
HEADER
LINE
.
**
*
ALV
related
**
DATA:
GT_SUB_FIELDCAT
TYPE
LVC_T_FCAT.
DATA:
GT_FIELDCAT
TYPE
LVC_T_FCAT,
IT_FIELDCAT
TYPE
LVC_T_FCAT,
IS_FIELDCAT
TYPE
LVC_S_FCAT,
IT_EVENTS
TYPE
SLIS_T_EVENT
WITH
HEADER
LINE,
IT_SUB_EVENTS
TYPE
SLIS_T_EVENT
WITH
HEADER
LINE,
GS_LAYOUT
TYPE
LVC_S_LAYO,
IT_SORT
TYPE
SLIS_T_SORTINFO_ALV,
IT_PRINT
TYPE
SLIS_PRINT_ALV,
G_GRID
TYPE
REF
TO
CL_GUI_ALV_GRID.
DATA
GS_SUB_ALV
LIKE
LINE
OF
GT_SUB_ALV.
DATA:
G_REPID
LIKE
SY-REPID,
GT_LAYOUT_ALV
TYPE
LVC_S_LAYO.
DATA:
WA_SORT
TYPE
SLIS_SORTINFO_ALV,
GT_SORT
TYPE
LVC_T_SORT.
DATA:
LR_GRID
TYPE
REF
TO
CL_GUI_ALV_GRID.
DATA:
G_LAYOUT
TYPE
SLIS_LAYOUT_ALV,
TITLE
TYPE
LVC_TITLE,
IVARIANT
LIKE
DISVARIANT.
DATA
FNAME(20).
**
*
FIELD
symbols
**
FIELD-SYMBOLS:
<FIELD>
TYPE
ANY,
<FIELD1>
TYPE
ANY
.
FIELD-SYMBOLS:
<FS>
LIKE
GT_TCJ_POSITIONS.
FIELD-SYMBOLS:<FS_TAB>
TYPE
TY_TAB
.*&*
*&
包含
ZFIR_1026_CLS
*&*
**
*
INCLUDE
BCALV_TOOLBAR_EVENT_RECEIVER
*
**
CLASS
LCL_EVENT_RECEIVER
DEFINITION.
PUBLIC
SECTION.
METHODS:
CONSTRUCTOR
IMPORTING
HANDLE
TYPE
REF
TO
CL_GUI_COLUMN_TREE
CB_NODE_DOUBLE_CLICK
TYPE
RS38L_FNAM,
HANDLE_ITEM_DOUBLE_CLICK
FOR
EVENT
ITEM_DOUBLE_CLICK
OF
CL_GUI_COLUMN_TREE
IMPORTING
NODE_KEY
ITEM_NAME.
PRIVATE
SECTION.
DATA:
TREE_HANDLE
TYPE
REF
TO
CL_GUI_COLUMN_TREE.
DATA:
TREE_CB_NODE_DOUBLE_CLICK
TYPE
RS38L_FNAM.
ENDCLASS.
"lcl_toolbar_event_receiver
DEFINITION
**
*
CLASS
LCL_EVENT_RECEIVER
IMPLEMENTATION
**
*
**
CLASS
LCL_EVENT_RECEIVER
IMPLEMENTATION
.
METHOD
CONSTRUCTOR.
TREE_HANDLE
=
HANDLE.
TREE_CB_NODE_DOUBLE_CLICK
=
CB_NODE_DOUBLE_CLICK.
ENDMETHOD.
"constructor
METHOD
HANDLE_ITEM_DOUBLE_CLICK.
DATA:LV_NODID
TYPE
ZFINODID
.
DATA:LV_ITEM_NAME
TYPE
NAME1
.
DATA:LS_TCJ_POSITIONS
LIKE
LINE
OF
GT_TCJ_POSITIONS
.
DATA:LS_SUB_ALV
LIKE
LINE
OF
GT_SUB_ALV
.
DATA:LV_1
TYPE
STRING
,
LV_2
TYPE
STRING
,
LV_3
TYPE
STRING
,
LV_4
TYPE
STRING
.
CLEAR
:LV_NODID,LV_ITEM_NAME.
LV_NODID
=
NODE_KEY
.
LV_ITEM_NAME
=
ITEM_NAME
.
READ
TABLE
GT_TAB
WITH
KEY
NODID
=
LV_NODID
TRANSPORTING
NO
FIELDS.
IF
SY-SUBRC
=
0.
CLEAR:
GT_SUB_ALV
,GS_TAB.
REFRESH:WT_TAB
,GT_SUB_ALV.
PERFORM
FRM_GET_CLICK_DATA
USING
LV_NODID
.
"
使用递归找寻下级数据
LOOP
AT
WT_TAB
INTO
GS_TAB
.
LOOP
AT
GT_TCJ_POSITIONS
INTO
LS_TCJ_POSITIONS
WHERE
COMP_CODE
=
GS_TAB-BUKRS
"公司代码
AND
HBKID
=
GS_TAB-HBKID
.
"银行CODE
*
AND
BANKA
=
GS_TAB-BANKA
.
"银行描述
IF
GS_TAB-RCFLG
=
'X'.
CHECK
LS_TCJ_POSITIONS-NODID
IS
NOT
INITIAL
.
ELSE.
CHECK
LS_TCJ_POSITIONS-NODID
IS
INITIAL
.
ENDIF.
IF
LV_ITEM_NAME
=
'ZHJ'
OR
LV_ITEM_NAME
=
'NODID'.
"合计项不做限制
ELSE.
SPLIT
LV_ITEM_NAME
AT
'_'
INTO
LV_1
LV_2
.
"分割出资金类别,资金类别明细
SPLIT
LS_TCJ_POSITIONS-CLASS
AT
'_'
INTO
LV_3
LV_4
.
"分割出资金类别,资金类别明细
CONDENSE:LV_1,LV_2,LV_3,LV_4
NO-GAPS
.
CHECK
LV_1
=
LV_3
.
"检查出资金类别
IF
LV_2
=
'XJ'
.
ELSE.
CHECK
LV_2
=
LV_4
.
ENDIF.
ENDIF.
GS_TAB-NODID
=
LS_TCJ_POSITIONS-NODID
.
"区域中心标识.
MOVE-CORRESPONDING
LS_TCJ_POSITIONS
TO
LS_SUB_ALV
.
APPEND
LS_SUB_ALV
TO
GT_SUB_ALV
.CLEAR
LS_SUB_ALV.
ENDLOOP.
ENDLOOP.
IF
GT_SUB_ALV[]
IS
NOT
INITIAL.
PERFORM
FRM_SUB_FIELDCAT
.
PERFORM
FRM_SUB_EVENTS
.
PERFORM
FRM_SUB_ALV
.
ENDIF.
ENDIF.
ENDMETHOD.
"handle_item_double_click
ENDCLASS.
"LCL_EVENT_RECEIVER
IMPLEMENTATION
DATA:GO_APPLICATION
TYPE
REF
TO
LCL_EVENT_RECEIVER.
**
*
-->
p1
参数:1
列
2
行
3
值
*
<--
p2
作用:填充excel
**
DEFINE
HFILL-CELL.
ITAB-COL
=
&1.
ITAB-ROW
=
&2.
IF
&4
=
'X'.
IF
&3
<
0
.
CLEAR
G_VALUE.
G_VALUE
=
ABS(
&3
).
CONCATENATE
'-'
G_VALUE
INTO
G_VALUE
.
CONDENSE
G_VALUE
NO-GAPS
.
MOVE
G_VALUE
TO
ITAB-VALUE.
ELSE.
MOVE
&3
TO
ITAB-VALUE.
ENDIF.
ELSE.
MOVE
&3
TO
ITAB-VALUE.
ENDIF.
APPEND
ITAB.
CLEAR
ITAB.
END-OF-DEFINITION.*&*
*&
包含
ZFIR_1026_SEL
*&*
SELECTION-SCREEN
BEGIN
OF
BLOCK
BLK1
WITH
FRAME
TITLE
K1.
SELECT-OPTIONS:
S_BUKRS
FOR
BKPF-BUKRS
OBLIGATORY.
SELECT-OPTIONS:
S_BUDAT
FOR
ISELLIST-BDATE
DEFAULT
SY-DATUM
OBLIGATORY
NO
INTERVALS
NO-EXTENSION,
S_HBKID
FOR
T012K-HBKID.
SELECTION-SCREEN
END
OF
BLOCK
BLK1.
*AT
SELECTION-SCREEN
ON
VALUE-REQUEST
FOR
iv_nodid
.
*
PERFORM
frm_f4_help
.
START-OF-SELECTION.
EV_REGCT
=
'GI'
.
SELECT
*
INTO
TABLE
GT_ZFIT1011
FROM
ZFIT1011
WHERE
BUKRS
IN
S_BUKRS
OR
NODID
=
'GI'.
IF
S_BUKRS
IS
NOT
INITIAL.
LOOP
AT
GT_ZFIT1011
ASSIGNING
<ZFIT1011>
WHERE
BUKRS
IS
INITIAL.
<ZFIT1011>-DWNOD
=
S_BUKRS-LOW.
ENDLOOP.
ENDIF.
IF
GT_ZFIT1011[]
IS
INITIAL
.
MESSAGE
'请先维护资金层次维护表ZFIT1011'
TYPE
'S'
DISPLAY
LIKE
'E'
.
LEAVE
LIST-PROCESSING
.
ENDIF.
*>权限检查
AUTHORITY-CHECK
OBJECT
'F_BKPF_BUK'
ID
'BUKRS'
FIELD
S_BUKRS-LOW.
IF
SY-SUBRC
<>
0.
MESSAGE
S055(ZFI)
DISPLAY
LIKE
'E'.
EXIT.
ENDIF.
CALL
SCREEN
100.*&*
*&
包含
ZFIR_1026_O01
*&*
*&*
*&
Module
STATUS_0100
OUTPUT
*&*
*
text
**
MODULE
STATUS_0100
OUTPUT.
*
SET
PF-STATUS
'0100'.
*
SET
TITLEBAR
'0100'.
PERFORM
FRM_BUILT_ALV_100.
ENDMODULE.
"
STATUS_0100
OUTPUT
*&*
*&
Module
STATUS_0200
OUTPUT
*&*
*
text
**
MODULE
STATUS_0200
OUTPUT.
*
SET
PF-STATUS
'xxxxxxxx'.
*
SET
TITLEBAR
'xxx'.
DATA:
L_TOP
TYPE
I,
L_LAST
TYPE
I.
DATA:INDICATOR(100)
TYPE
C
VALUE
'正在写入,请等待...'.
SET
PF-STATUS
'EXCEL_PF'.
PERFORM
FRM_CREATE_BASIC_OBJECT.
PERFORM
PROGRESS_INDICATOR
USING
INDICATOR.
LOOP
AT
IT_TAB
.
ITAB[]
=
IT_TAB-TABCONTENT[].
PERFORM
FRM_SET_CELL.
ENDLOOP.
PERFORM
FRM_SET_GROUP
CHANGING
GT_HIERARCHY.
**
**高度宽度自适应5
CALL
METHOD
DOCUMENT->EXECUTE_MACRO
EXPORTING
MACRO_STRING
=
'module.Macro1'.
ENDMODULE.
"
STATUS_0200
OUTPUT*&*
*&
包含
ZFIR_1026_I01
*&*
*&*
*&
Module
USER_COMMAND_0100
INPUT
*&*
*
text
**
MODULE
USER_COMMAND_0100
INPUT.
CASE
SY-UCOMM.
WHEN
'&F03'
.
LEAVE
TO
SCREEN
0.
WHEN
'&F15'
OR'&F12'
.
LEAVE
PROGRAM.
WHEN
'EXPORT'
.
PERFORM
FRM_EXCEL_OUTPUT
.
WHEN
OTHERS.
ENDCASE.
CALL
METHOD
CL_GUI_CFW=>FLUSH.
CLEAR
:SY-UCOMM.
ENDMODULE.
"
USER_COMMAND_0100
INPUT
*&*
*&
Module
USER_COMMAND_0200
INPUT
*&*
*
text
**
MODULE
USER_COMMAND_0200
INPUT.
CASE
SY-UCOMM.
WHEN
'BACK'.
CALL
METHOD
CL_GUI_CFW=>FLUSH.
CALL
METHOD
CL_GUI_CFW=>DISPATCH.
FREE:
CONTROL,DOCUMENT,ERROR,BDS_INSTANCE,SPREADSHEET.
REFRESH:
DOC_COMPONENTS,
DOC_URIS,DOC_SIGNATURE.
CLEAR:INITIALIZED.
CALL
METHOD
CONTAINER->FREE.
CALL
METHOD
SPLITTER->FREE.
LEAVE
TO
SCREEN
0.
WHEN
'EXIT'.
IF
NOT
DOCUMENT
IS
INITIAL.
CALL
METHOD
DOCUMENT->CLOSE_DOCUMENT.
FREE
DOCUMENT.
ENDIF.
IF
NOT
CONTROL
IS
INITIAL.
CALL
METHOD
CONTROL->DESTROY_CONTROL.
FREE
CONTROL.
ENDIF.
LEAVE
PROGRAM.
WHEN
'SAVE'
.
CLEAR
.
CALL
FUNCTION
'F4_'
EXPORTING
*
PROGRAM_NAME
=
SYST-CPROG
*
DYNPRO_NUMBER
=
SYST-DYNNR
FIELD_NAME
=
'
'
IMPORTING
=
.
CALL
METHOD
DOCUMENT->SAVE_COPY_AS
EXPORTING
=
NO_FLUSH
=
'X'
PROMPT_USER
=
'
'
IMPORTING
RETCODE
=
RETCODE.
IF
SY-SUBRC
=
0.
MESSAGE
'保存成功!'
TYPE
'S'
.
LEAVE
TO
SCREEN
0
.
ELSE.
CALL
METHOD
C_OI_ERRORS=>SHOW_MESSAGE
EXPORTING
TYPE
=
'E'.
ENDIF.
ENDCASE.
ENDMODULE.
"
USER_COMMAND_0200
INPUT*&*
*&
包含
ZFIR_1026_F01
*&*
*&*
*&
Form
FRM_BUILT_ALV_100
*&*
*
text
**
*
-->
p1
text
*
<--
p2
text
**
FORM
FRM_BUILT_ALV_100
.
DATA:LS_HEADER
TYPE
TREEV_HHDR,
LS_EVENT
TYPE
CNTL_SIMPLE_EVENT,
LT_EVENTS
TYPE
CNTL_SIMPLE_EVENTS.
DATA:LV_TITLEBAR
TYPE
STRING.
*
lv_titlebar
=
'银行账户实时余额表('
&&
s_budat-low
&&
'-'
&&
s_budat-high
&&
')'.
LV_TITLEBAR
=
'银行账户实时余额表'.
SET
PF-STATUS
'0100'.
SET
TITLEBAR
'0001'
WITH
LV_TITLEBAR
.
IF
GC_CCONTAINER100
IS
INITIAL.
CREATE
OBJECT
GC_CCONTAINER100
EXPORTING
CONTAINER_NAME
=
GV_CONT_100
EXCEPTIONS
CNTL_ERROR
=
1
CNTL_SYSTEM_ERROR
=
2
CREATE_ERROR
=
3
LIFETIME_ERROR
=
4
LIFETIME_DYNPRO_DYNPRO_LINK
=
5
OTHERS
=
6.
IF
SY-SUBRC
<>
0.
MESSAGE
ID
SY-MSGID
TYPE
SY-MSGTY
NUMBER
SY-MSGNO
WITH
SY-MSGV1
SY-MSGV2
SY-MSGV3
SY-MSGV4.
ENDIF.
*
setup
the
hierarchy
header
LS_HEADER-HEADING
=
'银行账户实时余额表
'.
"
heading
LS_HEADER-WIDTH
=
40.
"
width:
30
characters
*
create
a
tree
control
CREATE
OBJECT
GO_TREE100
EXPORTING
PARENT
=
GC_CCONTAINER100
NODE_SELECTION_MODE
=
CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
ITEM_SELECTION
=
'X'
HIERARCHY_COLUMN_NAME
=
'NODID'
HIERARCHY_HEADER
=
LS_HEADER
EXCEPTIONS
CNTL_SYSTEM_ERROR
=
1
CREATE_ERROR
=
2
FAILED
=
3
ILLEGAL_NODE_SELECTION_MODE
=
4
ILLEGAL_COLUMN_NAME
=
5
LIFETIME_ERROR
=
6.
IF
SY-SUBRC
<>
0.
*
MESSAGE
a000.
ENDIF.
***********************add
****************************
*
create
object
IF
GO_APPLICATION
IS
INITIAL.
CREATE
OBJECT
GO_APPLICATION
EXPORTING
HANDLE
=
GO_TREE100
CB_NODE_DOUBLE_CLICK
=
'X'.
ENDIF.
*
assign
event
handlers
in
the
application
class
to
each
desired
event
"
header
click
CLEAR:LT_EVENTS,LS_EVENT.
LS_EVENT-EVENTID
=
CL_GUI_COLUMN_TREE=>EVENTID_ITEM_DOUBLE_CLICK.
LS_EVENT-APPL_EVENT
=
'X'.
APPEND
LS_EVENT
TO
LT_EVENTS.
CALL
METHOD
GO_TREE100->SET_REGISTERED_EVENTS
EXPORTING
EVENTS
=
LT_EVENTS
EXCEPTIONS
CNTL_ERROR
=
1
CNTL_SYSTEM_ERROR
=
2
ILLEGAL_EVENT_COMBINATION
=
3.
IF
SY-SUBRC
<>
0.
*
MESSAGE
A000.
ENDIF.
IF
GO_APPLICATION
IS
NOT
INITIAL.
SET
HANDLER
GO_APPLICATION->HANDLE_ITEM_DOUBLE_CLICK
FOR
GO_TREE100.
ENDIF.
***********************add
****************************
*
build
data
PERFORM
BUILD_NODE_AND_ITEM_TABLE
USING
GT_ZFIT1011
CHANGING
GT_NODE_TAB
GT_ITEM_TAB.
*--
为tree添加节点
CALL
METHOD
GO_TREE100->ADD_NODES_AND_ITEMS
EXPORTING
NODE_TABLE
=
GT_NODE_TAB[]
ITEM_TABLE
=
GT_ITEM_TAB[]
ITEM_TABLE_STRUCTURE_NAME
=
'DEMO_ITEM'
EXCEPTIONS
FAILED
=
1
CNTL_SYSTEM_ERROR
=
3
ERROR_IN_TABLES
=
4
DP_ERROR
=
5
TABLE_STRUCTURE_NAME_NOT_FOUND
=
6.
CALL
METHOD
GO_TREE100->EXPAND_ROOT_NODES
*
EXPORTING
*
level_count
=
*
expand_subtree
=
EXCEPTIONS
FAILED
=
1
ILLEGAL_LEVEL_COUNT
=
2
CNTL_SYSTEM_ERROR
=
3
OTHERS
=
4.
IF
SY-SUBRC
<>
0.
*
Implement
suitable
error
handling
here
ENDIF.
CALL
METHOD
CL_GUI_CFW=>FLUSH.
ENDIF.
ENDFORM.
"
FRM_BUILT_ALV_100
*&*
*&
Form
FRM_BUILD_FIELDCAT
*&*
*
text
**
*
-->
p1
text
*
<--
p2
text
**
FORM
FRM_BUILD_FIELDCAT
.
DATA:LV_NAME
TYPE
TV_ITMNAME,
LV_TEXT
TYPE
TV_HEADING
.
REFRESH
GT_CULUMN.
LV_NAME
=
'KDYKHB_01'.
LV_TEXT
=
'可动用可划拨-可动用可划拨'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYKHB_02'.
LV_TEXT
=
'可动用可划拨-现金'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYKHB_XJ'.
LV_TEXT
=
'可动用可划拨-小计'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYBKHB_10'.
LV_TEXT
=
'可动用不可划拨-贷款监管户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYBKHB_11'.
LV_TEXT
=
'可动用不可划拨-销售监管户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYBKHB_12'.
LV_TEXT
=
'可动用不可划拨-外汇资本金户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYBKHB_13'.
LV_TEXT
=
'可动用不可划拨-外债户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'KDYBKHB_XJ'.
LV_TEXT
=
'可动用不可划拨-小计'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_20'.
LV_TEXT
=
'不可动用-还本付息户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_21'.
LV_TEXT
=
'不可动用-保证金户-按揭保证金'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_22'.
LV_TEXT
=
'不可动用-保证金户-还贷保证金'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_23'.
LV_TEXT
=
'不可动用-保证金户-解押保证金'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_24'.
LV_TEXT
=
'不可动用-保证金户-保函保证金'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_25'.
LV_TEXT
=
'不可动用-保证金户-政府保证金'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_26'.
LV_TEXT
=
'不可动用-保证金户-银行承兑汇票'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_27'.
LV_TEXT
=
'不可动用-临时验资户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_28'.
LV_TEXT
=
'不可动用-纳税专户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_29'.
LV_TEXT
=
'不可动用-其它户'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'BKDY_XJ'.
LV_TEXT
=
'不可动用-小计'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
LV_NAME
=
'ZHJ'
.
LV_TEXT
=
'合计'
.
PERFORM
FRM_ADD_COLUMN
USING
LV_NAME
LV_TEXT
.
ENDFORM.
"
FRM_BUILD_FIELDCAT
*&*
*&
Form
FRM_ADD_COLUMN
*&*
*
text
**
*
-->P_LV_NAME
text
*
-->P_LV_TEXT
text
**
FORM
FRM_ADD_COLUMN
USING
PV_NAME
TYPE
TV_ITMNAME
PV_TEXT
TYPE
TV_HEADING
.
DATA:LV_NUM
TYPE
I.
DATA:LV_TEXT
TYPE
TV_HEADING
.
CALL
METHOD
GO_TREE100->ADD_COLUMN
EXPORTING
NAME
=
PV_NAME
*
HIDDEN
=
*
DISABLED
=
ALIGNMENT
=
'2'
WIDTH
=
'40'
*
WIDTH_PIX
=
'X'
*
HEADER_IMAGE
=
HEADER_TEXT
=
PV_TEXT
*
HEADER_TOOLTIP
=
EXCEPTIONS
COLUMN_EXISTS
=
1
ILLEGAL_COLUMN_NAME
=
2
TOO_MANY_COLUMNS
=
3
ILLEGAL_ALIGNMENT
=
4
DIFFERENT_COLUMN_TYPES
=
5
CNTL_SYSTEM_ERROR
=
6
FAILED
=
7
PREDECESSOR_COLUMN_NOT_FOUND
=
8
OTHERS
=
9.
IF
SY-SUBRC
<>
0.
*
Implement
suitable
error
handling
here
ENDIF.
GT_CULUMN-NAME
=
PV_NAME
.
GT_CULUMN-TEXT
=
PV_TEXT
.
APPEND
GT_CULUMN
.
CLEAR
GT_CULUMN
.
ENDFORM.
"
FRM_ADD_COLUMN
*&*
*&
Form
BUILD_NODE_AND_ITEM_TABLE
*&*
*
text
**
*
-->P_GT_ZFIT1011
text
*
<--P_GT_NODE_TAB
text
*
<--P_GT_ITEM_TAB
text
**
FORM
BUILD_NODE_AND_ITEM_TABLE
USING
IT_TAB
TYPE
TT_ZFIT1011
CHANGING
CT_NODE
TYPE
TREEV_NTAB
CT_ITEM
TYPE
TT_DEMO_ITEM.
DATA:LS_TAB
TYPE
TY_TAB
,
LS_NODE
TYPE
TREEV_NODE,
LS_ITEM
TYPE
TY_DEMO_ITEM.
DATA:LV_UPNOD
TYPE
ZFIUPNOD
.
REFRESH:GT_TAB,R_BUKRS
.
CLEAR
LV_UPNOD
.
PERFORM
FRM_BUILD_FIELDCAT.
"添加列
**
*
用递归获取树结构数据
GV_FLAG
=
'X'
.
"第一次要排除同级节点
PERFORM
FRM_COLLECT_NODE
USING
EV_REGCT
CHANGING
IT_TAB
.
"
*
整理业务数据
PERFORM
FRM_SUBROUTINES
.
**
"根节点
LOOP
AT
GT_TAB
INTO
LS_TAB
WHERE
NODID
=
EV_REGCT
.
LS_NODE-NODE_KEY
=
EV_REGCT
.
LS_NODE-RELATKEY
=
''.
LS_NODE-ISFOLDER
=
ABAP_TRUE.
LS_NODE-EXPANDER
=
ABAP_TRUE.
APPEND
LS_NODE
TO
CT_NODE.
CLEAR:LS_NODE.
LS_ITEM-ITEM_NAME
=
'NODID'.
LS_ITEM-NODE_KEY
=
LS_TAB-NODID.
LS_ITEM-CLASS
=
2.
"
'2'
text;
'3'
checkbox;
'4'
button;
'5'
link
LS_ITEM-EDITABLE
=
''.
*
modify
by
tianhaiguang
on
20130422.
*
ls_item-text
=
ls_tab-nodid
&&
'
'
&&
ls_tab-ndtxt.
CONCATENATE
LS_TAB-NODID
LS_TAB-NDTXT
INTO
LS_ITEM-TEXT
SEPARATED
BY
SPACE.
*
end
modify
APPEND
LS_ITEM
TO
CT_ITEM.
CLEAR:LS_ITEM.
PERFORM
FRM_ADD_DATA
USING
LS_TAB
CHANGING
CT_NODE
CT_ITEM
.
ENDLOOP.
*
SORT
GT_TAB
BY
NODID
UPNOD
RCFLG
DESCENDING.""
dwnod
nxtnd.
LOOP
AT
GT_TAB
INTO
LS_TAB
WHERE
UPNOD
IS
NOT
INITIAL.
"判断当前层的上一级是否存在
READ
TABLE
GT_TAB
WITH
KEY
NODID
=
LS_TAB-UPNOD
TRANSPORTING
NO
FIELDS.
IF
SY-SUBRC
<>
0.
CONTINUE.
ENDIF.
"判断当前层的下一级是否存在
READ
TABLE
GT_TAB
WITH
KEY
UPNOD
=
LS_TAB-NODID
TRANSPORTING
NO
FIELDS.
IF
SY-SUBRC
=
0.
LS_NODE-ISFOLDER
=
ABAP_TRUE.
ELSE.
LS_NODE-ISFOLDER
=
ABAP_FALSE.
ENDIF.
LS_NODE-NODE_KEY
=
LS_TAB-NODID.
LS_NODE-RELATKEY
=
LS_TAB-UPNOD.
*
ls_node-n_image
=
'@5B@'.
*
ls_node-exp_image
=
'@5B@'.
APPEND
LS_NODE
TO
CT_NODE.
CLEAR:LS_NODE.
*<构建节点信息表>
LS_ITEM-ITEM_NAME
=
'NODID'.
LS_ITEM-NODE_KEY
=
LS_TAB-NODID.
LS_ITEM-CLASS
=
2.""
cl_gui_column_tree=>item_class_checkbox.
"
'2'
text;
'3'
checkbox;
'4'
button;
'5'
link
*
ls_item-editable
=
'X'.
*
modify
by
tianhaiguang
on
20130422.
*
ls_item-text
=
ls_tab-nodid
&&
'-'
&&
ls_tab-ndtxt.
IF
LS_TAB-BANKA
IS
INITIAL.
CONCATENATE
LS_TAB-NODID
LS_TAB-NDTXT
INTO
LS_ITEM-TEXT
SEPARATED
BY
SPACE.
ELSE.
LS_ITEM-TEXT
=
LS_TAB-NDTXT
.
ENDIF.
*
end
modify.
COLLECT
LS_ITEM
INTO
CT_ITEM.
CLEAR:LS_ITEM.
PERFORM
FRM_ADD_DATA
USING
LS_TAB
CHANGING
CT_NODE
CT_ITEM
.
ENDLOOP.
ENDFORM.
"
BUILD_NODE_AND_ITEM_TABLE
*&*
*&
Form
FRM_COLLECT_NODE
*&*
*
text
**
*
-->P_EV_REGCT
text
*
<--P_IT_TAB
text
**
FORM
FRM_COLLECT_NODE
USING
P_NODE
TYPE
ZFIUPNOD
CHANGING
P_TAB
TYPE
TT_ZFIT1011
.
DATA:LS_TAB
TYPE
TY_ZFIT1011
.
READ
TABLE
P_TAB
WITH
KEY
NODID
=
P_NODE
INTO
LS_TAB.
IF
SY-SUBRC
=
0.
IF
GV_FLAG
=
'X'
.
CLEAR:LS_TAB-NXTND,
LS_TAB-UPNOD
.
ENDIF.
IF
LS_TAB-BUKRS
IS
NOT
INITIAL.
R_BUKRS-SIGN
=
'I'
.
R_BUKRS-OPTION
=
'EQ'
.
R_BUKRS-LOW
=
LS_TAB-BUKRS
.
APPEND
R_BUKRS
.
CLEAR
R_BUKRS
.
ENDIF.
CLEAR
GS_TAB
.
MOVE-CORRESPONDING
LS_TAB
TO
GS_TAB
.
APPEND
GS_TAB
TO
GT_TAB
.
IF
GV_FLAG
=
'X'
AND
LS_TAB-NXTND
IS
INITIAL
.
GV_FLAG
=
''
.
ELSE.
*
下一个同级节点
PERFORM
FRM_COLLECT_NODE
USING
LS_TAB-NXTND
CHANGING
P_TAB
.
ENDIF.
*
下一级节点
PERFORM
FRM_COLLECT_NODE
USING
LS_TAB-DWNOD
CHANGING
P_TAB
.
ENDIF.
ENDFORM.
"
FRM_COLLECT_NODE
*&*
*&
Form
FRM_SUBROUTINES
*&*
*
text
**
*
-->
p1
text
*
<--
p2
text
**
FORM
FRM_SUBROUTINES
.
PERFORM
FRM_DATA_GET
.
PERFORM
FRM_DATA_PROCESS
.
ENDFORM.
"
FRM_SUBROUTINES
*&*
*&
Form
FRM_DATA_GET
*&*
*
text
**
*
-->
p1
text
*
<--
p2
text
**
FORM
FRM_DATA_GET
.
DATA:LV_DATE
TYPE
SY-DATUM
.
DATA:LV_TABIX
TYPE
SY-TABIX
.
REFRESH:
GT_TCJ_POSITIONS
,GT_TCJ_DOCUMENTS,GT_TCJ_TRANSACTIONS,GT_TCJ_TRANS_NAMES,GT_BNKA
.
*
确定日期
IF
S_BUDAT-HIGH
IS
NOT
INITIAL.
LV_DATE
=
S_BUDAT-HIGH
.
ELSE.
LV_DATE
=
S_BUDAT-LOW
.
ENDIF.
IF
GT_T001[]
IS
NOT
INITIAL
.
SELECT
*
INTO
CORRESPONDING
FIELDS
OF
TABLE
GT_TCJ_DOCUMENTS
FROM
TCJ_DOCUMENTS
AS
A
INNER
JOIN
T012K
AS
B
ON
B~BCJNR
=
A~CAJO_NUMBER
AND
A~COMP_CODE
=
B~BUKRS
FOR
ALL
ENTRIES
IN
GT_T001
WHERE
A~COMP_CODE
IN
S_BUKRS
AND
A~COMP_CODE
=
GT_T001-BUKRS
AND
A~POSTING_DATE
<=
LV_DATE
*
AND
a~posting_date
IN
s_budat
*
AND
(
a~document_status
=
'P'
*
OR
a~document_status
=
'R'
)
AND
A~DOCUMENT_STATUS
=
'S'
*
AND
B~FUNAC
IN
S_FUNAC
AND
B~HBKID
IN
S_HBKID.
ELSE.
SELECT
*
INTO
CORRESPONDING
FIELDS
OF
TABLE
GT_TCJ_DOCUMENTS
FROM
TCJ_DOCUMENT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度集体鱼塘承包与渔业可持续发展合作协议
- 计算机技术与软件资格初级独家试题及答案
- 二零二五年度反担保合同汇编:文化产业项目资金安全保障
- 软件技术初级资格考试点评与总结试题及答案
- 2025年度消防安全管理服务合同补充协议样本
- 2025年茶艺师岗位职责试题及答案
- 二零二五年度智慧城市建设企业高管聘用与智能技术合同
- 二零二五年度农村土地承包经营权流转及农业废弃物资源化利用与农村基础设施建设合同
- 二零二五年度月嫂雇佣合同书-产妇月子期间专业护理与生活照料协议
- 2025年健康管理师考试全攻略:试题及答案
- 关于优化员工沟通渠道的通知
- 人教版七年级历史下学期第一单元第2课时唐朝建立与“贞观之治”测试试题(含答案)
- 工艺品加工合同6篇
- 3《鸿门宴》课件 2024-2025学年统编版高一语文必修下册
- 排泄照护为老年人更换尿布纸尿裤养老护理员课件
- 【新】部编人教版小学4四年级《道德与法治》下册全册教案
- 2025年辽宁石化职业技术学院单招职业倾向性测试题库审定版
- 安徽省六校2024-2025学年高三下学期2月素质检测考试生物学试题(含解析)
- 2025年山东大众报业(集团)限公司招聘247人高频重点模拟试卷提升(共500题附带答案详解)
- 【道 法】做自信的人 课件-2024-2025学年统编版道德与法治七年级下册
- 医保电子凭证培训
评论
0/150
提交评论