个性化:if_wd_personalization-> load_config_by_key不起作用

2020-08-31 21:05发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个wd-abap表单,其中在自定义表(如个性化表)中保存了(选择选项的)值,但它们是自编程的。

下面的表格是个性化的SALV_WD_TABLE表。

当选择了一个变体(来自)时,我的客户希望程序将"他的"变体的名称与表的个性化视图相关联。 如果有一个同名的,那么我必须在alv中调用此视图(例如,手动更改dropDownBox以进行个性化设置)。

我使用了很好的提示 http://scn.sap.com/thread/1986147

1。 当我使用

lo_pers-> load_config_by_key" <-不起作用:很遗憾,视图未加载。

lo_pers-> set_default_variant" <-此行有效

我对alv的预设是:

lv_value-> if_salv_wd_table_settings〜set_implicit_p13n_enabled(abap_true)。结果,lv_value-> if_salv_wd_std_functions〜set_dialog_settings_allowed(abap_true)。结果,lv_value-> if_salv_wd_std_functions〜set_view_list_allowed(abap_true)。结果,lv_value-> if_salv_wd_std_functions〜set_view_quick_save_allowed(abap_true )。

2。 在webdynpro abap中是否存在用于保存表单的selct选项字段的标准解决方案?

非常感谢您的帮助!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个wd-abap表单,其中在自定义表(如个性化表)中保存了(选择选项的)值,但它们是自编程的。

下面的表格是个性化的SALV_WD_TABLE表。

当选择了一个变体(来自)时,我的客户希望程序将"他的"变体的名称与表的个性化视图相关联。 如果有一个同名的,那么我必须在alv中调用此视图(例如,手动更改dropDownBox以进行个性化设置)。

我使用了很好的提示 http://scn.sap.com/thread/1986147

1。 当我使用

lo_pers-> load_config_by_key" <-不起作用:很遗憾,视图未加载。

lo_pers-> set_default_variant" <-此行有效

我对alv的预设是:

lv_value-> if_salv_wd_table_settings〜set_implicit_p13n_enabled(abap_true)。结果,lv_value-> if_salv_wd_std_functions〜set_dialog_settings_allowed(abap_true)。结果,lv_value-> if_salv_wd_std_functions〜set_view_list_allowed(abap_true)。结果,lv_value-> if_salv_wd_std_functions〜set_view_quick_save_allowed(abap_true )。

2。 在webdynpro abap中是否存在用于保存表单的selct选项字段的标准解决方案?

非常感谢您的帮助!

付费偷看设置
发送
3条回答
SAP小黑
1楼-- · 2020-08-31 21:33

Josip,你好

请参阅下面的文档,希望对您有所帮助。

ALV视图变体中的选择变量

此致

Rama

嗨Rama,

感谢UI元素TimedTrigger的提示。

但是我不明白为什么以及如何对我的情况有帮助:

我认为有一个动作1。 这不是第一次。 可以随时随地。 这是一个简单的"列表框已更改"操作,已由用户完成。 因此,用户可以看到所有元素,列表框和alv。 那时两者看起来都很不错。

ALV是具有很多视图的个性化ALV。 正如我上面在alv上使用动态生成的选择选项进行搜索的形式一样,需求是还要在alv上方保存所有搜索字段的输入字段。 通过自己的解决方案来完成此操作。

现在,用户为所有搜索字段选择一个"自编程变体",并希望该程序足够智能,以便也可以调用与alv view = variant相同名称的视图。

如前所述,我找到了合适的方法" if_wd_personalization-> load_config_by_key",但未显示效果。 我现在尝试检查我有什么问题:

-方法无效或

-alv设置或

-刷新问题

-alv或

-视图

我想这是一个刷新问题,因为同一类的其他一些方法肯定可以工作,但它们不会立即影响外观:IF_WD_PERSONALIZATION-> set_default_variant,IF_WD_PERSONALIZATION-> DELETE_NEW。

也许它还取决于我的alv设置,但我在这里看不到问题:

数据:lr_cmp_usage类型参考if_wd_component_usage,

lrt_qi_settings类型参考if_salv_wd_table_settings。

lrt_qi_settings?= it_quot_conf_tab。

it_quot_conf_tab-> if_salv_wd_table_settings〜set_implicit_p13n_enabled(abap_true)。

it_quot_conf_tab-> if_salv_wd_std_functions〜set_dialog_settings_allowed(abap_true)。

it_quot_conf_tab-> if_salv_wd_std_functions〜set_view_list_allowed(abap_true)。

it_quot_conf_tab-> if_salv_wd_std_functions〜set_view_quick_save_allowed(abap_true)。

it_quot_conf_tab-> if_salv_wd_table_settings〜set_selection_mode(cl_wd_table => e_selection_mode-multi_no_lead)。

it_quot_conf_tab-> if_salv_wd_table_settings〜set_on_select_enabled(abap_true)。

* it_quot_conf_tab-> if_salv_wd_table_settings〜set_refresh_on_data_change()。

**设置列宽

lrt_qi_settings-> set_fixed_table_layout(abap_true)。

lrt_qi_settings-> set_width('100%')。

lrt_qi_settings-> set_visible_row_count(1000)。

lrt_qi_settings-> set_display_empty_rows(abap_false)。

SAP浪
3楼-- · 2020-08-31 21:13

嗨。

我们在控制器组件中初始化alv后进行了更新(我的方法)

 方法post_init_alv。
   类型:
     开始于ty_s_column,
       ID类型salv_wd_s_column-id,
       fixed_position TYPE salv_wd_s_column-fixed_position,
       可见TYPE salv_wd_s_column-visible,
       archive_column TYPE salv_wd_s_column-hierarchy_column,
       位置类型salv_wd_s_column-position,
       宽度类型salv_wd_s_column-width,
     结束于ty_s_column。

   数据:
     lo_alv_controller类型参考iwci_salv_wd_table,
     lo_alv_config类型参考cl_salv_wd_config_table,
     lo_component类型参考cl_wdr_component,
     lo_custom_component类型参考cl_wdr_delegating_custom,
     lo_alv_usage类型参考if_wd_component_usage,
     lo_node类型参考if_wd_context_node,
     lt_column ty_s_column的类型表。

   wd_this-> wd_get_api()-> get_personalization_manager()-> delete_new(wd_this-> wd_get_api()-> get_configuration_key())。

   lo_alv_usage = wd_this-> wd_cpuse_alv_table()。
   如果lo_alv_usage-> has_active_component()是INITIAL。
     lo_alv_usage-> create_component()。
   万一。

   lo_alv_controller = wd_this-> wd_cpifc_alv_table()。
   lo_alv_config = lo_alv_controller-> get_model()。
   lo_component?= lo_alv_controller-> wd_get_api()。
   lo_custom_component?= lo_component->控制器[name ='SALV_WD_MODEL_CTLR']-控制器。

   lo_node = lo_custom_component-> get_context()-> root_node-> get_child_node('SALV_WD_CONFIG_TABLE')。
   lo_node = lo_node-> get_child_node('COLUMN_SETTINGS')。
   lo_node = lo_node-> get_child_node('COLUMN')。

   环回lo_alv_config-> if_salv_wd_column_settings〜get_columns()分配字段符号()。
     将初始行添加到lt_column ASSIGNING FIELD-SYMBOL()。
      -id =  -id。
      -fixed_position =  -r_column-> fixed_position。
      -visible =  -r_column-> visible。
      -hierarchy_column =  -r_column-> if_salv_wd_column_hierarchy〜hierarchy_column。
      -position =  -r_column-> position。
      -width =  -r_column-> width。
   结局。

   lo_node-> bind_table(lt_column)。

 终结法。
 

一周热门 更多>