WDA基础十七:ALV不同行显示不同下拉

1.给ALV结构添加VALUE SET字段。

2.初始化时将TYPE_SET字段设置为值范围。

METHOD wddoinit .
  DATA:
    lo_node      TYPE REF TO if_wd_context_node,
    lo_elem      TYPE REF TO if_wd_context_element,
    ls_order     TYPE wd_this->element_order,
    lt_order     TYPE wd_this->elements_order,
    ls_value_set TYPE wdr_context_attr_value.
  CLEAR:ls_order.
  ls_order-object_id = '0210002047'.
  ls_order-process_type = 'ZSV1'.
  ls_value_set-value = 'ZSV2'.
  ls_value_set-text = 'ZSV2'.
  APPEND ls_value_set TO ls_order-type_set.
  ls_value_set-value = 'ZSV3'.
  ls_value_set-text = 'ZSV3'.
  APPEND ls_value_set TO ls_order-type_set.
  ls_value_set-value = 'ZSV4'.
  ls_value_set-text = 'ZSV4'.
  APPEND ls_value_set TO ls_order-type_set.
  APPEND ls_order TO lt_order.
  CLEAR:ls_order.
  ls_order-object_id = '0210002048'.
  ls_order-process_type = 'ZSO1'.
  ls_value_set-value = 'ZSO2'.
  ls_value_set-text = 'ZSO2'.
  APPEND ls_value_set TO ls_order-type_set.
  ls_value_set-value = 'ZSO3'.
  ls_value_set-text = 'ZSO3'.
  APPEND ls_value_set TO ls_order-type_set.
  ls_value_set-value = 'ZSO4'.
  ls_value_set-text = 'ZSO4'.
  APPEND ls_value_set TO ls_order-type_set.
  APPEND ls_order TO lt_order.
  lo_node = wd_context->get_child_node( name = wd_this->wdctx_order ).
  lo_node->bind_table( lt_order ).
  lo_node->set_lead_selection_index( -1 ).
* use ALV
  DATA:
    lr_salv_wd_table_usage TYPE REF TO if_wd_component_usage,
    lr_salv_wd_table       TYPE REF TO iwci_salv_wd_table,
    lr_table               TYPE REF TO cl_salv_wd_config_table,
    lr_column              TYPE REF TO cl_salv_wd_column,
    lr_dropdown            TYPE REF TO cl_salv_wd_uie_dropdown_by_idx.
  lr_salv_wd_table_usage = wd_this->wd_cpuse_alv( ).
  IF lr_salv_wd_table_usage->has_active_component( ) IS INITIAL.
    lr_salv_wd_table_usage->create_component( ).
  ENDIF.
* get reference to ALV component interface
  lr_salv_wd_table = wd_this->wd_cpifc_alv( ).
  lr_salv_wd_table->set_data( lo_node ).
* get ConfigurationModel from ALV Component
  lr_table = lr_salv_wd_table->get_model( ).
* get the column
  CALL METHOD lr_table->if_salv_wd_column_settings~get_column
    EXPORTING
      id    = 'PROCESS_TYPE'
    RECEIVING
      value = lr_column.
* create UI element
  CREATE OBJECT lr_dropdown
    EXPORTING
      selected_key_fieldname = 'PROCESS_TYPE'.
* set the value set
  CALL METHOD lr_dropdown->set_valueset_fieldname
    EXPORTING
      value = 'TYPE_SET'.
* set editor
  CALL METHOD lr_column->set_cell_editor
    EXPORTING
      value = lr_dropdown.
* 很重要。Dropdownlist 才会出现
  CALL METHOD lr_table->if_salv_wd_table_settings~set_read_only
    EXPORTING
      value = abap_false.
ENDMETHOD.

效果展示:

 

转载于:https://www.cnblogs.com/sapSB/p/10174697.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WDA是一个用于iOS端自动化测试的Python库,而allure是一个用于生成漂亮报告的工具。要将WDA测试结果集成到allure报告中,可以使用pytest和allure-pytest插件来实现。 首先需要安装pytest和allure-pytest插件,可以使用以下命令进安装: ``` pip install pytest pip install allure-pytest ``` 安装完成后,在pytest的测试用例中,可以使用pytest的fixture和allure的装饰器来将WDA测试结果保存到allure报告中。下面是一个示例: ```python import wda import allure import pytest @pytest.fixture(scope='module') def client(): c = wda.Client() return c @allure.feature('WDA测试') class TestWDA(object): @allure.story('测试页面标题') def test_title(self, client): title = client.title() assert title == 'Example Page' allure.attach(client.screenshot(format='png'), name='screenshot', attachment_type=allure.attachment_type.PNG) @allure.story('测试按钮点击') def test_button(self, client): btn = client(name='example_button') btn.tap() assert btn.exists allure.attach(client.screenshot(format='png'), name='screenshot', attachment_type=allure.attachment_type.PNG) ``` 在上面的示例中,使用了一个名为`client`的fixture来获取WDA的客户端连接,然后使用`allure.feature`和`allure.story`装饰器来定义测试用例的特性和故事。在每个测试用例中,使用了`allure.attach`方法将截图保存到allure报告中。 最后,可以使用以下命令来运测试,并生成allure报告: ``` pytest --alluredir ./allure-results allure serve ./allure-results ``` 这样就可以将WDA测试结果集成到allure报告中,并且在报告中查看测试结果和截图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值