abap中实现在屏幕上显示图片
ABAP屏幕增强总结整理
ABAP屏幕增强总结整理目录一:销售订单屏幕增强 VA01/VA02/VA03 (5)1:销售订单屏幕增强抬头屏幕增强 (5)A:屏幕增强实现 (5)B:屏幕增强位置 (6)2:销售订单屏幕增强行项目屏幕增强 (7)A:屏幕增强实现 (7)B:屏幕增强位置 (8)二:交货单(内向/外向)屏幕增强 (10)1:交货单抬头屏幕增强 (10)A:屏幕增强实现 (10)B:屏幕增强的位置 (14)2:交货单行项目屏幕增强 (15)A:屏幕增强实现 (15)B:屏幕增强的位置 (19)三:采购申请(ME51N/ME52N/ME53N) (19)A:屏幕增强实现 (19)B:屏幕增强位置 (25)四:采购订单(ME21N/ME22N/ME23N) (25)1.采购订单抬头屏幕增强 (25)A:屏幕增强实现 (25)B:屏幕增强位置 (30)2.采购订单行项目屏幕增强 (30)A:屏幕增强实现 (30)B:屏幕增强位置 (35)五:合同(框架协议) ME31K/ME32K/ME33K (35)1.合同(框架协议)抬头屏幕增强 (35)A:屏幕增强实现 (35)B:屏幕增强位置 (40)2.合同(框架协议)行项目屏幕增强 (41)A:屏幕增强实现 (41)B:屏幕增强位置 (45)六:询价单/报价单 ME41/ME42/ME43 (46)1.询价单/报价单抬头屏幕增强 (47)A:屏幕增强实现 (47)B:屏幕增强位置 (51)2.询价单/报价单行项目屏幕增强 (52)A:屏幕增强实现 (52)B:屏幕增强位置 (57)七:供应商主数据屏幕增强 (58)A:屏幕增强实现 (58)LFA1 供应商主数据 (一般地区) (58)LFB1 供应商主数据 (公司代码) (65)LFM1 供应商主记录购买组织数据 (73)B:屏幕增强位置 (80)八:客户商主数据屏幕增强 (81)A:屏幕增强实现 (81)KNA1 客户主文件的一般数据 (82)KNB1 客户主数据 (公司代码) (90)KNVV 客户主记录销售数据 (98)B:屏幕增强位置 (106)九:物料主数据屏幕增强 (107)A:屏幕增强实现 (107)a)新增视图子屏幕 (112)b)在原有视图子屏幕增加新字段 (119)B:屏幕增强位置 (125)十:工单 IW31/IW32/IW33 (127)1.工单抬头屏幕增强 (127)A:屏幕增强实现 (127)B:屏幕增强位置 (131)十一:项目屏幕增强 (131)A:屏幕增强实现 (131)B:屏幕增强位置 (135)十二:WBS屏幕增强 (135)A:屏幕增强实现 (135)B:屏幕增强位置 (138)十三:网络订单 CN21/CN22/CN23 CJ20N (139)1.网络抬头屏幕增强 (139)A:屏幕增强实现 (139)B:屏幕增强位置 (142)2.网络工序行项目屏幕增强 (143)A:屏幕增强实现 (143)B:屏幕增强位置 (146)十四:生产订单 CO01/CO02/CO03 (147)1.生产订单抬头屏幕增强 (147)A:屏幕增强实现 (147)B:屏幕增强位置 (151)十五:物料BOM CS01 / CS02 / CS03 (152)1.物料BOM抬头屏幕增强 (152)A:屏幕增强实现 (152)B:屏幕增强位置 (155)2.物料BOM行项目屏幕增强 (155)A:屏幕增强实现 (155)B:屏幕增强位置 (158)十六:资产主数据屏幕增强 AS01 / AS02 / AS03 (158)A:屏幕增强实现 (158)a)作为“折旧范围”表页的一个子屏幕显示 (163)b)创建一个新的表页并且在新表页中显示 (167)B:屏幕增强位置 (174)a)作为“折旧范围”表页的一个子屏幕显示; (174)b)创建一个新的表页并且在新表页中显示 (174)十七:设备主数据屏幕增强 IE01 / IE02 / IE03 (175)A:屏幕增强实现 (175)B:屏幕增强位置 (185)十八:功能位置主数据屏幕增强 IL01 / IL02 / IL03 (186)A:屏幕增强实现 (186)B:屏幕增强位置 (197)一:销售订单屏幕增强 VA01/VA02/VA031:销售订单屏幕增强抬头屏幕增强A:屏幕增强实现在表“VBAK”中APPEND一自定义的结构,如下图TCODE:SE80 程序名:SAPMV45A 屏幕:8309 如图:直接在屏幕上增强你所要的字段就可,如下图。
ABAP入门----使用选择屏幕
ABAP入门----使用选择屏幕原文地址:ABAP入门----使用选择屏幕(20110703)选择屏幕是报表程序的一部分,可以设计选择屏幕以便交互输入字段选择标准。
在报表程序启动之后,用户在该屏幕中输入值。
可以使用下列语句设计选择屏幕:PARAMETERS: 为变量定义输入字段SELECT-OPTIONS:为选择标准定义输入字段SELECTION-SCREEN:格式化选择屏幕一、给参数分配缺少值:PARAMETERS<p> ...... DEFAULT <f> ...... "<f>可以是文字或字段名。
如果指定字段名,则系统将按缺省值处理该字段内容。
报表用户可以在选择屏幕中更改缺少值。
二、禁止参数显示语法:PARAMETERS <p> ...... NO-DISPLAY......创建参数,并通过DEFAULT选项在时间事件INITIALIZATION中内部赋值,或者,如果报表是用SUBMIT启动的,则由调用程序进行外部赋值。
如果想只在某种条件下才显示参数,例如,根据报表用户在选择屏幕的其它输入字段中输入的值决定是否显示参数,则请您不要使用NO-DISPLAY 选项。
如果使用了这个选项,参数就不是选择屏幕的元素,而且您也不能用 MODIFY SCREEN 语句使它可见。
要使参数成为选择屏幕的隐藏元素,请不带NO-DISPLAY 选项声明该参数,并通过使用MODIFY SCREEN 语句禁止显示它。
三、允许参数接受大小写语法:PARAMETERS <p> ...... LOWER CASE ......如果没有LOWER CASE选项,系统将所有输入值更改为大写。
如果没用LIKE选项从ABAP/4词典中引用字段,参数将接受ABAP/4字段的所有属性。
不能更改这些属性,也不能使用LOWER CASE选项。
必须在ABAP/4词典中定义是否可以输入大写或小写值。
ABAP语法详解教材 第004章 将数据输出到屏幕
第四章将数据输出到屏幕概览内容WRITE 语句....................................................................................................................... 1在屏幕上定位WRITE 输出 ............................................................................................. 3格式化选项 ......................................................................................................................... 5在屏幕上输出符号和图标................................................................................................ 7输出屏幕上的线和空行 ................................................................................................ 8垂直线 ........................................................................................................................... 8空行............................................................................................................................... 8将字段内容作为复选框输出............................................................................................ 9通过语句结构使用WRITE ............................................................................................... 9本节说明如何在屏幕上创建简单输出列表。
abap实现屏幕上显示logo图片
1、se38新建程序1.* Type declarations.....................2.TYPES pict_line(256) TYPE c.3.* data declarations......................4.DATA :init,5. container TYPE REF TO cl_gui_custom_container,6. editor TYPE REF TO cl_gui_textedit,7. picture TYPE REF TO cl_gui_picture,8. pict_tab TYPE TABLE OF pict_line,9. url(255) TYPE c.10.11.START-OF-SELECTION .12. CALL SCREEN 100.13.14.* Dialog modules......................................15.MODULE status_0100 OUTPUT.16. SET PF-STATUS 'SCREEN100'.17. IF init IS INITIAL.18. init = 'X'.19. CREATE OBJECT:20. container EXPORTING container_name = 'PICTURE_CONTAINER',21. picture EXPORTING parent = container.22. ENDIF.23.24. IMPORT pict_tab = pict_tab FROM DATABASE abtree(pi) ID 'ENJOY'.25.26. CALL FUNCTION 'DP_CREATE_URL'27. EXPORTING28. type = 'IMAGE'29. subtype = 'GIF'30. TABLES31. data = pict_tab32. CHANGING33. url = url.34.35. CALL METHOD picture->load_picture_from_url36. EXPORTING37. url = url.38.39. CALL METHOD picture->set_display_mode40. EXPORTING41. display_mode = picture->display_mode_fit_center.42.ENDMODULE. "status_0100 OUTPUT复制代码2、创建标准屏幕100layout 绘制customer container,并命名PICTURE_CONTAINER逻辑流:1.PROCESS BEFORE OUTPUT.2. MODULE STATUS_0100.3.*4.PROCESS AFTER INPUT.5.* MODULE USER_COMMAND_0100.复制代码3、执行程序效果:PS:上传logo图片,T-code:se781.CALL METHOD pic->set_display_mode2. EXPORTING3. display_mode = 0 .复制代码设置显示模式, mode 可取值:∙0:原始大小显示∙1:图片自动调整大小显示∙2:纵向拉伸,局左显示∙3: 原始大小,居中显示∙4:纵向拉伸,居中显示∙load的时候默认的是原始大小。
abap中实现在屏幕上显示图片
1、SE78上传图片到服务器,图片只能是bmp格式的点击预览,查看是否上传成功这里我们将图片对象命名为sapclub2、新建程序1.REPORT ydamon_103.2.3.CALL SCREEN 9000.4.*&---------------------------------------------------------------------*5.*& Module status_9000 OUTPUT6.*&---------------------------------------------------------------------*7.* text8.*----------------------------------------------------------------------*9.MODULE status_9000 OUTPUT.10. DATA: w_lines TYPE i.11. TYPES pict_line(256) TYPE c.12. DATA :13. container TYPE REF TO cl_gui_custom_container,14. editor TYPE REF TO cl_gui_textedit,15. picture TYPE REF TO cl_gui_picture,16. pict_tab TYPE TABLE OF pict_line,17. url(255) TYPE c.18. DATA: graphic_url(255).19. DATA: BEGIN OF graphic_table OCCURS 0,20. line(255) TYPE x,21. END OF graphic_table.22. DATA: l_graphic_conv TYPE i.23. DATA: l_graphic_offs TYPE i.24. DATA: graphic_size TYPE i.25. DATA: l_graphic_xstr TYPE xstring.26. .27. CALL METHOD cl_gui_cfw=>flush.28. CREATE OBJECT:29. container EXPORTING container_name = 'PICTURE_CONTAINER',30. picture EXPORTING parent = container.31. CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp32. EXPORTING33. p_object = 'GRAPHICS'34. p_name = 'SAPCLUB' "这里是我们se78上传图片的命名名称35. p_id = 'BMAP'36. p_btype = 'BCOL'37. RECEIVING38. p_bmp = l_graphic_xstr39.* EXCEPTIONS40.* NOT_FOUND = 141.* INTERNAL_ERROR = 242.* others = 343. .44. IF sy-subrc <> 0.45.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO46.* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.47. ENDIF.48. graphic_size = XSTRLEN( l_graphic_xstr ).49. l_graphic_conv = graphic_size.50. l_graphic_offs = 0.51. WHILE l_graphic_conv > 255.52. graphic_table-line = l_graphic_xstr+l_graphic_offs(255).53. APPEND graphic_table.54. l_graphic_offs = l_graphic_offs + 255.55. l_graphic_conv = l_graphic_conv - 255.56. ENDWHILE.57. graphic_table-line = l_graphic_xstr+l_graphic_offs(l_graphic_conv).58. APPEND graphic_table.59. CALL FUNCTION 'DP_CREATE_URL'60. EXPORTING61. type = 'IMAGE'62. subtype = 'X-UNKNOWN'63. size = graphic_size64. lifetime = 'T'65. TABLES66. data = graphic_table67. CHANGING68. url = url.69. CALL METHOD picture->load_picture_from_url70. EXPORTING71. url = url.72. CALL METHOD picture->set_display_mode73. EXPORTING74. display_mode = picture->display_mode_fit_center.75.ENDMODULE. " status_9000 OUTPUT复制代码3、新建标准屏幕9000绘制customer container,并命名PICTURE_CONTAINER 4、执行程序,查看结果。
sap abap 使用选择屏幕
第二章使用选择屏幕概览内容选择屏幕是什么? ......................................................................................................................................... 1选择屏幕与逻辑数据库................................................................................................................................. 2为变量定义输入字段..................................................................................................................................... 3PARAMETERS 语句基本格式 ............................................................................................................. 3给参数分配缺省值................................................................................................................................... 4禁止参数显示........................................................................................................................................... 4允许参数接受大小写............................................................................................................................... 4制作需要的输入字段的参数................................................................................................................. 5在选择屏幕上创建复选框..................................................................................................................... 5从SAP 内存中使用缺省值................................................................................................................... 6给参数分配匹配代码对象..................................................................................................................... 7给修改组分配参数................................................................................................................................... 7使用选择标准 ................................................................................................................................................. 8选择标准是什么?................................................................................................................................... 8定义选择标准....................................................................................................................................... 10使用报表的选择标准........................................................................................................................... 15格式化选择屏幕 ......................................................................................................................................... 17指定空行、下划线和注释................................................................................................................. 18将几个元素放在一行上....................................................................................................................... 19定位元素................................................................................................................................................. 20创建元素块............................................................................................................................................. 20在应用工具条中创建按钮................................................................................................................. 21在选择屏幕上创建按钮....................................................................................................................... 21选择屏幕是报表程序的一部分,您可以设计选择屏幕以便交互输入字段值和选择标准。
ABAP屏幕容器ALV显示
ABAP屏幕容器ALV显示FORM frm_display_alv .IF gcl_alv IS INITIAL.CREATE OBJECT: gcl_container'屏幕容器,下面不用默认屏幕则需要在屏幕画自定义控件EXPORTINGcontainer_name = 'ALV_COMM'.CREATE OBJECT gcl_alv'容器实例EXPORTINGi_parent = gcl_container.CALL METHOD gcl_alv->register_edit_eventEXPORTINGi_event_id = cl_gui_alv_grid=>mc_evt_enter.CALL METHOD gcl_alv->register_edit_eventEXPORTINGi_event_id = cl_gui_alv_grid=>mc_evt_modified.*准备获取字段目录,主要针对每个字段PERFORM frm_prepare_fieldcat.' CHANGING gt_fieldcat.*准备设置布局,整体布局PERFORM frm_prepare_layout CHANGING gs_layout.*排除不需要的标准按钮PERFORM frm_exclude_toolbar CHANGING gt_excluding.*显示ALVCALL METHOD gcl_alv->set_table_for_first_displayEXPORTING* I_BUFFER_ACTIVE = 'X''静态调用,每次相同字段目录可设为X,可加速显示ALV* I_CONSISTENCY_CHECK =* i_structure_name = 'SFLIGHT''若无字段目录,则必须设置此选项* is_variant = gs_varianti_save = 'A''X全局,U特定,A两者变式,SPACE均不可保存i_default = 'X''是否可定义默认布局is_layout = gs_layout* IS_PRINT ='打印内表* IT_SPECIAL_GROUPS ='字段目录设置了SP_GROUP被分组在一起的内表it_toolbar_excluding = gt_excluding* it_hyperlink = gt_hyperlinkCHANGINGit_outtab = it_tab_alv[]'显示内表最好和字段目录一样结构it_fieldcatalog = gt_fieldcat'it_sort = gt_sort'排序'it_filter = gt_filter'过滤EXCEPTIONSinvalid_parameter_combination = 1program_error = 2too_many_lines = 3OTHERS = 4.PERFORM frm_register_events.ELSE .*----刷新ALVCALL METHOD gcl_alv->refresh_table_display* EXPORTING* IS_STABLE =* I_SOFT_REFRESH =EXCEPTIONSfinished = 1OTHERS = 2 .' IF sy-subrc <> 0.*--异常处理' ENDIF.ENDIF .ENDFORM. ' FRM_DISPLAY_ALV*&---------------------------------------------------------------------**& Form FRM_MODIFY_ALV*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*' FRM_MODIFY_ALV*&---------------------------------------------------------------------**& Form FRM_PREPARE_FIELDCAT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** <--P_GT_FIELDCAT text*----------------------------------------------------------------------*FORM frm_prepare_fieldcat .' CHANGING p_gt_fieldcat TYPE lvc_t_fcat.add_field:'SPART' 'IT_TAB_ALV' 8 '业务单元','MATNR' 'IT_TAB_ALV' 20 '我司商品编码','MAKTX' 'IT_TAB_ALV' 25 '我司商品描述','CITY_CODE' 'IT_TAB_ALV' 12 '我司城市编码','CITY_NAME' 'IT_TAB_ALV' 20 '我司城市名称','COMPETITOR_NAME' 'IT_TAB_ALV' 10 '竞争对手名称','ZCITY_NAME' 'IT_TAB_ALV' 20 '竞争对手城市名称','COMPETITOR_LISTING_PRICE' 'IT_TAB_ALV' 10 '挂牌价价格', 'COMPETITOR_DEAL_PRICE' 'IT_TAB_ALV' 10 '购物车价格', 'AVAILABLE' 'IT_TAB_ALV' 8 '对手是否有货','ISBN_NO' 'IT_TAB_ALV' 18 'ISBN编码','CATCH_DATE' 'IT_TAB_ALV' 10 '抓取日期','CMMDTY_TIME' 'IT_TAB_ALV' 8 '抓取时间','BGAUTHOR' 'IT_TAB_ALV' 12 '修改者'.ENDFORM. ' FRM_PREPARE_FIELDCAT*&---------------------------------------------------------------------**& Form FRM_PREPARE_LAYOUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** <--P_GS_LAYOUT text*----------------------------------------------------------------------*FORM frm_prepare_layout CHANGING ps_layout TYPE lvc_ s_layo.ps_layout-zebra = 'X'.ENDFORM. ' FRM_PREPARE_LAYOUT*&---------------------------------------------------------------------**& Form FRM_REGISTER_EVENTS*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_register_events .*--为事件句柄创建实例CREATE OBJECT gr_event_handler.*--注册实例方法到ALV GRID 事件' SET HANDLER gr_event_handler->handle_double_click FO R gcl_alv.SET HANDLER gr_event_handler->handle_hotspot_click FOR gcl_alv.ENDFORM. ' FRM_REGISTER_EVENTS。
abap call screen的方法
ABAP中,使用CALL SCREEN语句可以调用一个屏幕(Screen)。
CALL SCREEN语句的语法如下:```CALL SCREEN screen_number [STARTING AT line column] [ENDING AT line column]```其中,screen_number是要调用的屏幕的编号。
STARTING AT 和ENDING AT是可选的参数,用于指定屏幕的起始行和列以及结束行和列。
在调用屏幕之前,需要先定义屏幕和屏幕的元素。
屏幕定义可以在SE51事务代码中完成。
屏幕元素包括文本框、按钮、标签等,可以在屏幕定义中添加。
在屏幕定义完成后,需要在ABAP程序中定义屏幕的逻辑处理。
这可以通过在程序中定义PROCESS BEFORE OUTPUT和PROCESS AFTER INPUT事件来实现。
PROCESS BEFORE OUTPUT 事件用于在屏幕显示之前初始化屏幕元素的值,PROCESS AFTER INPUT事件用于处理用户输入并更新屏幕元素的值。
下面是一个简单的例子,演示如何使用CALL SCREEN语句调用一个屏幕:```REPORT ztest.* 定义屏幕元素TABLES: mara.* 定义PROCESS BEFORE OUTPUT事件PROCESS BEFORE OUTPUT.MODULE status_0100.* 定义PROCESS AFTER INPUT事件PROCESS AFTER INPUT.MODULE user_command_0100.* 定义屏幕逻辑处理模块MODULE status_0100 OUTPUT.SET PF-STATUS '0100'.SET TITLEBAR '0100'.LOOP AT mara.WRITE: / mara-matnr, mara-mtart.ENDLOOP.ENDMODULE.MODULE user_command_0100 INPUT.CASE sy-ucomm.WHEN 'BACK'.LEAVE TO SCREEN 0.ENDCASE.ENDMODULE.* 调用屏幕START-OF-SELECTION.CALL SCREEN 0100.```在这个例子中,我们定义了一个名为0100的屏幕,并在PROCESS BEFORE OUTPUT事件中调用了名为status_0100的模块来初始化屏幕元素的值。
ABAP选择屏幕:根据用户选择动态显示屏幕
在有些程序中我们发现,如果用户选择了多个选项中的其一(单选框),则屏幕的外观将会有所调整。
这是怎么实现呢?我们来看下面的例子。
PARAMETERS: p1 TYPE c RADIOBUTTON GROUP g1 USER-COMMAND uc,p2 TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'.PARAMETERS: p_werks TYPE werks MODIF ID ty1,p_matnr TYPE matnr MODIF ID ty2.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.CASE screen-group1.WHEN 'TY1'.IF p1 IS INITIAL.screen-active = '0'.ELSE.screen-active = '1'.ENDIF.WHEN 'TY2'.IF p2 IS INITIAL.screen-active = '0'.ELSE.screen-active = '1'.ENDIF.ENDCASE.MODIFY SCREEN.ENDLOOP.AT SELECTION-SCREEN.CLEAR sy-ucomm.关于程序的说明:(1)该程序可以根据用户选择了P1或P2,决定显示工厂还是物料号在屏幕上;(2)这里USER-COMMAND uc是关键,它代表用户点击RADIOBUTTON GROUP g1上的任一选项时,都将触发PAI,并且Function code为'UC'。
在CLEAR sy-ucomm.这里打个断点即可观察sy-ucomm的值。
(3)MODIF ID 用于对屏幕元素进行分组,这在屏幕元素较多时更有用处,逻辑清晰。
这里的PBO(AT SELECTION-SCREEN OUTPUT)就是根据用户的选择,决定不同组的屏幕元素是隐藏或显示。
ABAP程序输入画面控制
●Sample-001根据用户或者TCODE,控制画面,是可编辑项下面这段代码,是根据系统用户,进行画面控制。
如果用户名等于‘ZDEV0129’group 001的项目就是可以输入项目,group 002的项目事不可输入的。
否则,则相反。
SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(24) TEXT-R09 FOR FIELD PA_TEST1 MODIF ID 001.*SELECTION-SCREEN POSITION POS_LOW.PARAMETERS: PA_TEST1(4) TYPE C MODIF ID 001.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN SKIP.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(24) TEXT-R10 FOR FIELD PA_TEST2 MODIF ID 002.*SELECTION-SCREEN POSITION POS_LOW.PARAMETERS: PA_TEST2(4) TYPE C MODIF ID 002.SELECTION-SCREEN END OF LINE.AT SELECTION-SCREEN OUTPUT.IF SY-UNAME = 'ZDEV0129'.LOOP AT SCREEN.IF SCREEN-GROUP1 = '001'.SCREEN-INPUT = '1'.这个参数是控制,是否可以输入SCREEN-OUTPUT = '1'.这个参数是控制,TEXT是否可以出力* SCREEN-INVISIBLE = '1'.这个参数控制,这个group是否可以显示MODIFY SCREEN..ELSE.SCREEN-INPUT = '0'.SCREEN-OUTPUT = '1'.MODIFY SCREEN.ENDIF.ENDLOOP.ELSE.LOOP AT SCREEN.IF SCREEN-GROUP1 = '001'.SCREEN-INPUT = '0'.SCREEN-OUTPUT = '1'.MODIFY SCREEN..ELSE.SCREEN-INPUT = '1'.SCREEN-OUTPUT = '1'.MODIFY SCREEN.ENDIF.ENDLOOP.ENDIF.●Sample-002根据画面上的选择按钮,控制画面,是可编辑如果将将画面选择项目‘code’选中的话,其后面的项目就是可以输入项目,其他的项目是不可输入的否则,则相反。
ABAP--如何在选择屏幕上输出ALV GRID报表
*@=====================================================================@
*@ 定义结构类型
*@=====================================================================@
*@ 定义宏
*@=====================================================================@
*@=====================================================================@
将其更改我们常用的编程模式。代码见附件,具体说明如下:
选择屏幕也是一个屏幕,与一般创建的屏幕不同的是:它没有PBO、PAI事件,报表程序中的
INITIALIZATION就是选择屏幕的PBO事件,其它事件是选择屏幕的PAI事件。具体事件与程序功能
代码如下:
INITIALIZATION.
EXPORTING
i_buffer_active = space
i_bypassing_buffer = space
CHANGING
it_outtab = gt_result[]
it_fieldcatalog = gt_fcat.
*@=====================================================================@
*@ 执行程序事件
*@=====================================================================@
SAP ABAP-屏幕设计
(1).Screen 设计TABLES: SSCRFIELDS.PARAMETERS: P_EBLEN LIKE VBRK-EBLEN DEFAULT ' '.PARAMETERS: P_CK1 AS CHECKBOX DEFAULT 'X'.PARAMETERS: P_CK2 AS CHECKBOX.PARAMETERS: P_RAD1 RADIOBUTTON GROUP SG1 DEFAULT 'X'.PARAMETERS: P_RAD2 RADIOBUTTON GROUP SG1 .SELECT-OPTIONS: S_EBLEN FOR VBRK-EBLEN NO-EXTENSTION. “无后边的箭头SELECT-OPTIONS: S_EBLEN FOR VBRK-EBLEN NO INTERVALS. ”无到后边的选项SELECTION-SCREEN SKIP 1. "产生空行SELECTION-SCREEN BEGIN OF LINE . "将元素排列到一行SELECTION-SCREEN END OF LINE.SELECTION-SCREEN ULINE. "画直线SELECTION-SCREEN COMMENT 10(20) TEXT-001."屏幕上输出文本SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-002.SELECTION-SCREEN END OF BLOCK BK1.SELECTION-SCREEN PUSHBUTTON 50(10) TEXT-003 USER-COMMAND BUT1. "产生按钮SELECTION-SCREEN FUNCTION KEY 1. "工具条按钮最多为5个.PARAMETERS: <P> .... MEMORY ID <PID>. "从全局SAP内存(SPA/GPA参数)使用缺省值SET PARAMETERS ID 'HK' FIELD 'Test Parameters' "以'HK'为名称在全局SAP内存中存储值.PARAMETERS: P_TEST(16) TYPE C MEMORY ID HK. "使用缺省值GET PARAMETERS ID ' ' FIELD ' '.INITIALIZATION.SSCRFIELDS-FUNCTXT_01 = 'Button 1'.SSCRFIELDS-UCOMM = 'FC01'.(2).修改ScreenNAME “字段名称GROUP1 ”字段组1GROUP2 “字段组2GROUP3 ”字段组3GROUP4 “字段组4ACTIVE ”可见并准备输入的字段REQUIRED “强制输入的字段INPUT ”字段准备输入OUTPUT ”字段仅用来显示INTENSIFIED ”高亮显示字段INVISIBLE “字段不可见LENGTH “设置字段长度DISPLAY_3D “以3围框架显示字段VALUE_HELP ”显示有值帮助的字段在PBO模块中对字段进行属性修改MODULE MODIFY_SCREEN OUTPUT.LOOP AT SCREEN.CHECK SCREEN-GROUP1 = 'MOD'.SCREEN-INPUT = 0.MODIFY SCREEN.ENDLOOP.ENDMODULE.(3) 使用子屏幕CALL SUBSCREEN <AREA> INCLUDING <PROGRAM> <SCREEN>(4)设置光标位置SET CURSOR FIELD <FIELD_NAME> OFFSEY <POSITION> 设置光标的特定位置(5)设置下一个屏幕SET SCREEN <SCREEN_NUMBER>.CALL SCREEN <SCREEN_NUMBER>.调用新的屏幕序列LEAVE TO SCREEN 0.SET SCREEN 0.LEAVE SCREEN.(6)后台处理屏幕可以使用SUPPRESS DIALOG 取消所有屏幕.*---------PBO MODULE OF SCREEN 100.CALL SCREEN 110 STARTING AT 10 5.*---------SCREEN 110 FLOW LOGICMODULE DIALOG_WINDOWS OUTPUT.SUPPRESS DIALOG.LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.WRITE: /.WRITE: /.ENDMODULE.(7)报表及选择屏幕事件过程报表事件过程INITIALIZATION 用于屏幕初始化,例如屏幕字段默认值的填充START-OF-SELECTIONEND-OF-SELECTION选择屏幕事件在INITIALIZATION之前 STATR-OF-SELECTION之后触发AT SELECTION-SCREEN OUTPUT."对选择屏幕字段进行修改AT SELECTION-SCREEN INPUT.处理特殊输入字段AT SELECTION-SCREEN ON <FIELD>创建值输入列表AT SELECTION-SCREEN ON VALUE-REQUEST FOR <FIELD>.创建输入字段的帮助AT SELECTION-SCREEN ON HELP-REQUEST FOE <FIELD>.处理单选按钮组AT SELECTION-SCREEN ON RADIOBUTTON GROUP <RADIO>处理输入字段块AT SELECTION-SCREEN ON BLOCK <BK1>.这篇文章涉及到了选择屏幕的一些基本控件和事件过程,有些功能在实际的开发过程中还没用到,有不足的地方也请各位网友给出指正.。
SAPABAP程序设计基础教程选择屏幕与列表屏幕
if spfli-connid = '0017' . REJECT.
endif.
REJECT node_name.语句:中断目前和全部旳同一级别节点旳全 部后续GET事件,执行目前层高层次(即node_name所在那一层) 旳下一种逻辑数据库GET事件,语法如下: REKECT node_name.。逻辑数据库表旳层次构造中,节点名称 node_name是目前GET事件层旳高层节点。
逻辑数据库旳流程终止
STOP语句:结束整个报表旳输出,而且触发END-OF-SELECTION事件 EXIT语句:退出全部旳GET代码块,而且不触发任何旳后续事件,直接
转向基础列表屏幕输出屏幕显示(Basic List Screen)。因 此EXIT旳功能用于退出GET事件块,其功能与STOP基本一 致,只是它不会触发后续事件。 REJECT.语句:中断目前GET事件并转向逻辑数据库同一层旳下一种
[WITH FRAME [TITLE title] ]. …… SELECTION-SCREEN END OF BLOCK < block_name>. 来创建一种选择屏幕。可选项 WITH FRAME [TITLE title] 确 定选择屏幕是否带有边框,而TITLE title选项决定是否在边框上带 有文字阐明。
定制WRITE旳符号输出-4
定制WRITE旳符号输出-5
设置列表旳格式
在ABAP中,缺省旳列表旳行宽是83个字符,缺省旳每页旳行数是6万行,能够通 过在报表申明语句旳背面添加如下子句来变化缺省旳报表旳行数和列数旳设置: REPORT <report_name> LINE-SIZE <columns>
abap 屏幕按钮的描述
abap 屏幕按钮的描述问题。
首先,我们来介绍一下什么是ABAP屏幕按钮。
ABAP屏幕按钮是在SAP ABAP程序中用于激活特定功能的一种控件。
它通常显示在SAP系统的用户界面上,以便用户可以通过点击按钮来执行特定的操作。
ABAP屏幕按钮可以呈现为不同的形式,比如文本按钮、图标按钮或图形按钮。
它们的外观和行为可以通过编程进行定制,以满足应用程序的需求。
在下面的文章中,我们将一步一步回答关于ABAP屏幕按钮的一些常见问题,希望能帮助读者更好地理解和应用这个功能。
第一步:如何创建一个ABAP屏幕按钮?在SAP ABAP程序中创建一个屏幕按钮需要以下步骤:1. 在屏幕上选择一个合适的位置,并设置按钮的坐标和尺寸。
2. 为按钮选择一个唯一的ID,并为按钮设置一个描述性的文本。
3. 在ABAP代码中声明一个包含屏幕按钮属性的结构体,并在结构体中为按钮设置相关属性,如ID、文本、颜色等。
4. 在屏幕布局中添加一个按钮对象,并将其与上一步中声明的结构体相关联。
第二步:如何定义一个ABAP屏幕按钮的行为?ABAP屏幕按钮的行为可以通过编程来定义,以决定何时触发按钮点击事件以及其后续的操作。
以下是定义ABAP屏幕按钮行为的一些常见方法:1. 使用事件处理程序对按钮点击事件进行响应。
在ABAP代码中编写按钮点击事件的处理逻辑,比如触发其他函数模块、执行特定操作或显示特定屏幕。
2. 根据按钮状态或条件来切换按钮的点击行为。
通过设定按钮属性或在事件处理程序中检查特定条件,可以确定按钮的不同状态或行为。
3. 使用用户交互动作来触发按钮行为。
除了点击按钮,还可以使用其他用户交互动作(如键盘事件或鼠标移动)来触发按钮行为。
第三步:如何修改ABAP屏幕按钮的外观?ABAP屏幕按钮的外观可以通过编程来修改以满足相应的需求。
以下是修改ABAP屏幕按钮外观的一些方法:1. 修改按钮的文本和样式。
通过修改按钮的文本属性、字体大小、字体颜色和背景颜色等,可以改变按钮的外观。
abap 屏幕按钮的描述 -回复
abap 屏幕按钮的描述-回复Abap屏幕按钮的描述在ABAP编程中,屏幕按钮是用户界面的重要组成部分,它为用户提供了与系统交互的手段。
本文将一步一步地回答“ABAP屏幕按钮的描述”这一主题。
第一步:什么是ABAP屏幕按钮?ABAP屏幕按钮是用于用户界面的一种元素,它用来触发特定的功能或操作。
用户可以通过点击按钮来执行某个任务,并获取相应的结果或反馈。
第二步:ABAP屏幕按钮的语法和属性在ABAP中,创建屏幕按钮需要使用语句“SET PF-STATUS”,该语句用于设置屏幕的功能键状态。
屏幕按钮的属性包括按钮名称、功能码、状态等。
按钮名称:按钮名称用于标识按钮,在程序中可以通过按钮名称来引用该按钮。
按钮名称应具有清晰的描述性,以便用户很容易理解和识别。
功能码:功能码是用于识别按钮的唯一代码,它用于在程序中处理按钮点击事件。
功能码可以是单个字符或字符组合,它们应该有明确的含义,以便程序能够正确地处理按钮事件。
状态:按钮可以有不同的状态,例如激活状态、非激活状态或禁用状态。
这些状态可以通过设置按钮的属性来控制。
例如,当某个条件满足时,我们可以将按钮设置为激活状态,否则将其设置为非激活状态或禁用状态。
第三步:ABAP屏幕按钮的用途和功能ABAP屏幕按钮可用于各种用途和功能。
以下是一些常见的用途和功能:1. 触发事件:按钮可以用于触发特定的事件或操作。
例如,当用户点击“保存”按钮时,可以执行保存数据的操作。
2. 导航:按钮可以用于导航到其他屏幕或页面。
例如,当用户点击“下一页”按钮时,系统可以显示下一页的内容。
3. 开关状态:按钮可以作为一个开关,用于切换某个状态或选项。
例如,当用户点击“启用/禁用”按钮时,可以切换某个功能的状态。
4. 弹出窗口:按钮可以用来触发弹出窗口或对话框,显示附加的信息或选项。
例如,当用户点击“查看详情”按钮时,系统可以显示详细信息的弹出窗口。
5. 执行操作:按钮可以执行特定的操作,例如运行报表、导出数据等。
ABAP屏幕增强小例子
用户出口-GUI接口增强-屏幕增强11.编写用户增强用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现).1.E Enhancement exits :就是常说User_exit (用户出口)使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头的程序. SE16查询TFDIR(函数表)输入EXIT*也可.2.C GUI codes( GUI接口增强)3. S Subscreens (屏幕增强)Enhancement在表MODSAP可看到,而TFDIR字段 MAND(值为C表示此出口函数被激活).使用SMOD(CMO D)当然可激活exit function,有时候一时难以查询到相关Enhancement时可使用下面程序将出口函数激活.REPORT Zactexitfun .data ztfdir like tfdir .* select single * from tfdir into ztfdir* where FUNCNAME =* 'EXIT_SAPMM06E_013'.* ztfdir-MAND = 'C' .* update tfdir from ztfdir.* 将EXIT_SAPMM06E_013换成实际所需exit函数名update tfdir set MAND = 'C'.where FUNcname = 'EXIT_SAPMM06E_013'.***当然也可SE16:MODSAP表enhancement输入EXIT_SAPMM06E_013然后得到enhancement name MM06 E005后使用SMOD测试激活exit函数.增强相关函数和表格Function:[1].DYNP_VALUES_READ[2]. MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)[3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)由于读者可能接触user exit最多,除了附录光盘有个查找ZFINDEXIT的程序外(有些exit使用它并不能找到),另一个直接有效的方法就是使用这个函数,SE37设好断点后执行tcode如其有exit就会调用此函数.如图2-11-1是运行MIGO时的一个截图,表示相关exit被激活.4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)[5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)Table:[1]. TFDIR->function module table[2]. MODSAP->sap enhancement table[3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增强)[4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜单文本增强)***注意,为了确保一个出口被真正应用,必须同时激活相关程序(SE38)和出口函数(SMOD|CMOD,反正就是要保证tfdir-mandt=’C’,用程序也可.)<!-- 内容导航 -->关于增强中的user exit,在实战篇中会有更多详细的例子.找屏幕增强有很多方法,读者可从SE16:TSDIR中找寻,或者CMOD菜但utilities(M)->SAP Enhancemen ts搜寻出所有的exit name,然后在搜寻结构中再输入’screen’ 关键字(通常在short text描述)一般能找到一些SAP预留的屏幕增强.下面以建立PO举个实例介绍什么是屏幕增强.如图2-11-2,很简单,SE38输入SAPMM06E.SAPMM06E可看成专为PO增强的一个module pool,可以增强的subscreen no一般还有0101,0111,020 1,0211,0301,0311(增强的子屏作用读者可从描述中就知).SAPLXM06实际上包含四个include,INCLUDE LXM06TOP(Global Data在此为增强定义global data), INCLUDE LXM06UXX.(Function Modules实际上包含所有可用的user exit),INCLUDE LXM06F00. (SAP-For mpool for Customer-Use可在此建立Form pool),INCLUDE ZXM06ZZZ. (Subprograms and Modules,在此建立增强子屏)在include程序ZXM06ZZZ中加入如下代码.*&----------------------------------------------------------*& Include ZXM06ZZZ **&----------------------------------------------------------module modpohead.call screen 0101. "PO header增强子屏endmodule.module modpoitem.call screen 0111. "PO item增强子屏endmodule.注意上面的screen 0101和0111在attribute screen type必须选subscreen.再ME22N(ME23N)进去后能发现在PO header和line item都多出了一customer data tab页,不妨这样设想,假设用户希望在操作PO时写些额外的东西进自定义的表格,而且这些数据通过一般的user exit还做不到,因为这些字段在P O相关数据表中不存在,必须有用户在屏幕上输入(否则没必要使用增强屏幕直接使用合适的user exit将数据写到自定义表就可),就得使用增强屏幕. 屏幕上文本框和table control都可用,想输入怎样的额外数据到自定义表都行.如图2-11-3,读者可看到header和item都多出一Customer data的增强屏幕.1.有时实际需求会需要更改屏幕上某些字段的显示,比如用户希望物料主数据basic data 2视图othe r data 下的Prod./Insp. Memo(子段显示)保存其它信息,同时为了避免不必要的误会需要更改此字段显示,严格地讲,这并非屏幕增强.这是屏幕”强改”(强行更改).2.所谓屏幕增强就是多出个子屏幕来,在此你可显示一些数据或插入一些数据(到自定义表格中),glob al data(可理解为定义的全局变量内表什么的)对ME21N是SAPLMEGUI(main程序)-> SAPLMEGUI(Global d ata include),就是PO的增强屏幕不能使用SAPLMEGUI中定义的东西.3.一个SOFT(软件)的可扩充性写到这份上还没有什么bug,除了佩服还是佩服.。
ABAP屏幕增强总结整理
ABAP屏幕增强总结整理1.屏幕增强的种类-行号增强:在表格控件中增加行号,方便用户快速定位和操作数据。
-列表增强:在表格中增加自定义的列,并显示相关信息,帮助用户更好地理解和操作数据。
-功能键增强:增加自定义的功能键,通过点击功能键来执行自定义的程序逻辑,方便用户快速操作和扩展功能。
-输入帮助增强:增强输入帮助,为特定字段提供自定义的输入帮助函数,方便用户输入和选择数据。
2.屏幕增强的实现方式-自定义屏幕逻辑:通过在SAP系统中自定义屏幕逻辑,例如增加、修改和删除屏幕上的元素,以满足业务需求。
-使用BADIs:使用SAP提供的业务增强点(BAdIs),通过实现相应的BAdI来增强SAP系统的屏幕及逻辑。
-使用用户退出:在用户退出时,调用相应的退出函数来执行自定义逻辑,例如清除临时数据、更新缓存等。
- 使用SAP Enhancement Framework:SAP Enhancement Framework是SAP提供的一种灵活的增强技术,可以通过修改标准SAP代码和预定义增强点来实现屏幕增强。
3.屏幕增强的步骤-确定需求:根据业务需求确定需要增强的屏幕和功能。
-梳理当前屏幕逻辑:了解当前屏幕的布局和逻辑,确定需要增加、修改和删除的元素。
-实现屏幕增强:根据需求和梳理的逻辑,使用合适的实现方式来进行屏幕增强。
-测试和验证:对增强后的屏幕进行测试和验证,确保新增功能的正常使用和用户体验。
4.屏幕增强的优势-增强用户体验:通过增加、修改和删除屏幕元素,可以提升用户操作的效率和便利性,减少用户的繁琐操作。
-灵活性和可维护性:使用ABAP屏幕增强技术,可以根据业务需求自由调整屏幕布局和逻辑,同时也方便后续对屏幕进行维护和修改。
-兼容性:屏幕增强技术通常不会修改SAP系统的标准代码,因此增强后的屏幕在系统升级和补丁应用时具有较好的兼容性。
总结起来,ABAP屏幕增强是一种常用的技术,可以提升SAP系统的用户体验和功能扩展。
ABAP语法详解教材 第205章 修改屏幕
第五章修改屏幕概览运行时可以用许多不同的方式修改屏幕:内容修改屏幕............................................................................................................................................ a设置屏幕字段属性............................................................................................................................ b用功能“字段选择”更改屏幕字段属性........................................................................................ c 字段选择- 概述 .......................................................................................................................... c调用字段选择 ............................................................................................................................. c属性的组合规则.......................................................................................................................... d屏幕制作器属性.......................................................................................................................... e生成字段选择 ............................................................................................................................. e字段选择的功能模块.................................................................................................................... f链接字段 ........................................................................................................ 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、SE78上传图片到服务器,图片只能是bmp格式的
点击预览,查看是否上传成功
这里我们将图片对象命名为sapclub
2、新建程序
1.REPORT ydamon_103.
2.
3.CALL SCREEN 9000.
4.*&---------------------------------------------------------------------*
5.*& Module status_9000 OUTPUT
6.*&---------------------------------------------------------------------*
7.* text
8.*----------------------------------------------------------------------*
9.MODULE status_9000 OUTPUT.
10. DATA: w_lines TYPE i.
11. TYPES pict_line(256) TYPE c.
12. DATA :
13. container TYPE REF TO cl_gui_custom_container,
14. editor TYPE REF TO cl_gui_textedit,
15. picture TYPE REF TO cl_gui_picture,
16. pict_tab TYPE TABLE OF pict_line,
17. url(255) TYPE c.
18. DATA: graphic_url(255).
19. DATA: BEGIN OF graphic_table OCCURS 0,
20. line(255) TYPE x,
21. END OF graphic_table.
22. DATA: l_graphic_conv TYPE i.
23. DATA: l_graphic_offs TYPE i.
24. DATA: graphic_size TYPE i.
25. DATA: l_graphic_xstr TYPE xstring.
26. .
27. CALL METHOD cl_gui_cfw=>flush.
28. CREATE OBJECT:
29. container EXPORTING container_name = 'PICTURE_CONTAINER',
30. picture EXPORTING parent = container.
31. CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
32. EXPORTING
33. p_object = 'GRAPHICS'
34. p_name = 'SAPCLUB' "这里是我们se78上传图片的命名名称
35. p_id = 'BMAP'
36. p_btype = 'BCOL'
37. RECEIVING
38. p_bmp = l_graphic_xstr
39.* EXCEPTIONS
40.* NOT_FOUND = 1
41.* INTERNAL_ERROR = 2
42.* others = 3
43. .
44. IF sy-subrc <> 0.
45.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
46.* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
47. ENDIF.
48. graphic_size = XSTRLEN( l_graphic_xstr ).
49. l_graphic_conv = graphic_size.
50. l_graphic_offs = 0.
51. WHILE l_graphic_conv > 255.
52. graphic_table-line = l_graphic_xstr+l_graphic_offs(255).
53. APPEND graphic_table.
54. l_graphic_offs = l_graphic_offs + 255.
55. l_graphic_conv = l_graphic_conv - 255.
56. ENDWHILE.
57. graphic_table-line = l_graphic_xstr+l_graphic_offs(l_graphic_conv).
58. APPEND graphic_table.
59. CALL FUNCTION 'DP_CREATE_URL'
60. EXPORTING
61. type = 'IMAGE'
62. subtype = 'X-UNKNOWN'
63. size = graphic_size
64. lifetime = 'T'
65. TABLES
66. data = graphic_table
67. CHANGING
68. url = url.
69. CALL METHOD picture->load_picture_from_url
70. EXPORTING
71. url = url.
72. CALL METHOD picture->set_display_mode
73. EXPORTING
74. display_mode = picture->display_mode_fit_center.
75.ENDMODULE. " status_9000 OUTPUT
复制代码
3、新建标准屏幕9000
绘制customer container,并命名PICTURE_CONTAINER 4、执行程序,查看结果。