SAP动态树程序DialogALV报表(下)_第1页
SAP动态树程序DialogALV报表(下)_第2页
SAP动态树程序DialogALV报表(下)_第3页
SAP动态树程序DialogALV报表(下)_第4页
SAP动态树程序DialogALV报表(下)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论