旅游网站规划设计方案搜索引擎营销方案例子
在对话框程序中的选择屏幕添加图标
要在选择屏幕中添加图标,其中包括参数:
在参数的选择文本中或选择选项(select-option)中写入 @01@
或选择选项:
您可以使用 01、02、03,依此类推,以获取不同的不同图标。
在运行时更改参数的名称
这是在运行时更改参数的很酷的技巧:
在特定时间或单击参数标签将更改…
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS : rd1 RADIOBUTTON GROUP g1 USER-COMMAND abc DEFAULT 'X', rd2 RADIOBUTTON GROUP g1. SELECTION-SCREEN: BEGIN OF LINE. SELECTION-SCREEN: COMMENT 1(50) text_003. " (text_003 will holds the name)
PARAMETERS p_matnr TYPE matnr .
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN END OF BLOCK b1. *To change the name on click of radio button AT SELECTION-SCREEN OUTPUT. IF rd1 = 'X'. text_003 = 'Matnr'. ELSEIF rd2 = 'X'. text_003 = 'Material Number'. ENDIF.
实际开发中遇到的解决方式:
代码如下:
**----------------------------------------------------------------------*
*& 选择屏幕部分
SELECTION-SCREEN FUNCTION KEY 1.SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text002.SELECTION-SCREEN: BEGIN OF LINE.
PARAMETERS: p1 TYPE c RADIOBUTTON GROUP rb1 USER-COMMAND uc DEFAULT 'X'.
SELECTION-SCREEN: COMMENT (30) FOR FIELD p1.PARAMETERS: p2 TYPE c RADIOBUTTON GROUP rb1.
SELECTION-SCREEN: COMMENT (30) FOR FIELD p2.
SELECTION-SCREEN: END OF LINE.SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text001.SELECT-OPTIONS:s_pbom FOR zmmt076-zcompocode MODIF ID ty1, " Component Codes_fbom FOR zmmt077-zforpegcode MODIF ID ty2," Forecast Pegging Codeso_sku FOR mara-zmatsku, " SKUs_zbrand FOR mara-zbrand , " Brands_zrange FOR mara-zrange, " Ranges_zprod FOR mara-zprod, " Products_zprgrp FOR mara-zprdgrp, " Product Groups_series FOR mara-zseries_int, " Internal Seriess_erdat FOR zmmt076-erdat, " Update Dates_bismt FOR zmmt076-zbismt, " Old Material No.s_crdat FOR zmmt076-erdat. " Sales Order Created Date
SELECTION-SCREEN END OF BLOCK b1.INITIALIZATION.text001 = 'Selection'.text002 = 'PBOM/FBOM'.s_crdat-low = '20200101'. s_crdat-high = sy-datum.s_crdat-sign = 'I'.s_crdat-option = 'BT'.APPEND s_crdat.CLEAR s_crdat.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.CASE screen-group1.WHEN 'TY1'.IF p1 = 'X'.screen-active = '1'.ELSE.screen-active = '0'.ENDIF.WHEN 'TY2'.IF p2 IS INITIAL.screen-active = '0'.ELSE.screen-active = '1'.ENDIF.ENDCASE.MODIFY SCREEN.ENDLOOP.
显示效果如下:
Describe 方法的替代
我们可以在不使用 DESCRIBE
语句的情况下计算内表的行:
count = lines(itab)
动态 SQL 语句
动态创建选择查询语句的技巧:
SELECT (<fs_fields>)FROM (<fs_tabname>)APPENDING TABLE <fs_itab>WHERE (wa_tab) .
[every variable should be of character type]
显示 ALV 的最简单方式
使用此代码显示 ALV 的最简单和最短方法:
DATA: gr_table TYPE REF TO cl_salv_table.CALL METHOD cl_salv_table=>factoryIMPORTINGr_salv_table = gr_tableCHANGINGt_table = itab. " internal table having data to displaygr_table->display( ).
运行阻塞的 T-Code
Tcodes 被中断…不是一个大问题。这是运行任何 T-code 的两种方法:
RS_HDSYS_CALL_TC_VARIANT
: RS_HDSYS_CALL_TC_VARIANT 并使用参数进行权限检查- 在报表中使用如下的代码:
DATA: l_tcode TYPE sytcode. PARAMETERS: p_tcode TYPE sy-tcode. START-OF-SELECTION. SELECT SINGLE tcode FROM tstc INTO l_tcode WHERE tcode = p_tcode. IF sy-subrc = 0. CALL TRANSACTION p_tcode. ELSE. MESSAGE 'TCODE not found.' TYPE 'I'. ENDIF.
显示弹出窗口
使用 method th_popup
函数来显示弹出框或消息提示。
CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING text_question = '确定删除?' IMPORTING answer = lv_answer
* TABLES
* PARAMETER = EXCEPTIONS text_not_found = 1 OTHERS = 2. CHECK lv_answer = '1'.
报表中创建日志
这是在 ABAP 中创建日志显示的代码:
CREATE OBJECT lc_app_log EXCEPTIONS log_header_inconsistent = 1 OTHERS = 2. *Error messages LOOP AT i_msg_log INTO wa_msg_log. lw_msg = wa_msg_log-message. lw_msgty = wa_msg_log-msgtyp. CALL METHOD lc_app_log->add_msg_free_text EXPORTING im_msg = lw_msg im_msgty = lw_msgty EXCEPTIONS msg_error = 1 OTHERS = 2. IF NOT sy-subrc IS INITIAL. RETURN. ENDIF. CLEAR wa_msg_log. ENDLOOP. lc_app_log->display_log( ).
用字符串查找报表
我们可以通过使用报表输入任何程序中编写的字符串来找到报表:RS_ABAP_SOURCE_SCAN
在不按 CTRL+C 或 CTRL+V 的情况下复制任何行
使用 CTRL+D 来复制任何一行,通常在更新代码时使用,将原有的逻辑注释,复制当前行的代码,重新写新的业务逻辑代码