REPORT zfir083.
TABLES: bseg,bkpf,skat,acdoca,cskt,/srep/is_group.
TYPES: BEGIN OF ty_outtab,
rbukrs TYPE acdoca-rbukrs,
werks TYPE acdoca-werks,
matnr TYPE acdoca-matnr,
gjahr TYPE acdoca-gjahr,
belnr TYPE acdoca-belnr,
docln TYPE acdoca-docln,
racct TYPE acdoca-racct,
hsl TYPE acdoca-hsl,
END OF ty_outtab.
DATA: gs_outtab TYPE ty_outtab,
gt_outtab TYPE TABLE OF ty_outtab.
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gs_layout TYPE lvc_s_layo.
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_bukrs FOR acdoca-rbukrs,
s_poper FOR acdoca-poper,
s_werks FOR acdoca-werks,
s_matnr FOR acdoca-matnr.
SELECTION-SCREEN END OF BLOCK bk1.
************************************************************************
* 初始化数据赋值
************************************************************************
INITIALIZATION.
s_poper = VALUE #( low = sy-datum+4(2) sign = 'I' option = 'EQ' ) .
APPEND s_poper.
************************************************************************
* 选择屏幕数据检查
************************************************************************
AT SELECTION-SCREEN.
************************************************************************
* 数据的查询整理
************************************************************************
START-OF-SELECTION.
PERFORM frm_get_sqldata.
************************************************************************
* 结果清单的输出
************************************************************************
END-OF-SELECTION.
PERFORM frm_show_alv. "alv显示数据
*&---------------------------------------------------------------------*
*& Form frm_get_sqldata
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_get_sqldata .
DATA lv_hsl TYPE acdoca-hsl.
SELECT
*
FROM acdoca
INTO CORRESPONDING FIELDS OF TABLE @gt_outtab
WHERE rbukrs IN @s_bukrs
AND poper IN @s_poper
AND werks IN @s_werks
AND matnr IN @s_matnr
AND racct IN (
'1404040200',
'1404040300',
'1404040100',
'1404060200',
'1404060300',
'1404060100',
'1404030200',
'1404030300',
'1404030100',
'1404020102',
'1404020103',
'1404020101',
'1404010200',
'1404010300',
'1404010100',
"'1405900100',
'1409010100',
'1409020100'
).
SORT gt_outtab BY rbukrs werks matnr.
LOOP AT gt_outtab ASSIGNING FIELD-SYMBOL(<fs>).
lv_hsl = lv_hsl + <fs>-hsl.
AT END OF matnr.
IF lv_hsl EQ 0.
DELETE gt_outtab WHERE matnr EQ <fs>-matnr.
ENDIF.
CLEAR lv_hsl.
ENDAT.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_show_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_show_alv .
PERFORM frm_fieldcat. "alv界面展示字段添加
PERFORM frm_layout. "ALV全局属性定义
PERFORM frm_output. "调用ALV函数显示数据
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_fieldcat .
CLEAR: gs_fieldcat,gt_fieldcat.
DEFINE addfieldcat.
gs_fieldcat-fieldname = &1."字段名
gs_fieldcat-coltext = &2.
gs_fieldcat-no_zero = &3."字符不显示前导0
gs_fieldcat-icon = &4.
gs_fieldcat-ref_field = &5."参考字段名
gs_fieldcat-ref_table = &6."参考表名
APPEND gs_fieldcat TO gt_fieldcat.
END-OF-DEFINITION.
addfieldcat 'RBUKRS' '公司代码 ' space space space space.
addfieldcat 'WERKS' '工厂 ' space space space space.
addfieldcat 'MATNR' '物料号 ' space space space space.
addfieldcat 'GJAHR' '会计年度 ' space space space space.
addfieldcat 'BELNR' '凭证号 ' space space space space.
addfieldcat 'DOCLN' '凭证行项目' space space space space.
addfieldcat 'RACCT' '科目号 ' space space space space.
addfieldcat 'HSL' '金额' space space space space.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*