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. 本文出自 “飞翔我的世界” 博客,谢绝转载!
有时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. 本文出自 “飞翔我的世界” 博客,谢绝转载!
相关文章推荐
- BW:DTP过滤器的例程
- BW DTP过滤器中的程序使用
- sap bw dtp 过滤例程 实现了有key值的增量处理
- BW:Start Routine:写个开始例程还能碰上Select的BUG,这次真是没白做
- BW十日谈之IP&TR&DTP(转载)
- BW:专家例程
- DTP中过滤写例程 取今天
- BW:SAP 批量填写过滤器
- ABAP 例程程序在SAP BW TRANFORMATION中的应用,去除非法字符
- BW:传输到Open Hub的DTP,怎么删除?
- BW--一些关于DTP的一些链接
- Writing a FilterUnloadCallback Routine for a Minifilter Driver 为一个微过滤驱动写一个过滤器卸载回调例程
- BW:传输到Open Hub的DTP,怎么删除?
- DTP中写例程 取前7日和前1日
- BW--一些关于DTP的一些链接
- BW转换例程中去掉非法字符
- BW--一些关于DTP的一些链接
- BW--一些关于DTP的一些链接
- BW--一些关于DTP的一些链接
- BW十日谈之IP&TR&DTP