qmhiro - by - 18 五月, 2008 07:53

SAP ABAP小结
=========================================================== 作者: qiujun(http://qiujun.itpub.net)
出处:http://qiujun.itpub.net/post/24006/298614
---------------------------------------------------------------

1 使用binary search之前,需要sort,并且sort by ascending(系统默认的顺序也是ascending)。而且read table with key的顺序同sort的顺序相同,否则出错,常会找不到纪录。Delete adjacent duplicates之前一定要sort。

2 关于内部表示和外部表示:调用BAPI和Update DB的时候,一定要使用内部形式(物料号有前导零的时候被认为是内部形式;单位一般也有内部形式外部形式之分)。在se11浏览数据的时候,显示数据的画面是使用内部形式,当detail overview的时候,则是外部形式。

3 使用at new, at first, at last, at end of的时候要注意:loop的时候不能加条件;at和endat之间不能使用loop into的working area。手动实现at new, at end of的时候,需要注意,容易出错,尤其是在at end of的时候。

4 一般情况下,更新数据库需要commit,但debug会自动commit,程序结束也会自动commit。

5 对于选择界面上的select-options,clear s_lifnr[]是指clear body part,clear s_lifnr是指clear header part。一般不直接编辑界面上的select-options。

---------------------------------------------------------------
come from : http://blog.csdn.net/CompassButton/archive/2007/03/08/1524491.aspx
---------------------------------------------------------------
1、AT New事件触发说明
如 AT New f.
f 是内表的一个字段,当f字段或者f字段左边的字段内容发生变化是该事件后面的语句都会执行。
TYPES: BEGIN OF COMPANIES_TYPE,
NAME(30),
PRODUCT(20),
SALES TYPE I,
END OF COMPANIES_TYPE.

DATA: COMPANIES TYPE STANDARD TABLE OF COMPANIES_TYPE WITH
NON-UNIQUE DEFAULT KEY INITIAL SIZE 20,
WA_COMPANIES TYPE COMPANIES_TYPE.

...

LOOP AT COMPANIES INTO WA_COMPANIES.
AT NEW PRODUCT.
NEW-PAGE.
WRITE / WA_COMPANIES-NAME WA_COMPANIES-PRODUCT.
ENDAT.
WRITE: / WA_COMPANIES-PRODUCT, WA_COMPANIES-SALES.
AT END OF NAME.
SUM.
WRITE: / WA_COMPANIES-NAME, WA_COMPANIES-SALES.
ENDAT.
ENDLOOP.
这个样例当name变化时,AT new事件也会执行。

2、AT New 发生时工作区的字段的值

All character type fields (on the right) are filled with "*" after the current control level key.

All other fields (on the right) are set to their initial values after the current control level key.

AT NEW 和AT END OF的用法
http://www.sapclub.org/blog/nyf425/archive/2008/01/07/67689.html
-------------------------------------------------------------------
使用 AT NEW f. 和 .AT END OF f 时需要注意:

1,f 必须是内表的第一个字段。

2,内表中f 之后的字段的值都会变成 *。

例:

REPORT Z_TEST.

DATA: BEGIN OF TH_LIFNR,
LIFNR TYPE LFA1-LIFNR,
ITEM TYPE C,
END OF TH_LIFNR.

DATA: TD_LIFNR LIKE TABLE OF TH_LIFNR.

SELECT LIFNR FROM EKKO
INTO TABLE TD_LIFNR
WHERE EBELN > 4500006374
AND EBELN < 4500006390.

SORT TD_LIFNR ASCENDING BY LIFNR.

LOOP AT TD_LIFNR INTO TH_LIFNR.
AT NEW LIFNR.
WRITE:/10 TH_LIFNR-LIFNR.
WRITE:/ 'The next is new lifnr.'.
ENDAT.
ENDLOOP.


----------------------------------------------------------------
http://www.chinavalue.net/Article/Archive/2007/1/18/54443_2.html

在写abap 的过程中,可能需要统计,求和等那么如何实现呢?其实在loop ... endloop 中间,有个AT <LEVEL>,<…>,ENDAT循环. 其中的<LEVEL>包括: FRIST, LAST, NEW , END OF.这些可以用来进行内表中按某个字段进行分组统计.
FIRST 内 表的第一行
LAST 内 表的最后一 行
NEW <f> 行组 的开头,与 字段 <f> 和 <f> 剩余字段中 的内容相同
END Of <f> 行组 的结尾,与 字段 <f> 和 <f> 剩余字段中 的内容相同

AT - ENDAT 块中的语句 块使用这些 行条件代表 预定义的控 制结构。用 户可以使用 它们处理内 表中的控制 断点,而不 必使用 编程分支和循环 中所述的控 制语句自己 编程。
在 AT - ENDAT 语句块中, 工作区域没 有用当前表 格行进行填 充。初始化 所有不是标 准关键字部 件的字段( 参见
标识表格行 )。对于行 条件 FIRST 和 LAST, 系统用星号 (*) 改写所有标 准关键字段 。对于行条 件 NEW <f> 和 END OF <f>,系 统用星号 (*) 改写所有出 现在工作区 域中指定字 段 <f> 右边的标准 关键字段。 用户可根据 自己的需求 在 AT - ENDAT 语句块中填 充工作区域 。

DATA: BEGIN OF LINE,
COL1 TYPE C,
COL2 TYPE I,
COL3 TYPE I,
END OF LINE.
DATA ITAB LIKE LINE OCCURS 10.
LINE-COL1 = A.
DO 3 TIMES.
LINE-COL2 = SY-INDEX.
LINE-COL3 = SY-INDEX ** 2.
APPEND LINE TO ITAB.
ENDDO.
LINE-COL1 = B.
DO 3 TIMES.
LINE-COL2 = 2 * SY-INDEX.
LINE-COL3 = ( 2 * SY-INDEX ) ** 2.
APPEND LINE TO ITAB.
ENDDO.
LOOP AT ITAB INTO LINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
AT END OF COL1.
SUM."按Col1 求和.
ULINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
SKIP.
ENDAT.

AT LAST.
SUM."总求和.
ULINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
ENDAT.
ENDLOOP.
其输出为:
A 1 1
A 2 4
A 3 9
________________________________
A 6 14

B 2 4
B 4 16
B 6 36
________________________________
B 12 56

________________________________
* 18 70




    最新回复








博客日历
« 八月 2008 »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
搜索
管理控制台
TOP_Read
TOP_Reply
New_Reply
网站链接
100easy
itput.net
erphome
sap.itpub.net
sapforum.net
ERP100 SAP论坛
我看企业管理
CSDN SAP 论坛
SAP俱乐部
sapsh.com
226E
saphome.NET
huihoo SAP
sap netweaver
sapsky.com
CSDN tag系统
SAP开发者社区
SAP SDN Blogs
sapfans
sap-directory
ittoolbox
sap-img
bwexpertonline
sapteched.com
BW Discussion Forums
sapprofessionals.org
squidoo.com
chetanasforum.com
sapcookbook.com
ENGLISH招聘网站
SAP BW Resumes
hotgigs
ZP rnd.in
jobsvista.com
SAPBWReport
bwexpertonline
BW A & Q
wordpress.com
bwexpertonline.com
国外论坛
sap jobs
searchsap.com
job
SAP JOBS
gleez.com/sap-bw
uky.edu
www.ittestpapers.com
SAP SERACH
searchsap.techtarget.com
Aaron Wang
SAP Help Portal
SAP BW Library
sap support portal
SAP CN
SAP Certification
BW Technical Consultant Certification
sap certification
BW310 help
全国车次网
个人所得税计算器
购书中心书籍检索
个税住房按揭计算器
广图书目检索
蔚蓝电子商务
当当网
得益网
eastday.com
21stcentury
全库网123查
SAP BOOKS
SAP BW Hints and Tips
SAP BW certification
博克SAP书籍
广社保业务大厅
招行理财计算器
工行理财计算器
nw2004s library
股票买卖计算
chinese-english
http://gz.city8.com/
SAP生活
零售业SAP学习
小白之家
XCBQL SAP天地
iyahui
SAP R3 人民公社
MBA智库百科
神话的博客
翱翔云天
JYW
SAP圈
会计博客-arrow
SAP CLUB
JACK WU HOME
SAPING
JY0314
天一剑客
aton001 ABAP
SAP砍刀
zhpfeng
jumpwater
lifeiwu
My SAP CW
Flying的ERP空间
思考、规划、执行
大兵SAP HR博客
SAP Specialist
youlan
SAP博客
SAP BW
厚德载物
forchheim bw
天津包子
科华SAP笔记
wangqiwu
ABAP
沧海拾贝
ABAP chouer
老黄的畅享空间
SAP-ENGLISH
Jack Wu BW
SAP BI Blog
sap-img.com
sdn.sap.com
SAP BW Interviews
forchheim
ericmw78
LAZY的窝窝
charles6222FICO
IDES FICO
robinyou
SAP屠夫的博客
一把老骨头
Melody
http://charles6222.itpub.net
shenpng
arrow
似雪飞翔
学无止境ABAP
童话.生活...
铁血论坛
我爱笑话
ICXO
MSN理财网
汽车之家
汽车标志
汽车报价库
ask question
SAP book
英文早报
羽球在线
中羽网社区
大傻羽球
FT中文
sap-press.de
bw.sdn.sap.com
和讯
和讯BBS
新闻聚合
RSS 0.90
RSS 1.0
RSS 2.0
Atom 0.3