您的位置:首页 > 编程语言 > PHP开发

BW DTP过滤器的例程

2012-02-24 16:27 246 查看
[align=left]BW DTP过滤器的例程 [/align]
有时BW抽取的数据时会对数据限制作一些特殊处理,比如上月的数据,可以考虑在DTP进行过滤



form compute_/BIC/ZBEGDA “fieldname = '/BIC/ZBEGDA'.
tables l_t_range structure rssdlrange
changing p_subrc like sy-subrc.
* Insert source code to current selection field
*$*$ begin of routine - insert your code only below this line *-*
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = '/BIC/ZBEGDA'.
l_idx = sy-tabix.
*....
if l_idx <> 0.
modify l_t_range index l_idx.
else.
l_t_range-fieldname = '/BIC/ZBEGDA'.
l_t_range-sign = 'E'.
l_t_range-option = 'EQ'.
l_t_range-low = '2011.01.03'.
append l_t_range.
endif.
p_subrc = 0.
*$*$ end of routine - insert your code only before this line *-*
endform.
解释:在这里,设置一下sign为(E)xcluding,这样排除单一值,然后append到l_t_range中,OK! 以下是我们要写的程序代码:
l_t_range-fieldname = '/BIC/ZBEGDA'.
l_t_range-sign = 'E'.
l_t_range-option = 'EQ'.l_t_range-low = '2011.01.03'.

************************************
2.数据源进行例程控制


data: l_idx like sy-tabix.
DATA: BEGIN OF WA_O07,
EMPLOYEE TYPE /BI0/OIEMPLOYEE,
END OF WA_O07,
IT_O07 LIKE TABLE OF WA_O07,
V_DATE TYPE SY-DATUM.
V_DATE = SY-DATUM - 1 .
read table l_t_range with key
fieldname = 'PERNR'.
l_idx = sy-tabix.
*....
select EMPLOYEE INTO TABLE IT_O07 from /BIC/AZHR_O0700 WHERE
CALDAY = V_DATE.
if l_t_range[] is not INITIAL.
clear:l_t_range[].
LOOP AT IT_O07 INTO WA_O07.
l_t_range-fieldname = 'PERNR'.
l_t_range-SIGN = 'I'.
l_t_range-OPTION = 'EQ'.
l_t_range-LOW = WA_O07-EMPLOYEE.
append l_t_range.
CLEAR:WA_O07,l_t_range.
ENDLOOP.
else.
if l_idx <> 0.
modify l_t_range index l_idx.
endif.
endif.

p_subrc = 0. 本文出自 “飞翔我的世界” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: