设为首页 收藏本站
查看: 860|回复: 0

[经验分享] SAP web 开发 (第二篇 bsp 开发 mvc模式 Part2 )

[复制链接]

尚未签到

发表于 2015-9-20 13:24:49 | 显示全部楼层 |阅读模式
  单击第一个图标,第一个图标突出显示,单击第二个图标,第一个变灰,第二个突出显示,反之一样。单击history读取历史记录。
  Controller ZCL_SUS_C_ORDER_CHANGE

  • 1.    DO_INIT
method DO_INIT.

*CALL METHOD SUPER->DO_INIT

*    .

  if  ZORDERCHANGEMODEL is initial.

    create object ZORDERCHANGEMODEL.

    select * from usr02 into corresponding fields of table ZORDERCHANGEMODEL->ORDERCHANGE up to 5 rows.

    field-symbols <usr_tab> like line of ZORDERCHANGEMODEL->ORDERCHANGE.

    loop at ZORDERCHANGEMODEL->ORDERCHANGE assigning <usr_tab>.

      <usr_tab>-icons = '/sap/bc/bsp/sap/srmsus/images/order/ok-grau.gif'.

      <usr_tab>-cancel = '/sap/bc/bsp/sap/srmsus/images/order/cancel-grau.gif'.

    endloop.


    append initial line to ZORDERCHANGEMODEL->ORDERCHANGE_history.

    append initial line to ZORDERCHANGEMODEL->ORDERCHANGE_history.

    append initial line to ZORDERCHANGEMODEL->ORDERCHANGE_history.

    append initial line to ZORDERCHANGEMODEL->ORDERCHANGE_history.

    append initial line to ZORDERCHANGEMODEL->ORDERCHANGE_history.

    loop at ZORDERCHANGEMODEL->ORDERCHANGE_history assigning <usr_tab>.

      <usr_tab>-icons = '/sap/bc/bsp/sap/srmsus/images/order/ok-grau.gif'.

      <usr_tab>-cancel = '/sap/bc/bsp/sap/srmsus/images/order/cancel-grau.gif'.

      <usr_tab>-bname = 'history'.

    endloop.

    create object ZORDERCHANGEMODEL->io_iterator.

    ZORDERCHANGEMODEL->io_iterator->request = request.

  endif.

endmethod.


  • 2.    DO_REQUEST
method DO_REQUEST.

*CALL METHOD SUPER->DO_REQUEST

*    .

me->DISPATCH_INPUT( ).

data: lo_view type ref to if_bsp_page.

lo_view = create_view( view_name = '../order/order_change_response.inc' ).

lo_view->set_attribute( name = 'zmodel'  value = ZORDERCHANGEMODEL  ).

call_view( lo_view ).

  endmethod.

  • 3.    DO_HANDLE_EVENT
method DO_HANDLE_EVENT.

*CALL METHOD SUPER->DO_HANDLE_EVENT

*  EXPORTING

*    EVENT           =

*    HTMLB_EVENT     =

**    HTMLB_EVENT_EX  =

*    GLOBAL_MESSAGES =

*  RECEIVING

*    GLOBAL_EVENT    =

*    .

data lr_tableview type ref to CL_HTMLB_TABLEVIEW.

  lr_tableview ?= cl_htmlb_manager=>get_data(

                                request = me->request

                                     id = 'zorder.cuschanged_t2'

                                   name = 'tableView' ).

  IF  NOT LR_TABLEVIEW IS INITIAL.

    IF LR_TABLEVIEW->DATA->SERVER_EVENT = 'onCellClick'

             AND LR_TABLEVIEW->DATA->ID = 'zorder.cuschanged_t2'

             AND LR_TABLEVIEW->DATA->NAME = 'tableView'

             AND LR_TABLEVIEW->DATA->COLUMN_KEY = 'ICONS'

             AND LR_TABLEVIEW->DATA->COLUMN_INDEX > 0

             AND LR_TABLEVIEW->DATA->ROW_INDEX > 0.

      field-symbols: <usr_tab> type zusr02,

                     <usr_cancel> type zusr02.

      data usr_tab type zusr02.

      IF ZORDERCHANGEMODEL->HISTORY_SHOW = ''.

      read table ZORDERCHANGEMODEL->ORDERCHANGE  index LR_TABLEVIEW->DATA->ROW_INDEX assigning <usr_tab>.

      ELSE.

            read table ZORDERCHANGEMODEL->ORDERCHANGE_history  index LR_TABLEVIEW->DATA->ROW_INDEX assigning <usr_tab>.

      endif.

      if <usr_tab>-icons = '/sap/bc/bsp/sap/srmsus/images/order/ok.gif'.

        <usr_tab>-icons = '/sap/bc/bsp/sap/srmsus/images/order/ok-grau.gif'.

      else.

        <usr_tab>-icons = '/sap/bc/bsp/sap/srmsus/images/order/ok.gif'.

        <usr_tab>-cancel = '/sap/bc/bsp/sap/srmsus/images/order/cancel-grau.gif'.

      endif.


    ENDIF.

    IF LR_TABLEVIEW->DATA->SERVER_EVENT = 'onCellClick'

             AND LR_TABLEVIEW->DATA->ID = 'zorder.cuschanged_t2'

             AND LR_TABLEVIEW->DATA->NAME = 'tableView'

             AND LR_TABLEVIEW->DATA->COLUMN_KEY = 'CANCEL'

             AND LR_TABLEVIEW->DATA->COLUMN_INDEX > 0

             AND LR_TABLEVIEW->DATA->ROW_INDEX > 0.

      IF ZORDERCHANGEMODEL->HISTORY_SHOW = ''.

      read table ZORDERCHANGEMODEL->ORDERCHANGE  index LR_TABLEVIEW->DATA->ROW_INDEX assigning <usr_tab>.

      ELSE.

            read table ZORDERCHANGEMODEL->ORDERCHANGE_history  index LR_TABLEVIEW->DATA->ROW_INDEX assigning <usr_tab>.

      endif.

      if <usr_tab>-cancel = '/sap/bc/bsp/sap/srmsus/images/order/cancel.gif'.

        <usr_tab>-cancel = '/sap/bc/bsp/sap/srmsus/images/order/cancel-grau.gif'.

      else.

        <usr_tab>-cancel = '/sap/bc/bsp/sap/srmsus/images/order/cancel.gif'.

        <usr_tab>-icons = '/sap/bc/bsp/sap/srmsus/images/order/ok-grau.gif'.

      endif.

    endif.

  ENDIF.

if not htmlb_event is initial.

   if HTMLB_EVENT->SERVER_EVENT = 'onhistoryclick'.

      ZORDERCHANGEMODEL->HISTORY_SHOW = 'X'.

   elseif HTMLB_EVENT->SERVER_EVENT = 'onprocessclick'.

      ZORDERCHANGEMODEL->HISTORY_SHOW = ''.

   endif.

endif.

endmethod.

  

  • 4.    View
<%@page language="abap" otrTrim="true" %>

<%@extension name="htmlb" prefix="htmlb" %>

<%@extension name="SRMSUS" prefix="sus" %>

<%@extension name="xhtmlb" prefix="xhtmlb" %>

<%

  INCLUDE bbp_sus_ui_const.

%>

<!-- messages controller -->

<%@include file="framework/carrier_view_message.inc" %>



<htmlb:tray id = "orderchange"

             title = "Order Change Response"

             width = "100%">

             <htmlb:gridLayout id = "GR_RPT_Query"

          rowSize = "3"

          columnSize = "1"

          cellSpacing = "10"

          width = "100%">

           <htmlb:gridLayoutCell rowIndex = "1"

                     columnIndex = "1"

                     width = "100%" >

<% if zmodel->history_show <> 'X'. %>

             <td align = "right">

             <htmlb:link id="history"

                       text="history"

                       

                       ></htmlb:link>

             </td>

<% else. %>

             <td align = "right">

             <htmlb:link id="inprocess"

                       text="inprocess"

                       

                       ></htmlb:link>

             </td>

<% endif.%>.

             </htmlb:gridLayoutCell>

          <htmlb:gridLayoutCell rowIndex = "2"

                     columnIndex = "1"

                     width = "100%" >

<% if zmodel->history_show <> 'X'. %>

<htmlb:tableView id="t2"

                       emptyTableText  = "<%= otr(BBP_SUS_UI/LIST_ORDER_NO_ENTRIES_FOUND) %>"

                       sort            = "SERVER"

                       onHeaderClick   = "onmyHeaderClick"

                       onNavigate      = "onMyNavigate"

                       onRowSelection  = "onMyRowSelection"

                       visibleRowCount = "10"

                       visibleFirstRow = "1"

                       iterator        = "<%=zmodel->io_iterator%>"

                       table="//zmodel/ORDERCHANGE">

           <htmlb:tableViewColumn columnName="ICONS"

                               onCellClick="onCellClick"


                                width="5"

       ></htmlb:tableViewColumn>

       <htmlb:tableViewColumn columnName="CANCEL"

                               onCellClick="onCellClick"


                               width="5"


       ></htmlb:tableViewColumn>

       <htmlb:tableViewColumn columnName="BNAME"

                               onCellClick="onCellClick"

                                title="BNAME"


       ></htmlb:tableViewColumn>

</htmlb:tableView>

<% else. %>

<htmlb:tableView id="t2"

                       emptyTableText  = "<%= otr(BBP_SUS_UI/LIST_ORDER_NO_ENTRIES_FOUND) %>"

                       sort            = "SERVER"

                       onHeaderClick   = "onmyHeaderClick"

                       onNavigate      = "onMyNavigate"

                       onRowSelection  = "onMyRowSelection"

                       visibleRowCount = "10"

                       visibleFirstRow = "1"

                       iterator        = "<%=zmodel->io_iterator%>"

                       table="//zmodel/ORDERCHANGE_HISTORY">

             <htmlb:tableViewColumn columnName="ICONS"

                               onCellClick="onCellClick"


                                width="5"

       ></htmlb:tableViewColumn>

       <htmlb:tableViewColumn columnName="CANCEL"

                               onCellClick="onCellClick"


                               width="5"


       ></htmlb:tableViewColumn>

       <htmlb:tableViewColumn columnName="BNAME"

                               onCellClick="onCellClick"

                                title="BNAME"


       ></htmlb:tableViewColumn>

</htmlb:tableView>

     <% endif.%>.



</htmlb:gridLayoutCell>


  <htmlb:gridLayoutCell rowIndex = "3"

                     columnIndex = "1"

                     width = "100%" >

        <htmlb:button id="update"

                      text = "Update"

                      onClick = "onupdateclick"

        />

  </htmlb:gridLayoutCell>

</htmlb:gridLayout>

</htmlb:tray>

  

  • 5.    Page attributes
  zmodel TYPE REF TO    ZCL_SUS_C_ORDER_CHANGE_MODEL
  

  • 6.    Controller attributes
  ZORDERCHANGEMODEL     Instance Attribute  Public   Type Ref ToZCL_SUS_C_ORDER_CHANGE_MODEL
  HISTORY_SHOW     Instance Attribute  Public   Type     CHAR1

  • 7.    Model ZCL_SUS_C_ORDER_CHANGE_MODEL
  Attributes:
  ORDERCHANGE Instance Attribute  Public   Type     ZTESTUSR01
  IO_ITERATOR   Instance Attribute  Public   Type Ref To ZCL_SUS_C_ORD_C_ITERATOR
  ORDERCHANGE_HISTORY  Instance Attribute  Public   Type     ZTESTUSR01
  HISTORY_SHOW     Instance Attribute  Public   Type     CHAR1

  • 8.    ITERATOR ZCL_SUS_C_ORD_C_ITERATOR
  Interface IF_HTMLB_TABLEVIEW_ITERATOR
  Attributes:
  M_ROW_REF   Instance Attribute  Public   Type Ref To ZUSR02
  REQUEST    Instance Attribute  Public   Type Ref To IF_HTTP_REQUEST
method IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_ROW_START.

m_row_ref ?= p_row_data_ref.

  endmethod.
method IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START.

  data lr_tableview type ref to CL_HTMLB_TABLEVIEW.

*  lr_tableview ?= cl_htmlb_manager=>get_data(

*                                request = request

*                                     id = 't2'

*                                   name = 'tableView' ).

  field-symbols <icons_name> type char50.

  field-symbols:

                 <ls_data> type any,

                 <ls_icons> type any,

                 <ls_kyfs> type any.

  DATA: icon_plane TYPE STRING.

  CASE p_column_key.

    WHEN 'CANCEL'.


      ASSIGN P_ROW_DATA_REF->* to <ls_data>.

      assign component 'CANCEL' of  structure <ls_data> TO <ls_icons>.

      icon_plane = <ls_icons>.

      p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id src = icon_plane ).

    WHEN 'ICONS'.


      ASSIGN P_ROW_DATA_REF->* to <ls_data>.

      assign component 'ICONS' of  structure <ls_data> TO <ls_icons>.

      icon_plane = <ls_icons>.

      p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id src = icon_plane ).

    WHEN 'BNAME'.

      ASSIGN P_ROW_DATA_REF->* to <ls_data>.

      assign component 'BNAME' of  structure <ls_data> TO <ls_icons>.

      icon_plane = <ls_icons>.

      p_replacement_bee = CL_HTMLB_TEXTVIEW=>FACTORY( id = p_cell_id text = icon_plane ).


  ENDCASE.

endmethod.

  
  转:http://blog.chinaunix.net/uid-465882-id-2115966.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-116276-1-1.html 上篇帖子: hdu 4294 第一发SAP 下篇帖子: Logistics在SAP中为什么"后勤"的意思(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表