单击第一个图标,第一个图标突出显示,单击第二个图标,第一个变灰,第二个突出显示,反之一样。单击history读取历史记录。

Controller ZCL_SUS_C_ORDER_CHANGE

  1. 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.

  1. 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.

  1. 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.

  1. 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"

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>

  1. 5.    Page attributes

zmodel TYPE REF TO    ZCL_SUS_C_ORDER_CHANGE_MODEL

  1. 6.    Controller attributes

ZORDERCHANGEMODEL     Instance Attribute  Public   Type Ref ToZCL_SUS_C_ORDER_CHANGE_MODEL

HISTORY_SHOW     Instance Attribute  Public   Type     CHAR1

  1. 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

  1. 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

转载于:https://www.cnblogs.com/goodsmith/p/4482527.html

SAP web 开发 (第二篇 bsp 开发 mvc模式 Part2 )相关推荐

  1. SAP web 开发 (第二篇 bsp 开发 mvc模式 Part1 )

    Model-View-Controller 简称MVC. 简单的说就是把数据处理,显示,页面事件及处理过程分离开来,企业应用多数都采用这种方式,多层架构的优缺点不再多言,google一下啥都知道. 在 ...

  2. Agv、Rgv 车辆控制调度系统开发第二篇

    系列文章目录 Agv.Rgv 车辆控制调度系统开发第二篇(理论片) 文章目录 系列文章目录 前言 一.什么是调度系统? 问题 二.问题分析 1.寻找路线 2.避碰算法 3.移车算法 4.解锁算法 总结 ...

  3. iOS开发UI篇—IOS开发中Xcode的一些使用技巧

    iOS开发UI篇-IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文 ...

  4. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

  5. android 串口开发第二篇:利用jni实现android和串口通信

    一:串口通信简介 由于串口开发涉及到jni,所以开发环境需要支持ndk开发,如果未配置ndk配置的朋友,或者对jni不熟悉的朋友,请查看上一篇文章,android 串口开发第一篇:搭建ndk开发环境以 ...

  6. 使用 ASP.NET Core, Entity Framework Core 和 ABP 创建N层Web应用 第二篇

    介绍 这是"使用 ASP.NET Core ,Entity Framework Core 和 ASP.NET Boilerplate 创建N层 Web 应用"系列文章的第二篇.以下 ...

  7. [导入]ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述.zip(8.80 MB)

    讲座内容: ASP.NET MVC框架是既ASP.NET WebForms后的又一种开发方式.它提供了一系列优秀特性,使ASP.NET开发人员拥有了另一个选择.本次课程将对MVC模式ASP.NET M ...

  8. cesium 页面截图_Cesium开发入门篇 | 02Cesium开发环境搭建及第一个示例

    01 开发环境准备 利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React.Vue.AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍 ...

  9. 金蝶EAS开发 第二弹:了解开发工具与基本使用(下)

    承接上一篇:金蝶EAS开发 第一弹:了解开发工具与基本使用(上) ,我们继续! 3.3. client目录是客户端相关的:里面可以配置各种功能的UI: 3.3.1. UI配置文件: 3.3.2. UI ...

最新文章

  1. java 子类中this,请问子类中的构造方法中 this(name,beijing,school);是啥意思
  2. icem网格划分如何给内部面网格_icem结构化网格划分 ICEM里面设置一下就可以自动划分网格,为什么要用块?...
  3. ElasticSearch创建、修改、获取、删除、索引Indice mapping和Index Template案例
  4. c语言学习-计算200-300之间的偶数和并将和打印输出
  5. ubuntu dpkg
  6. 学习笔记88—spyder生成的图单独窗口显示
  7. android获取网络视频缩略图,Android 获取视频(本地和网络)缩略图的解决方案
  8. docker python3环境搭建
  9. Java实现生成二维码(含logo)
  10. 网站部署——基于Django框架的天天生鲜电商网站项目系列博客(十六)
  11. 机器视觉可以应用到哪些领域,你都知道吗?
  12. 二进制与十六进制的转换
  13. NCA: Neighbourhood Components Analysis
  14. 怎样在PDF文件上添加印章
  15. 删除 linux 回收站内容,Linux删除文件实现回收站功能
  16. SVG格式化<PATH>说明
  17. 快捷键调出计算机桌面小工具,工具推荐:巧用快捷键秒变电脑高手
  18. 洛谷 P1878 舞蹈课 —— 小顶堆
  19. rust 入门笔记: rustlings(推荐一些学习rust语法的一些非常好的小练习)
  20. Q-Learning的学习及简单应用

热门文章

  1. msg计算机指令怎样用,WIN7里使用msg命令发送消息失败
  2. oracle修改某个数据类型,Oracle 修改某个字段的数据类型三种方式
  3. java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
  4. Eclipse中使用Checkstyle,checkstyle插件检查java代码的自定义配置文件:
  5. c语言中二维数组的结构体,怎么才能把结构体里面的二维数组打印出来?
  6. C语言:---gdb多线程调试
  7. select选中的值_selenium下拉框处理(select)
  8. 事务没提交的数据查的出来吗?_“金三银四”面试官:说说事务的ACID,什么是脏读、幻读?...
  9. Linux进程之间通信 信号
  10. 使用named_mutex实现锁机制