SAP web 开发 (第二篇 bsp 开发 mvc模式 Part2 )
單擊第一個(gè)圖標(biāo),第一個(gè)圖標(biāo)突出顯示,單擊第二個(gè)圖標(biāo),第一個(gè)變灰,第二個(gè)突出顯示,反之一樣。單擊history讀取歷史記錄。
Controller ZCL_SUS_C_ORDER_CHANGE
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.
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.
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.
?
<%@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"
???????????????????????onClick="onhistoryclick"
???????????????????????></htmlb:link>
?????????????</td>
?<% else. %>
?????????????<td align = "right">
?????????????<htmlb:link id="inprocess"
???????????????????????text="inprocess"
???????????????????????onClick="onprocessclick"
???????????????????????></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>
?
zmodel?TYPE REF TO????ZCL_SUS_C_ORDER_CHANGE_MODEL
?
ZORDERCHANGEMODEL?????Instance Attribute??Public???Type Ref ToZCL_SUS_C_ORDER_CHANGE_MODEL
HISTORY_SHOW?????Instance Attribute??Public???Type?????CHAR1
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
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.
?
轉(zhuǎn):http://blog.chinaunix.net/uid-465882-id-2115966.html
轉(zhuǎn)載于:https://www.cnblogs.com/goodsmith/p/4482527.html
總結(jié)
以上是生活随笔為你收集整理的SAP web 开发 (第二篇 bsp 开发 mvc模式 Part2 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [COGS58] 延绵的山峰
- 下一篇: Delphi开发的服务在Windows2