FPM Search里给查询条件加OVS搜索帮助
FPM里的OVS用法基本和WDA一致。
1,将OVS类添加到SEARCH.(可以单独写个类,因为这里为了方便,就和SEARCH放一起了)

IF_FPM_GUIBB_OVS~HANDLE_PHASE_0 Phase 0 (OVS config, c.f. IF_WD_OVS->set_configuration( ))“设置显示字段
IF_FPM_GUIBB_OVS~HANDLE_PHASE_1 Phase 1 (initialize fields, c.f. set_input_structure( ))"设置输入查询条件
IF_FPM_GUIBB_OVS~HANDLE_PHASE_2 Phase 2 (search, c.f. query_parameters, set_output_table( ))"查询处理
IF_FPM_GUIBB_OVS~HANDLE_PHASE_3 Phase 3 (set return value, c.f. selection)"返回结果
先在SEARCH的定义里,定义使用OVS。
METHOD if_fpm_guibb_search~get_definition.
DATA:gt_field TYPE TABLE OF fpmgb_s_searchfield_descr,
gw_field TYPE fpmgb_s_searchfield_descr,
gt_value TYPE fpmgb_t_namevalue,
gw_value TYPE fpmgb_s_namevalue. DEFINE setv.
gw_value-value = &.
gw_value-name = &.
APPEND gw_value TO gt_value.
END-OF-DEFINITION. eo_field_catalog_attr ?= cl_abap_structdescr=>describe_by_name( 'ZCRMJP002' ).
"品牌下拉
gw_field-name = 'ZZZBRAND'.
SELECT line_key AS value value1 AS name INTO CORRESPONDING FIELDS OF TABLE gt_value FROM zcrmt_domain_t WHERE tab_name = 'ZTVS_BRAND' AND spras = sy-langu.
gw_field-enumeration[] = gt_value[].
gw_field-is_of_type = 'EN'.
APPEND gw_field TO et_field_description_attr. "inprogress 下拉
CLEAR:gt_value[],gw_field.
gw_field-name = 'ZZDLYRSN'.
SELECT estat AS value text AS name INTO CORRESPONDING FIELDS OF TABLE gt_value FROM zdelay_reason WHERE spras = 'J'."sy-langu.
gw_field-enumeration[] = gt_value[].
gw_field-is_of_type = 'EN'.
APPEND gw_field TO et_field_description_attr. "inprogress 下拉
CLEAR:gt_value[],gw_field.
gw_field-name = 'DATE_RANGE'.
setv 'D+0' 'D+0 今日'.
setv 'D-1' 'D-1 昨日'.
setv 'M+0' 'M+0 今月'.
setv 'M-1' 'M-1 先月'.
* setv 'W+0' 'W+0 今週'.
* setv 'W-1' 'W-1 先週'.
setv 'Y+0' 'Y+0 今年'.
setv 'Y-1' 'Y-1 去年'.
gw_field-enumeration[] = gt_value[].
gw_field-max_1_value = 'X'.
gw_field-is_of_type = 'EN'.
APPEND gw_field TO et_field_description_attr. "CHARG TYPE 下拉
CLEAR:gt_value[],gw_field.
gw_field-name = 'ZZCHARG_TYPE'.
SELECT line_key AS value value1 AS name INTO CORRESPONDING FIELDS OF TABLE gt_value
FROM zcrmt_domain_t WHERE spras = 'J'"sy-langu.
AND tab_name = 'ZJP_REPAIR_CHARGETPYE'.
gw_field-enumeration[] = gt_value[].
gw_field-is_of_type = 'EN'.
APPEND gw_field TO et_field_description_attr. "Process Type 下拉
CLEAR:gt_value[],gw_field.
gw_field-name = 'PROCESS_TYPE'.
gw_field-ovs_name = 'ZCL_FPM_DEMO_SEARCH'.
APPEND gw_field TO et_field_description_attr.
ENDMETHOD.
定义结构:
METHOD IF_FPM_GUIBB_OVS~HANDLE_PHASE_0.
DATA:LT_COL TYPE WDR_NAME_VALUE_LIST,
LS_COL TYPE WDR_NAME_VALUE.
IF IV_FIELD_NAME = 'PROCESS_TYPE'.
LS_COL-NAME = 'PROCESS_TYPE'.
LS_COL-VALUE = 'Porcess Type'.
APPEND LS_COL TO LT_COL.
LS_COL-NAME = 'P_DESCRIPTION_20'.
LS_COL-VALUE = 'Description'.
APPEND LS_COL TO LT_COL.
ENDIF. IO_OVS_CALLBACK->SET_CONFIGURATION(
WINDOW_TITLE = 'Process Type'
* GROUP_HEADER = GROUP_HEADER
* LABEL_TEXTS = LABEL_TEXTS
TABLE_HEADER = 'Process Type List'
COLUMN_TEXTS = LT_COL
* COL_COUNT = COL_COUNT
* ROW_COUNT = ROW_COUNT
* TABLE_MULTI_SELECT = TABLE_MULTI_SELECT
). ENDMETHOD.
定义查询字段:
METHOD IF_FPM_GUIBB_OVS~HANDLE_PHASE_1.
TYPES:BEGIN OF TY_PROCE,
PROCESS_TYPE TYPE CRMT_PROCESS_TYPE,
DESCRIPTION TYPE CRMT_DESCRIPTION_20,
END OF TY_PROCE.
DATA:LS_INPUT TYPE TY_PROCE. IF IV_FIELD_NAME = 'PROCESS_TYPE'.
IO_OVS_CALLBACK->CONTEXT_ELEMENT->GET_ATTRIBUTE(
EXPORTING
NAME = IO_OVS_CALLBACK->CONTEXT_ATTRIBUTE
IMPORTING
VALUE = LS_INPUT-PROCESS_TYPE
).
IO_OVS_CALLBACK->SET_INPUT_STRUCTURE(
EXPORTING
INPUT = LS_INPUT
).
ENDIF.
ENDMETHOD.
查询及输出:
METHOD IF_FPM_GUIBB_OVS~HANDLE_PHASE_2.
TYPES:BEGIN OF TY_PROCE,
PROCESS_TYPE TYPE CRMT_PROCESS_TYPE,
DESCRIPTION TYPE CRMT_DESCRIPTION_20,
END OF TY_PROCE.
DATA:GT_LIST TYPE TABLE OF TY_PROCE.
FIELD-SYMBOLS:<FS> TYPE TY_PROCE. ASSIGN IO_OVS_CALLBACK->QUERY_PARAMETERS->* TO <FS>.
IF <FS>-PROCESS_TYPE IS NOT INITIAL.
IF <FS>-PROCESS_TYPE CS '*'.
REPLACE ALL OCCURRENCES OF '*' IN <FS>-PROCESS_TYPE WITH '%'.
SELECT PROCESS_TYPE
P_DESCRIPTION_20 AS DESCRIPTION
INTO TABLE GT_LIST FROM CRMC_PROC_TYPE_T
WHERE LANGU = 'E' AND PROCESS_TYPE LIKE <FS>-PROCESS_TYPE.
ELSE.
SELECT PROCESS_TYPE
P_DESCRIPTION_20 AS DESCRIPTION
INTO TABLE GT_LIST FROM CRMC_PROC_TYPE_T
WHERE LANGU = 'E' AND PROCESS_TYPE = <FS>-PROCESS_TYPE.
ENDIF.
ELSE.
SELECT PROCESS_TYPE
P_DESCRIPTION_20 AS DESCRIPTION
INTO TABLE GT_LIST FROM CRMC_PROC_TYPE_T
WHERE LANGU = 'E'.
ENDIF.
IO_OVS_CALLBACK->SET_OUTPUT_TABLE(
EXPORTING
OUTPUT = GT_LIST
).
ENDMETHOD.
返回选择的值:
METHOD IF_FPM_GUIBB_OVS~HANDLE_PHASE_3.
TYPES:BEGIN OF TY_PROCE,
PROCESS_TYPE TYPE CRMT_PROCESS_TYPE,
DESCRIPTION TYPE CRMT_DESCRIPTION_20,
END OF TY_PROCE.
FIELD-SYMBOLS:<FS> TYPE TY_PROCE. ASSIGN IO_OVS_CALLBACK->SELECTION->* TO <FS>. IO_OVS_CALLBACK->CONTEXT_ELEMENT->SET_ATTRIBUTE(
EXPORTING
VALUE = <FS>-PROCESS_TYPE
NAME = IV_WD_CONTEXT_ATTR_NAME
).
ENDMETHOD.
FPM Search里给查询条件加OVS搜索帮助的更多相关文章
- cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现
cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html cassandra的索引查询和排序 cassandra的查询虽然很弱,但 ...
- jeecg 扩展封装查询条件 时间段查询
使用jeecg框架开发的小伙伴们知道,添加查询条件,通常是我们加一个配置(query="true")就可以将该字段设置为查询条件.简单方便.但是这样的配置查询条件仅适用于输入框输入 ...
- SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法
本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种 ...
- Spring NamedParameterJdbcTemplate命名参数查询条件封装, NamedParameterJdbcTemplate查询封装
Spring NamedParameterJdbcTemplate命名参数查询条件封装, NamedParameterJdbcTemplate查询封装 >>>>>> ...
- SolrJ查询条件组合查询实现——(十六)
带查询条件的实现原理: 查询按钮被包在一个大表单,表单还有三个隐藏域,一个商品筛选,一个 价格,一个排序,每次点击查询时候清空三个隐藏域,就带着一个大条件去查询;点击下面的筛选条件时,给隐藏域的筛选条 ...
- django orm 的查询条件
Django的ORM查询操作: 查询数据库操作是一个非常重要的技术.在Django中,查询一般就是使用filter.exclude.get三个方法来实现,在调用这些方法的时候传递不同的查询条件来实现复 ...
- mysql 特定查询条件下导致的大海捞针
order表: order type gmt_create type 取值: 0,1 其中0非常多,1非常少. 当查询条件里 select * from order where type=0 an ...
- mybatis-plus QueryWrapper自定义查询条件
mybatis-plus QueryWrapper自定义查询条件 mybatis-plus框架功能很强大,把很多功能都集成了,比如自动生成代码结构,mybatis crud封装,分页,动态数据源等等, ...
- mybatis 使用记录(二) 动态拼接查询条件
2016-12-16 阅读项目代码时,在项目的xml文件中发现如下写法: SELECT student_user_id FROM tbr_student_class WHERE 1=1 <if ...
随机推荐
- 【Java】Spring
AnnotationConfigApplicationContext:从一个或多个基于Jav a的配置类中加载Spring应用上下文.AnnotationConfigWebApplicationCon ...
- Maven打包插件Assembly(七)
1. 在 dubbo 的 provider 项目(实现类项目dubbo-service-impl)中 pom.xml 配置 assembly插件信息 <!-- 指定项目的打包插件信息 --> ...
- zz京东电商推荐系统实践
挺实在 今天为大家分享下京东电商推荐系统实践方面的经验,主要包括: 简介 排序模块 实时更新 召回和首轮排序 实验平台 简介 说到推荐系统,最经典的就是协同过滤,上图是一个协同过滤的例子.协同过滤主要 ...
- 几个简单js,普通写法和高逼格写法比较
1. 取数组中的数据,并对空值设置默认值: 常规写法: let arr = [0, 1, null, '', 'abc']; let newArr = []; arr.forEach((item, i ...
- 【JSP】${pageContext.request.contextPath}
取出部署的应用程序名或者是当前的项目名称 http://localhost:8080/demo1/a.jsp ${pageContext.request.contextPath}或<%=req ...
- vue-quill-editor富文本编辑器,添加了汉化样式却汉化不了
背景 今天在做后台管理系统时,尝试整合 vue-quill-editor 富文本编辑器,整合完成后,想进行汉化,查阅资料发现,只需自己定义样式替换即可. 原因 当进行汉化时,发现样式并没有替换,汉化失 ...
- <Tree> 110 124
110. Balanced Binary Tree 方法是如果我们发现子树不平衡,则不计算具体的深度,而是直接返回-1.那么优化后的方法为:对于每一个节点,我们通过checkDepth方法递归获得左右 ...
- 安装WIN7系统备忘录
安装WIN7系统备忘录因为安装WIN7设置项太多,制作RAMOS如果忘了某项设置,终归是不方便,记录如下:1.用WINNTSETUP安装到VHD中,安装时优化选项中建议勾选关闭休眠和虚拟内存功能(假设 ...
- Linux性能优化实战学习笔记:第二十七讲
一.案例环境描述 1.环境准备 2CPU,4GB内存 预先安装docker sysstat工具 2.温馨提示 案例中 Python 应用的核心逻辑比较简单,你可能一眼就能看出问题,但实际生产环境中的源 ...
- Web协议详解与抓包实战:HTTP1协议-如何传递 IP 地址?(6)
一.HTTP消息在服务器端的路由 Host 头部 规范与实现间是有差距的 二.代理服务器转发消息时的相关头部 1.Host 头部与消息的路由 2.客户端与源服务器间存在多个代理 三.如何传递 IP 地 ...