ABAP编写程序笔记.doc_第1页
ABAP编写程序笔记.doc_第2页
ABAP编写程序笔记.doc_第3页
ABAP编写程序笔记.doc_第4页
ABAP编写程序笔记.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1重要编辑键:F8:执行程序F5:复制游标所在列内容F11:存储档案Ctrl+F11:删除游标所在列2数据处理的一些用法: (1) 数值指派:MOVE F1 TO F2F2=F1WRITE (f) TO g(变量f和g都已经指定值) (2) 缩进使用:MOVE F1+n(m) TO F2+n(m) n:表示第几位 m:表示字符个数。 3DATA:NAME(10) VALUE SOURCE, SOURCE(10) VALUE LILY, TARGET(10).WRITE (NAME) TO TARGET.WRITE :/ TARGET.答案:LILY.4 字符串数据的相关处理:(1) 字符串的移位:SHIFT c BY n PLACES MODESMODES:1.空白:字符串向左移一位; 2.left:字符串向左移n位; 3.right:向右移n位; 4.circular:字符串以环状方式移位元。 (2) 取代字符串内容:PRPLSCE string1 WITH string2 to c(将字符串c中的string1用string2来取代) (3) 大小写的转换:TRANSLATE c TO UPPER CASE TRANSLATE c TO LOWER CASE (4) 在字符串中寻找部分字符串:SEARCH c FOR str (5) 字符串长度:STRLEN(c) (6) 取部分字符串:f+n(m)5循环语句用法: (1)计次循环:DO n TIMES VARYING f FROM start TO end. lop blockENDDO. 例:DO VARYING I FROM 1 TO 10. S=S+I. ENDDO. WRITE:/1+2+3+10=,S. 执行结果为:1+2+3+10=55。(2)条件循环:WHILE Condition. Ststement Block. ENDWHILE. 例:I=1. S=0. WHILE Itable maintenance generator中进行设定。15删除内表里的重复字段(保留第一条数据): Delete Adjacent Duplicates From itab.删除和它邻近的所有相同字段(先进行排序); Delete Adjacent Duplicates From itab Comparing field.删除确定栏位。16. 将单个字符串连成一体:Concatenate a b Into c Separated By /. 拆分字符串: Split c At Into c1 c2 c3 17如何把表的各個欄位的數據轉換成字符串讀出? 用condense關鍵字即可實現如下所述:DATA: BEGIN OF sentence occurs 0, word1(30) TYPE c VALUE She, word2(20) TYPE c VALUE feeds, word3(30) TYPE c VALUE you, word4(40) TYPE c VALUE tea, word5(30) TYPE c VALUE and, word6(50) TYPE c VALUE oranges, END OF sentence, text TYPE string.text = sentence.CONDENSE text. “sentence 不能是I P等數值型。WRITE:TEXT. 結果是:she feeds you tea and oranges.18在从内表向database table中一次插入多笔数据的时候,出现插入失败是何种原因?该如何解决?accepting duplicate keys的用法。要插入的数据中包含有database table中已经存在的数据,此时不论该重复数据出现在该批数据的任何位置,该次插入操作全部失败(不重复的数据也不会插入)。此时的解决方法是:在插入语句末尾加上“accepting duplicate keys”,系统就会自动剔除重复数据,成功插入不重复数据。19用内表更新(Modify)数据库表时,内表定义的栏位要求大于等于数据库栏位,否则会报错。20如何查看t-code的 PARAMETERS ID?在初始界面输入T-CODE 进入相关界面 鼠标点在方框中 按F1.出现Performance assistant界面 点击按钮。21report 程序中实现双击事件:AT LINE-SELECTION. GET CURSOR FIELD aa. “将指针指定位置的栏位名称赋给变量aa。 IF aa = T_TAB-MATNR. 须大写 SET PARAMETER ID MAT FIELD t_tab-matnr . CALL TRANSACTION MM03 AND SKIP FIRST SCREEN . ENDIF.22在ALV中实现双击事件:(和在报表中实现双击事件有区别)、先在Call Reuse_ALV_List(Grid)_Display中的Exporting 填写 i_callback_user_command = ALV_USER_COMMAND再调用以下代码段: FORM ALV_USER_COMMAND USING L_UCOMM LIKE SY-UCOMM L_SELFIELD TYPE SLIS_SELFIELD.IF L_UCOMM = &IC1&. READ TABLE T_OUTPUT INDEX L_SELFIELD-TABINDEX. SET PARAMETER ID . . CALL TRANSACTION T_CODE.ENDIF.ENDFORM.23在ALV显示时修改某一字段的属性: 在CALL REUSE_ALV_FIELDCATALOG_MERGE后,使用READ TABLE lt_fieldcat INDEX N 再设置各种属性:lt_fieldcat-reptext_ddic = . “修改该字段Header.lt_fieldcat-hotspot = X. “设置该字段为热点.lt_fieldcat-no_out = X. “设置次字段默认不显示lt_fieldcat-emphasize = X. “设置该字段颜色lt_fieldcat-just = R/C/L.“设置该字段对齐方式lt_fieldcat-key = X. “设置该字段为KEY并显示颜色lt_fieldcat-do_sum = X. “对此字段进行加总lt_fieldcat-icon = X. “设置该字段以ICON的形式输出MODIFY lt_fieldcat INDEX N (N为该字段在输出表中处于第几栏)24让ALV在同一屏幕上显示两个列表:(只能用List显示) (1)callfunctionREUSE_ALV_BLOCK_LIST_INIT exporting i_callback_program=g_repid *i_callback_pf_status_set=g_status2 *i_callback_user_command=g_ucomm2 *IT_EXCLUDING=(2) cleart_fieldcat. refresht_fieldcat.callfunctionREUSE_ALV_FIELDCATALOG_MERGE exporting i_program_name=g_repid i_internal_tabname=T_TAB i_client_never_display=X i_inclname=g_repid changing ct_fieldcat=t_fieldcat. (3)callfunctionREUSE_ALV_BLOCK_LIST_APPEND exportingis_layout=t_layoutit_fieldcat=t_fieldcati_tabname=T_TABit_events=t_events “like slis_t_eventtablest_outtab=t_tab(4)要添加几个内表,就重复几次(2)(3)的操作。(5)callfunctionREUSE_ALV_BLOCK_LIST_DISPLAY exporting i_interface_check=*IS_PRINT=*i_screen_start_column=5*i_screen_start_line=5*i_screen_end_column=100*i_screen_end_line=100*IMPORTING*E_EXIT_CAUSED_BY_CALLER=*ES_EXIT_CAUSED_BY_USER= exceptionsprogram_error=1others=2.注意:该步骤是必须的,但其对应的参数可以都不填,只call function就行。25实现分页的程式代码。(在REPORT中實現)LOOP AT t_tab. g_line = g_line + 1.*ensure when g_line = 3 turn page(3行分页) IF g_line = 3. g_flag = X. g_page = g_page + 1. CLEAR: g_line. ENDIF.*get tpage AT NEW mblnr. CLEAR: g_flag,g_tpage,g_page,g_line2. LOOP AT t_tab INTO t_header WHERE mblnr = t_tab-mblnr. APPEND t_header. g_line2 = g_line2 + 1. use DESCRIBE can have the same result. ENDLOOP.* DESCRIBE TABLE t_header LINES g_line2. g_tpage = g_line2 DIV 3. g_mod = g_line2 MOD 3. IF g_mod 0. g_tpage = g_tpage + 1. ENDIF. ENDAT.*When the Material NO. change to turn page AT END OF mblnr. CLEAR g_mod. g_mod = g_line MOD 3. g_flag = X. when the MBLNR is diffenrent, NEW-PAGE IF g_mod 0. g_page = g_page + 1. ENDIF. CLEAR g_line. REFRESH t_header. ENDAT.*clear g_FLAG AT LAST. g_flag = . ENDAT. CLEAR g_flag. ENDLOOP.ENDFORM. write_form226. 实现分页的程式代码。(在SMARFORM中實現)Main window:data:lt_item like t_item, work area l_cnt type i.clear g_flag.g_cnt = g_cnt + 1.g_item = g_item + 1.g_mod = g_cnt mod 7.g_grund = t_item-grund.*7行换页if g_mod = 0. g_flag = X. g_sign = X.endif.l_cnt = g_item + 1.read table t_item into lt_item index l_cnt.if sy-subrc = 0.*rsnum改变时换页 if g_rsnum ne lt_item-rsnum. g_flag = X. g_rsnum = lt_item-rsnum. g_cnt = 0. 当rsnum改变时 g_cnt重新开始计。 clear: g_page, g_tpage,g_sign. endif.endif.clear g_mod.read table t_header with key rsnum = t_item-rsnum.Header window:clear g_flag.data: l_line type i, l_div type i, l_mod type i.data:begin of lt_item occurs 0, rsnum like t_item-rsnum, end of lt_item.data:lt_item2 like t_item.clear :l_line,l_div,l_mod,lt_item,lt_item2.refresh: lt_item.(1)设定分页码g_page = g_page + 1.if g_sign X.(2)设定打印次数 read table t_header with key rsnum = g_rsnum. if t_header-times 1. g_print_time = (重印). else. g_print_time = . endif.(3)设定总页码 loop at t_item into lt_item2 where rsnum = g_rsnum. move-corresponding lt_item2 to lt_item. append lt_item. endloop. loop at lt_i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论