ABAP 省市县级联搜索帮助
在展示ABAP代码之前,先建立自建表ZCHENH006,表中包含两个关键字段 BELNR(地区编码),SDESC(地区描述)。
编码规则参考:身份证前六位地区编码规则,可参考我另外一篇Blog导入系统:ABAP自动生成身份证及校验。

在导入配置之后,可以参考以下ABAP代码。
*&---------------------------------------------------------------------*
*& REPORT ZCHENH014
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT zchenh014.
TABLES:zchenh006.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:p_sdesc TYPE zchenh006-sdesc DEFAULT '请选择省份信息'.
PARAMETERS:p_belnr TYPE zchenh006-belnr. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:p_sdesc1 TYPE zchenh006-sdesc DEFAULT '请选择市信息'.
PARAMETERS:p_belnr1 TYPE zchenh006-belnr. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:p_sdesc2 TYPE zchenh006-sdesc DEFAULT '请选择县/区信息'.
PARAMETERS:p_belnr2 TYPE zchenh006-belnr.
SELECTION-SCREEN END OF LINE. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_belnr.
PERFORM frm_f4_get_belnr USING '省' CHANGING p_belnr p_sdesc. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_belnr1.
PERFORM frm_f4_get_belnr USING '市' CHANGING p_belnr1 p_sdesc1. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_belnr2.
PERFORM frm_f4_get_belnr USING '县' CHANGING p_belnr2 p_sdesc2. AT SELECTION-SCREEN OUTPUT.
PERFORM frm_modify_screen. INITIALIZATION.
*&---------------------------------------------------------------------*
*& Form frm_f4_get_belnr
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_f4_get_belnr USING p_in CHANGING p_out1 p_out2.
DATA:lt_field TYPE dfies OCCURS WITH HEADER LINE,
lt_ret TYPE ddshretval OCCURS WITH HEADER LINE,
lt_dyn TYPE dselc OCCURS WITH HEADER LINE.
DATA:BEGIN OF lt_zchenh006 OCCURS ,
sdesc TYPE zchenh006-sdesc, " 省市县代码
belnr TYPE zchenh006-belnr, " 省市县描述
END OF lt_zchenh006.
DATA:lv_belnr().
IF p_in = '省'.
SELECT sdesc belnr
INTO TABLE lt_zchenh006
FROM zchenh006
WHERE belnr LIKE '%0000'.
ENDIF. IF p_in = '市'.
lv_belnr = p_belnr+() && '%'.
SELECT sdesc belnr
INTO TABLE lt_zchenh006
FROM zchenh006
WHERE belnr LIKE lv_belnr
AND belnr LIKE '%00'
AND belnr NE p_in
AND sdesc NE '县'.
ENDIF. IF p_in = '县'.
lv_belnr = p_belnr1+() && '%'.
SELECT sdesc belnr
INTO TABLE lt_zchenh006
FROM zchenh006
WHERE belnr NOT LIKE '%00'
* AND belnr NOT LIKE '%01'
AND belnr LIKE lv_belnr
AND belnr NE p_belnr1.
ENDIF. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'ZCHENH006-BELNR'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P_BELNR'
window_title = '自定义搜索帮助'
value_org = 'S'
callback_program = sy-repid
TABLES
value_tab = lt_zchenh006
field_tab = lt_field
return_tab = lt_ret
dynpfld_mapping = lt_dyn
EXCEPTIONS
parameter_error =
no_values_found =
OTHERS = .
LOOP AT lt_ret.
p_out1 = lt_ret-fieldval.
SELECT SINGLE sdesc INTO p_out2 FROM zchenh006 WHERE belnr = p_out1.
IF sy-subrc NE .
p_out2 = '无效编号'.
ENDIF.
ENDLOOP.
ENDFORM. " frm_f4_get_belnr
*&---------------------------------------------------------------------*
*& Form FRM_MODIFY_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_modify_screen .
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_SDESC'.
screen-input = .
IF p_sdesc IS INITIAL.
screen-active = .
ENDIF.
WHEN 'P_SDESC1'.
screen-input = .
IF p_sdesc1 IS INITIAL.
screen-active = .
ENDIF.
WHEN 'P_SDESC2'.
screen-input = .
IF p_sdesc2 IS INITIAL.
screen-active = .
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP. ENDFORM. " FRM_MODIFY_SCREEN
但是该代码有个瑕疵,每次选择完毕后,需要按下"回车",才能显示完整的地区描述信息。
ABAP 省市县级联搜索帮助的更多相关文章
- distpicker 省市县级联
一.前言:想着每次写项目都要遇到省市县级联,就想找一个比较简单好用的插件来...感觉挺不错~~~ 二.例子: html : 效果: 还有很多种用法,我这里只放一种,插件文件里index.html有介绍 ...
- [SAP ABAP开发技术总结]搜索帮助Search Help (F4)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP DEMO 年月的搜索帮助
效果图: *&---------------------------------------------------------------------* *& Report YCX_ ...
- extjs 省市县级联
Ext.define('State', { extend: 'Ext.data.Model', fields: [ {type: 'string', name: 'nevalue'}, {type: ...
- 【前端】Element-UI 省市县级联选择器 JSON数据
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/element_cascader.html 不想自己处理的就直接下载吧 http://shamoyuu.bj.bce ...
- postgresql 10 ltree 使用说明
官方文档 https://www.postgresql.org/docs/10/static/ltree.html ltree是俄罗斯Teodor Sigaev和Oleg Bartunov共同开发的P ...
- 基于MVC设计模式的两种软件架构简介
第一种模式,可处理组合命令,具有撤销(Undo)和重做(Redo)功能,支持多种数据库类型 1.Action采用组合模式,既可以代表一个简单的动作,也可以代表一组动作组合.List<Ac ...
- mobile plugin
http://fronteed.com/iCheck/ http://spritely.net/documentation/ http://www.mobilexweb.com/blog/mobile ...
- Select2使用方法汇总
引用: <script src="~/Content/plugins/select2/select2.min.js"></script> 1.简单使用 $. ...
随机推荐
- 转载 单例(Singleton)模式)的误区
在创建型模式中,单例(Singleton)模式和原型(Prototype)模式相对来说其用意更为简单明了.单例(Singleton)模式确保某类只有一个实例,且自行实例化并向整个系统提供这个实例:原型 ...
- python retrying retry
在写业务时, 有个业务需要在return某种情况下,进行重试. 代码类似于下面 from retrying import retry def verify(self): try: return sel ...
- 2分钟理解文件IO -我对文件IO的理解与实验对比
本文介绍了不同的IO方式以及他们之间的效率比较 1.一次读取写入单个字节(读取400M的文件浪费了很久,等了很久没读取完成,证明其效率很差) public class CopyFileDemo { p ...
- PC timeline
https://news.microsoft.com/facts-about-microsoft/ 日期 事件 1975年 微软成立 1981年 ...
- Linux服务安装配置总结
- ubuntu彻底卸载opencv
说正事之前,先啰嗦两句背景,算是拿个小本本记下了. 我本打算下载opencv2.4.在github上找到源码,在Branch处选择切换到2.4,然后复制URL,在terminal里面使用git clo ...
- Redis和Memcache区别,优缺点对比
1. Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等. 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供li ...
- win10系统IE浏览器中无法显示Java国际化的问题
http://jingyan.baidu.com/article/656db918e37914e381249c9f.html?qq-pf-to=pcqq.c2c 自从装上Win10系统后,跟随前些IE ...
- html/css/js-横向滚动条的实现
在前端UI设计时,网页的制作很麻烦,深有感悟!碰到太多的不懂,或是第一次见,就要去网上找资料!横向滚动条就是我遇到麻烦中其中的一个,其实也 很简单,只是在几次项目中都用到了这个横向滚动条所以就拿出来说 ...
- gradle-4.1-all.zip离线包下载 极速 android studio2.3 3.0编译必备
http://download.csdn.net/download/yongheng289/10039982 gradle-4.1-all.zip离线包下载 极速 android studio2.3 ...