前言
在报表选择屏幕设置默认值,除了使用屏幕变式外,也可以使用
PARAMETER ID,根据用户的个人设置,将默认值填充到选择屏幕 。
基础
1\. P ARAMETER ID的创建:
SM30->TPARA->输入参数名称->保存
2\. 赋值和取值
DATA lv_werks type werks_d.SET PARAMETER ID 'WRK' FIELD '1000'.GET PARAMETER ID 'WRK' FIELD lv_werks.
3\. 使用SU01和SU3可以修改用户的 PARAMETER参数
4\. 建议:根据ABAP前辈建议,将需要用到的 PARAMETER定义到自定义的类静态属性中,在ABAP中使用zcl_memory_id=>wrk代替
'WRK',这样可以利用"使用位置列表"查找 PARAMETER 参数在哪些地方使用了。
*
GET PARAMETER ID zcl_memory_id=>wrk FIELD lv_werks.ABAP获取用户参数
方法我封装在了zcl_common=> g et_user_param中,代码如下
class-methods GET_USER_PARAM importing !IV_PARID type USPARAM-PARID returning value(RV_PARVA) type USPARAM-PARVA . METHOD get_user_param. DATA: lt_params TYPE ustyp_t_parameters, ls_param TYPE ustyp_parameters.
CALL FUNCTION 'SUSR_USER_PARAMETERS_GET' EXPORTING user_name = sy-uname TABLES user_parameters = lt_params[] EXCEPTIONS user_name_not_exist = 1 OTHERS = 2.
READ TABLE lt_params INTO ls_param WITH KEY parid = iv_parid. rv_parva = ls_param-parva. ENDMETHOD.使用方法:
在 INITIALIZATION事件中,添加如下示例代码
*
p_werks = zcl_common=>get_user_param( zcl_memory_id=>wrk ).
总结
完整代码见Github
地址:https://github.com/a87b01c14/ZCL_COMMON.git