• FPM四:用OVP做查询跳转到明细


    前面做了查询的UIBB配置,在这边可以直接复用,查询的feeder class也就自动复用了。

    1.给查询的feeder class添加接口,继续继承form的接口。

    2.挨个实现每个方法,即使是用不到的也点进去激活。

      method IF_FPM_GUIBB_FORM~GET_DATA.
        CS_DATA = gw_table.
      endmethod.
      method IF_FPM_GUIBB_FORM~GET_DEFINITION.
        DATA:gt_data TYPE TABLE OF zhsb_order_index.
    
        eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( gw_table ).
    mo_catalog = eo_field_catalog.
    "action 参数是控制UIBB参数映射的EVENT定义。这里可以定义回车事件,下拉事件等 endmethod.

    3.给search的事件处理方法中添加跳转的事件(给选择单号的事件):

      METHOD if_fpm_guibb_search~process_event.
        DATA:lt_where TYPE rsds_where_tab.
        DATA:lt_order TYPE TABLE OF zhsb_order_index,
             ls_order TYPE zhsb_order_index.
        DATA:lc_para TYPE REF TO cl_fpm_parameter.
        DATA:ls_value TYPE string.
    
        DATA:ls_result TYPE zhsb_order_index.
    
    
        IF io_event->mv_event_id = if_fpm_guibb_search=>fpm_execute_search.
    
          TRY .
              CALL METHOD cl_fpm_guibb_search_conversion=>to_abap_select_where_tab
                EXPORTING
                  it_fpm_search_criteria = it_fpm_search_criteria
                  iv_table_name          = 'ZHSB_ORDER_INDEX'
                  io_field_catalog       = mo_catalog
                IMPORTING
                  et_abap_select_table   = lt_where.
            CATCH cx_fpmgb.
          ENDTRY.
    
          SELECT * FROM zhsb_order_index INTO TABLE lt_order UP TO iv_max_num_results ROWS WHERE (lt_where).
          IF sy-subrc = 0.
            LOOP AT lt_order INTO  ls_order.
              MOVE-CORRESPONDING ls_order TO ls_result.
              APPEND ls_result TO gt_table.
            ENDLOOP.
            ev_result = 'OK'.
          ENDIF.
    
        ELSEIF io_event->mv_event_id = 'FPM_RESULT_SEL'.
          DATA : lo_event TYPE REF TO       cl_fpm_event,
                 lo_fpm   TYPE REF TO       if_fpm.
    
          READ TABLE gt_table INTO gw_table INDEX 4.
          lo_event ?= cl_fpm_event=>create_by_id( 'FPM_CHANGE_CONTENT_AREA' ).
    
          lo_event->mo_event_data->set_value(
            EXPORTING
              iv_key   = 'TARGET_CONTENT_AREA'
              iv_value = 'PAGE_2'
          ).
          lo_fpm ?= cl_fpm=>get_instance( ).
    
          lo_fpm->raise_event( lo_event ).
        ENDIF.
      ENDMETHOD.

    4.打开FPM_WB.新建empty application。

    选择包,保存。

    5.点击,编辑配置

    进入到概览页配置界面:

    修改第一页描述,并添加第二页。

    6.给page 1分配UIBB配置类型Search.

    配置编号选择前一篇中的配置编号,复用。

    选择UIBB,点击配置。

    修改结果中的单号字段,改为link to action。保存并返回.

    这时候可以点击运行,试看一下。

    很好,这第一页没问题了,开始加第二页。

    7.配置第二页:

    添加FORM组件

    输入配置号,点击UIBB配置。

    点击OK.

    填写Feeder class.

     

    保存并返回。

    8.给PAGE2添加按钮,并指向page 1.

    保存,运行。

    et_action_definition

  • 相关阅读:
    关于CSS网页布局id与class命名的问题
    JavaScript弹出层技术探讨文章收藏
    Jquery实现弹窗
    Asp.net中时间格式化的几种方法
    新建商品时,导入商品,随机文件名称的形成
    Linux问题:Crontab 执行shell脚本时相对路径的问题,不能识别。
    linux环境php扩展pdo_mysq安装l错误
    测试php代码的运行时间
    Apache的工作方式
    PHP时间处理
  • 原文地址:https://www.cnblogs.com/sapSB/p/10100697.html
Copyright © 2020-2023  润新知