qmhiro - by - 20 五月, 2008 00:32

Collect语句镶嵌在select---endselect之中使用,在报表开发中经常用到,作用是根据tableunique key,把表中其他的字段进行自动的累加,一般用在对某些数据进行总数统计的时候.

举例如下:

data:begin of mytable,

keyfield like XXX,

fliedl1 like XXX,

field2 like XXX,

end of mytable.

Data: mytable_col like hashed table of mytable

With unique key keyfield with headline.

select keyfield fliedl1 field2 from table_system

into (mytable- keyfield, mytable-fliedl1, mytable- field2).

Collect mytable into mytable_col.

Endselect.

这个例子的作用是以keyfield为主键,fliedl1fliedl2的数据进行累加,计算属于每个keyfieldfliedl1fliedl1的总和.

Collect使用有两个条件:

<!--[if !supportLists]-->1. <!--[endif]-->累加时送入的表必须时hashed table或者 sorted table,即必须拥有唯一的key.

<!--[if !supportLists]-->2. <!--[endif]-->除了key之外的其他属性必须时数字型的,才能进行累加计算.

当然 mytable mytable_col.的表的类型必须完全一致.

一般的报表在生成时都需要对大量的数据进行计算,这时使用collect语句的好处就是不用在把数据取到本地后再loop进行累加,降低报表对系统的压力.

come form: http://blog.csdn.net/nodreamer/archive/2007/02/25/1514272.aspx

从内部表中抽取唯一记录的方法测试

三种方法简单介绍:

方法一: 内部表循环赋值,使用COLLECT语句追加记录

方法二: 内部表循环赋值,使用AT NEW和APPEND语句追加记录

方法三: 整个内部表赋值,使用DELETE ADJACENT DUPLICATES语句删除重复记录.

http://abaper.blogbus.com/logs/2679647.html



qmhiro - by - 19 五月, 2008 10:37

COME FORM: http://i.cn.yahoo.com/02900427056/blog/p_5/

关键字: ABAP面试

问题一:锁对象(Lock Object)和 FM(Function Module),激活Lock Object时,

案 产生的 FM 的名字是什么?

答案:首先要在 ABAP 字典中创建锁对象,然后才能在 ABAP 程序中设锁。

创建锁对象时,系统会自动生成两个 FM 来进行锁管理。

用于设锁的 FM 为: ENQUEUE_<锁对象名>。它用于在锁表(Lock Table)

中生成一个锁项(Lock Entry)。若设锁不成功的话,就会在 Return 中反映出来。

用于释放锁的 FM 为:DEQUEUE_<锁对象名>。它用于从锁表中删除一个锁项。

在 ABAP 程序中,只需使用 "CALL FUNCITION ..." 语句就可以调用它们。

这两个锁 FM 是在 SAP 系统的一个特殊工作进程中执行的,专门进行锁管理。

它运行在一个单独的服务器上,而该服务器专门用于维护整个 SAP 系统的主锁表

(Central Lock Table)。

有两种锁类型:

1. 共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据。

2. 独占锁——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据。

问题二:更新方面的 FM

更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢?每种类型又是以

哪种模式(异步、同步或本地)执行的呢?

答案:V1 更新类型比 V2 更新类型的优先级高,因此,V1 比 V2 行执行。

V1 的执行模式可以为异步、同步或本地;V2 只能为异步执行。

问题三:ABAP 内存(ABAP Memory)交换

在使用 ABAP 内存的程序间进行数据交换时用到的两个语句是什么?

答案:EXPORT to MEMORY ID 用于将数据复制到 ABAP 内存,IMPORT from

MEMORY ID 用于将数据从 ABAP 内存复制到程序中。

在 ABAP 内存间进行交换的数据必须在两个程序中都进行声明,并包含同样的数据声明。

问题四:授权对象(Authorization Objects)

什么是授权对象?在 ABAP 程序中使用哪条语句进行授权检查?

答案:授权对象由一组字段组成,这些字段中的值将被用于进行授权检查。

ABAP 程序中使用 AUTHORITY-CHECK 语句根据授权对象进行授权检查。

在 AUTHORITY-CHECK 语句中,必须指明授权对象的所有字段,但有一个例外,

可以用 DUMMY 关键字来绕过某个字段的检查。

一个授权对象中最多可以定义 10 个字段。

问题五:修改(Modifications)

在 SAP 系统中是怎样定义"修改"的?它们对更新(upgrade)有怎样的影响?

答案:修改是指用户对 SAP 发布的库对象(Repository Object)进行的更改。

必须在更新期间对修改进行评审(Review),来决定是否应该使用新的 SAP 对象,

以及将来使用时是否需要进一步修改该对象。

问题六:修改助手(Modification Assistant)

什么是修改助手?

答案:修改助手是 4.5 版中引入的一个工具,用于简化更新过程。可以通过

ABAP 编辑器触发修改助手,它会记录对系统进行的修改。修改助手支持通过

ABAP 编辑器、Screen Painter、Menu Painter、文本元素维护、Function Builder 和

ABAP 字典进行的修改。

问题七:功能模块出口(Function Module Exit)

实现功能模块出口时 SAP 应用程序中应使用哪条语句?

答案:某些 SAP 应用程序中存在功能模块出口,它使用户能够向 SAP

程序中添加一些功能。通过搜索 "CALL CUSTOMER" 可以发现是否存在功能模块出口。

问题八:事务变式(Transaction Variants)

什么是事务变式?为何要使用它?

答案:事务变式是一组屏幕变式,用于预定义屏幕行为和默认值。通过使用变式功能,

可以将用户不需要的字段、子屏幕及全屏幕从用户视图中取消。可以给任何输入字

段设置默认值,字段也可以不用带 "Ready for Input" 状态。

只能为对话和报表事务创建事务变式;变式中只能包含普通屏幕、子屏幕及对话屏幕。

开发人员可以使用 GuiXT 脚本语言通过事务变式维护对屏幕进行修改。修改屏幕布局的方式有:插入按钮、值帮助(Value Helps)、移动对象、插入屏幕等等。

问题九:更改 SAP (Changing SAP)

请列出用户修改 SAP 标准功能的不同方式。

答案:SAP Standard 可以通过 Personalization、Customizing、Modifications、Enhancements 及自定义 ABAP 程序进行更改。这些方式的示例如下:

Personalization——Personalization 技术包含创建变式、设置/获取参数及活动组(Activity Groups)。

Customizing ——是最常用的使用 SAP 工具(如 R/3 Reference Model and Implementation Guide)更改 SAP Standard 的方式。可以认为 Customizing 是实施 R/3 所必需的,通常由 Functional Team 来执行。

Enhancements——常由开发 Team 执行,包含的活动有:字典增强、Funciton Module Exits、菜单和屏幕出口及 Business Add-ins (BADI)。

自定义 ABAP 程序——可以与 SAP 对象或自定义开发的对象一起工作。

Modifications——不建议对 SAP 对象使用 Modifications。使用 SSCR (SAP Software Change Registration)注册所有对 SAP 对象的手动修改。

问题十:添加字段

向 SAP 表中添加字段的方法是哪两种?

答案:这两种方法是:Append 结构(Append Structure)和自定义 Include(Customizing Include)。Append 结构是在向表尾添加字段时创建的,自定义 Include 由 SAP 开发人员指定,以使用户可以创建新字段。

问题十一:什么是 BADI?

答案:BADI 是 Business Add-in 的缩写。它是一种新的功能增强概念,使用 ABAP 对象技术。这是一种使用面向对象的方法来进行 SAP 增强。实现 BADI 要用到类、接口及方法等面向对象的概念。

要对一个 SAP 应用程序进行增强,必须首先定义 BADI。为 BADI 创建一个接口,接着创建一个适配器类(Adapter Class)来实现这个接口, 然后创建这个适配器类的实例。



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




qmhiro - by - 17 五月, 2008 23:35

学习一下,查漏补缺
别人的面试记实-转摘(首先声明是转摘,如侵权的话,可联系我!)
1.
介绍一下自己?
说了毕业来的项目情况,大约3-5分钟
哪方面比较熟?
idoc没做过,其他差不多都做过了
alv里如果有多种货币,怎么保证各种货币和金额正确显示?
只做过设置两列,一列数字一列金额单位。如果要汇率转换的话有相关函数(不知道是不是他要的答案)
怎么设置cell的颜色?
没做过,只做过设置行的颜色,并介绍了一下方法。设置cell颜色的程序记在机器里了(还是在100easy看到的)
怎么控制alv列的宽度,包括列名的宽度?
fieldcat里面有一个output length,还有seltext有短中长3个长度可以设置
如果alv有很多列,怎么固定住alv的某几个列让其不随滚动条移动?
没做过。说了table control可以设置key来做到。
r3 470以后,bdc有一种p模式,做过么?
不好意思,没做过。
屏幕编程的时候,怎么让某个字段自动显示一个值?
这个问题一开始没听明白,后来才知道他的意思。原来是设置parameter id。可惜自己还回答成了memory id。
如果多语言的report,怎么让其在多种语言环境下面自动显示不同的语言?
文本的翻译功能可以做到。用text也可以。
smartform里面,table和template有什么区别?
table没用过,随便侃了几句。
smartform的main窗口和普通窗口什么区别?
main窗口可以跨页。
smartform的xx控件用过么?
没有。(控件的名字现在想不起来了,抱歉)
接下来是业务相关的问题。
哪个模块比较熟?
pp mm sd。
建立工单的时候展开bom有什么用?
指导生产。工人可能不知道生产一个成品需要哪些组件。展开以后就很清楚。
mrp/mps的一个问题,是和controller有关的问题。
没听懂,赶快承认pp模块只对主数据比较了解。
sd里面的document flow,so和do怎么对应?是一对多还是?
可以分开交货,也可以合并交货。具体情况可以看vbfa表。
do的表?
likp lips
bom的表?
stko,stpo,还有mast。
最后一个问题,物料主数据的accounting view,数据在哪个表?
mvke。(马上被告知答错了,然后告饶,说不知道,需要查一下。)

期间还问了过去项目上的一个sapscript问题,反正自己做过,就介绍了一下。


后来自我总结了一下,其实很多问题自己不知道,可以介绍一下大概怎么去找解决方法。这次的面试时间大约是20-30min,问的问题也是不太难的那种。

2.
英文自我介绍一下
......
不到一年就升leader?
企业管理基础好,abap不仅仅是编程。
哪个模块比较熟悉
fi co mm sd
sd 的主要流程以及相关的数据库表
......表名想不起来了,告饶两次
sd的业务数据怎么传递到总帐的
建发票会产生会计凭证。借应收客户,贷主营收入。
解释一下统驭科目(英文,告饶后说了中文)?
特殊的总帐科目,用来联系总帐和分类帐
系统中常见的统驭科目类型
客户 供应商 资产 物料
系统中常见的移动类型
101 102 301 302 561 (呵呵,不敢继续说了)
清账的分录是什么?
清账没分录。付款的分录是借银行存款贷应收客户。
没有清账的会计凭证在哪个表里?
未清客户bsid,已清客户bsad。
现在客户要做一个报表,看某客户某日期欠款额度,如何取数?
(有点不得要领)取bsid该客户该日期前的数据,(经提示)补充bsad该客户该日期之后的数据。
abap 编程你主要擅长哪方面?
对员工做过5次abap基础培训,各种技术都有了解。
idoc能讲讲么?
(汗!)没做过,看过资料。源系统业务生成文本文件,目标系统文本文件驱动业务。格式双方协商。
创建财务凭证用哪个bapi?
不知道,可以用bapi这个事务去查。
如果我客户有很多凭证放在excel里,怎么把数据导入系统?
bdc catt lsmw,这个没用过。另外就是您说的bapi。
excel中数据的上传下载用什么方式?有函数么?
文件在服务器上用dataset,在客户端用函数,下载用ws_excel,上传没有特定函数(坚持,失败~)
bdc的时候如何确定表控件里各行的数据?
有个括号可以输入行数。
如果bdc出错了,如何处理?
可以设置“出错时转前台运行”。有机会输入修正数据。
如果不想马上转前台呢?
不会了,请教。原来是用 insert_group 插入一个session。
报表出现了性能问题,处理步骤是什么?
se30定位错误。有一个运行分析图示,找到瓶颈:是数据库操作还是代码运行的问题。
如果是代码运行的时间较长呢?
把标准内表类型改成sorted或者hash的内表。
sorted的内表read的时候有什么特别的么?
没答上,原来是with table key。
sorted的内表还能插入和删除么?
语法是允许的,但是规范里不推荐。由于会引起性能问题,因索引重排。
那么数据库访问时间较长呢?
规范中不允许loop嵌套select循环,一般用for all entries in 来替代,但是有时候会有distinct的bug。
还要注意一个什么bug?
这个竟然没马上答出来,看来是紧张了。要先检查内表是否为空。
还有其他办法解决数据库问题么?
自定义表截取特定数据。前一个项目几个co报表很慢,因为提成本只针对当月数据,我们就预先抓取当月数据放入自定义表zcovp中,性能提升很明显。
smartforms做过么?
做过,是一些单据打印的程序。国内项目上script用的比较多。
script的输出类型都知道是么?如标准程序数据的打印输出?
没做过,f.01里有个参数输入script 的form名。这个form可以开发,用rep加报表节点编号的方式取数。有人这样做过资产负债表。(不知道是不是答非所问)
alv你们用哪种方式做?
grid和list按用户要求都用过。OO的用法没写过。我们尽量把程序写得简单。
如果一个alv输出的程序要运行2小时或更长时间,怎么处理?
没敢说转后台运行。竟然忘了问答案。
如果运行list输出的程序,不想输出到屏幕上,直接打印怎么做?
用set_print_parameter这个函数就行了(答错了,还狡辩,确实看人作过这样的功能),原来是给new-page事件加尾巴。
如果不想直接打印,要发到spool里呢?
前台打印对话框是有一个立即打印checkbox的,估计new-page的尾巴里有这么一个参数,置空(不会可以蒙)。
屏幕编程作过么?
作过一个rf终端的屏幕程序,做采购入库,预留出库,库间转移,销售出库的各种操作,后面用bapi。
pbo和pai能否解释一下?
pbo是屏幕显示前的操作,pai是用户触发function-code后的操作。
field module有什么作用?
我恨,没答上。不这么用error时就都变灰了。提示了半天,我们都很急。
还有一个比较常用的事件是什么?
f4吧,on value-request,呵呵,这个蒙对咯!

销售凭证流数据在哪个表?

对不起,不知道。

bom的两个表呢?

对不起,不知道。

历时一个小时,感觉发挥不是很好,75分吧,不知道要不要75分的?

come from: http://www.cnblogs.com/omygod/archive/2008/01/27/1055220.html



qmhiro - by - 17 五月, 2008 22:11

SmartForms总结

步骤一:Create Form

Tcode: smartforms

2在Form后面输入名称,然后单击“创建”;

3输入描述;

4设计界面;

5保存并激活;

6执行,可以自到系统会自动产生一个Function module,如:/1BCDWB/SF00000016

7执行,输入必要的参数;

8执行,输入OutputDevice

9打印预览,可以看到设计的界面。

步骤二:建立程序

代码如下:

DATA W_SFLIGHT like sflight occurs 0 with header line.

*Name of Function Module

DATA: fm_name TYPE rs38l_fnam.

select * from sflight into table w_sflight.

*SmartForms生成的功能模块名称*

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'ZTESTSMART_AJAX2' "Smartforms name

* VARIANT = ' '

* DIRECT_CALL = ' '

IMPORTING

FM_NAME = fm_name

* EXCEPTIONS

* NO_FORM = 1

* NO_FUNCTION_MODULE = 2

* OTHERS = 3

.

IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*调用SmartForms生成的功能模块,将触发打印功能*

CALL FUNCTION fm_name

EXPORTING

* ARCHIVE_INDEX =

* ARCHIVE_INDEX_TAB =

* ARCHIVE_PARAMETERS =

* CONTROL_PARAMETERS =

* MAIL_APPL_OBJ =

* MAIL_RECIPIENT =

* MAIL_SENDER =

* OUTPUT_OPTIONS =

* USER_SETTINGS = 'X'

zcompany = '某某公司' “自定义的接口

* IMPORTING

* DOCUMENT_OUTPUT_INFO =

* JOB_OUTPUT_INFO =

* JOB_OUTPUT_OPTIONS =

tables

i_sflight = W_SFLIGHT “自定义的接口(内表)

* EXCEPTIONS

* FORMATTING_ERROR = 1

* INTERNAL_ERROR = 2

* SEND_ERROR = 3

* USER_CANCELED = 4

* OTHERS = 5

.

IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

说明:

<!--[if !supportLists]-->1)<!--[endif]-->屏幕左测显示所有对象,双击它可以显示属性;

<!--[if !supportLists]-->2)<!--[endif]-->只有主窗体中数据才能在多个页面中连续输出;

<!--[if !supportLists]-->3)<!--[endif]-->表格:

静态表格: Template节点

动态表格: TableLoopComplex section节点,最好要放在主窗口中,可以输出多页。

<!--[if !supportLists]-->4)<!--[endif]-->节点处理流程:从顶端到底端

come from:http://blog.csdn.net/ft1612796/archive/2007/06/15/1653746.aspx

more Smart Form templates available from SAP SAP Labs also has some more Smart Form templates for around 20 forms. They're preconfigured & have versions or translations in a few languages besides English. MOstly they cover SD and MM modules.
You have to have access to the Service Marketplace though.
SAP SmartForms lib:
http://help.sap.com/saphelp_46c/helpdata/en/a9/de6838abce021ae10000009b38f842/frameset.htm
Alternatively, go to help.sap.com, go to Basis components, then go to Basis Services/Communications Interface.
This has loads of information on SMARTFORMS



qmhiro - by - 12 五月, 2008 14:44

DATA: BEGIN OF wa_tab1,
fld1(4) VALUE ’FLD1’,
fld2(4) VALUE ’FLD2’,
fld3(4) VALUE ’FLD3’,
fld4(4) VALUE ’FLD4’,
fld5(4) VALUE ’FLD5’,
END OF wa_tab1,
BEGIN OF wa_tab2,
fld1(4),
fld2(4),
fld3(4),
fld4(4),
END OF wa_tab2.

************* Move Corresponding *************
MOVE-CORRESPONDING wa_tab1 to wa_tab2.
************ End Move Corresponding

******************************Move********************
MOVE: wa_tab1-fld1 to wa_tab2-fld1,
wa_tab1-fld2 to wa_tab2-fld2,
wa_tab1-fld3 to wa_tab2-fld3,
wa_tab1-fld4 to wa_tab2-fld4.
****************** End Move ******************

In above example, the result of MOVE and MOVE-CORRESPONDING is same. MOVE-CORRESPONDING is look like easy to coding but

MOVE statement have performance better than MOVE-CORRESPONDING because when you apply MOVE-CORRESPONDING CPU usage of system

will be increased.


Question:
Among "Move" and "Move Corresponding", which is efficient one?
Answer :

move statement is more effienet than move-corresponding.
In case of dialog programming move/movecorresponding stsmt are used to put internal table workarea data into screen fields.

data: begin of itab occurs 0,
lifnr like lfa1-lifnr,
name1 like lfa1-name1,
ort01 like lfa1-ort01,
end of itab. (here lfa1 is DBtable name)
:
* in case of movecorresponding

Move-Corresponding itab to lfa1.
(here:lfa1 is screen fields name).

* in case of MOVE stmt.

Move itab-lifnr to lfa1-lifnr.
Move itab-name1 to lfa1-name1.
Move itab-ort01 to lfa1-ort01.

Movecorresponding :
If DBtable having 1000 fields and you are using movecorresponding, then system has to check all the field in table to move.



qmhiro - by - 10 五月, 2008 21:44

与诸神的爆强流氓对话

来福:菩萨!您大慈大悲,请您告诉我,我什么时候才能找到老婆?

菩萨:天机不可泄露!冥自有定数!

来福:靠!您这不是废话吗?

菩萨:呸!我要知道我还出家?



来福:斗战胜佛,您当初为什么选择保唐僧取经?

孙悟空:还不是为了搞到学历!

来福:学历真的那么重要?

孙悟空:我一个五指山服刑的流氓,现在成了斗战胜佛,你说重要不?



来福:女娲娘娘!!您为什么造人?

女娲:天漏了,我好不容易补上,不造些人,我找谁收维修费去?

来福:那您为什么把人分男女?

女娲;我本身不男不女,我想知道男和女哪个厉害些?

来福:结果呢?

女娲:我又补了一回天!



来福:后羿!您当年为什么射日?

后羿:有人付钱!

来福:为什么留下一个?

后羿:他们只付了九个的钱!

来福:为什么单单留下这个?

后羿:它也付了钱!



来福:织女!为什么下嫁给董勇?

织女:为了爱情!

来福:单单是这个原因?

织女:这......

来福:还因为别的什么?

织女:他有房子!



来福:净坛使者!你为什么喜欢高月娥?

猪八戒:他漂亮!

来福:那现在为什么不和他来往?

猪八戒:老子现在是公务员!



来福:万能的佛祖!佛理的精髓是什么?

如来:慈悲为怀!

来福:那寺院养武僧于什么?

如来:别人对我不慈悲为怀!

来福:那武僧打人杀人又做何解释?

如来:奶奶的!老子兄弟多`有钱`够狠!顺我者昌,逆我者亡!谁敢欺负我的兄弟我就打丫的!

来福:您......怎么如此粗俗?

如来:阿弥陀佛!咳咳.......我是说:佛家广结善缘,惩恶扬善,因果报应,普渡众生!



来福:姜太公!您当年为什么封神?

姜子牙:替天行道,奉天呈运!

来福:但最后没了您自已的位置!

姜子牙:我故意的!

来福:为什么?舍己为人?

姜子牙:屁!我封神时受贿太多,不如早早退居二线,免得麻烦!



来福:玉皇大帝!当年唐僧取经,为什么有那么多神仙或家属下界为妖?

玉皇大帝:天宫待的太久,收入又低,难免有几个下海的。

来福:后来都处分了吗?

玉皇大帝:都处分了!有的判了刑,有的严重警告以观后效。

来福:大家犯的错误都差不多,为什么判罚如此悬殊?

玉皇大帝:凡严重警告的都是dang员!


博客日历
« 五月 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