首页
论坛
门户
空间
手机版
IXPUB
插件
收藏
设置
注册
登录
商店
搜索
培训
Wiki
Blog
归档
丛书
退出
ITPUB论坛
»
ERP二次开发
» 在选择画面上添加按钮
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
评价
|
打印
|
推荐
|
订阅
|
收藏
标题:
[笔记]
在选择画面上添加按钮
bluebaby001
精华贴数 0
个人空间
0
技术积分 77 (20079)
社区积分 0 (967734)
注册日期 2006-5-31
论坛徽章:0
#1
使用道具
发表于 2008-7-12 19:00
在选择画面上添加按钮
TYPE-POOLS: ICON, SLIS.
TABLES: BSIK,SSCRFIELDS.
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
CONCATENATE : ICON_DELETE '' INTO SSCRFIELDS-FUNCTXT_01.
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'FC01'.
MESSAGE 'CREATE OK' TYPE 'S'.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
WRITE 'haha'.
ENDIF.
只看该作者
gavin
怀旧会员
来自 广东
精华贴数 0
个人空间
0
技术积分 118 (14478)
社区积分 0 (52815)
注册日期 2002-3-14
论坛徽章:0
#2
使用道具
发表于 2008-8-8 14:54
回复 #1 bluebaby001 的帖子
这代码不全吧,我取过来,调试不出来那结果.
__________________
抱着学习的态度来的!
只看该作者
zhflzhfl
小丑
精华贴数 0
个人空间
0
技术积分 302 (6518)
社区积分 100 (3450)
注册日期 2006-11-23
论坛徽章:5
#3
使用道具
发表于 2008-8-8 14:56
这代码不全吧
只看该作者
bluebaby001
精华贴数 0
个人空间
0
技术积分 77 (20079)
社区积分 0 (967734)
注册日期 2006-5-31
论坛徽章:0
#4
使用道具
发表于 2008-8-13 15:32
REPORT ZZTEST_TEST.
TYPE-POOLS: ICON, SLIS.
TABLES: BSIK,SSCRFIELDS.
CONSTANTS:
CNS_BT(2) TYPE C VALUE 'BT',
CNS_I TYPE C VALUE 'I'.
SELECT-OPTIONS S_DATE FOR SY-DATUM MODIF ID G2 NO-EXTENSION.
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
CONCATENATE : ICON_DELETE '' INTO SSCRFIELDS-FUNCTXT_01.
S_DATE-OPTION = CNS_BT.
S_DATE-SIGN = CNS_I.
S_DATE-LOW = SY-DATUM - 1.
S_DATE-HIGH = SY-DATUM.
APPEND S_DATE.
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'FC01'.
CLEAR: S_DATE[].
MESSAGE 'Clear OK' TYPE 'S'.
ENDIF.
看一下这个例子吧。
据我所知这样的FUNCTION KEY 可以最多定义5个吧,对应为FC01-FC05。
以下摘自帮助,可以看一下它的详细的用法了。
Syntax
SELECTION-SCREEN FUNCTION KEY n [ldb_additions].
Effect:
In the GUI status of the selection screen set by the system, the application toolbar contains five inactive pushbuttons, to which the function codes FC01 to FC05 are assigned. This statement activates the pushbutton of the function code FC0n, whereby a value between 1 and 5 must be entered for n.
To enable use of the pushbuttons, the statement TABLES must be used to declare an interface work area of the structure SSCRFIELDS from the ABAP Dictionary.
If a text is assigned to the component functxt_0n of the interface area sscrfields before the selection screen is called, this text is displayed on the relevant pushbutton. Otherwise, the pushbutton does not contain any text.
When the user chooses a pushbutton in the application toolbar, the runtime environment triggers the event AT SELECTION-SCREEN and the corresponding function code is transferred to the component comm of the interface work area sscrfields.
The additions ldb_additions can only be used in the selection include of a logical database.
Notes:
To assign icons, Quickinfo, and appropriate text to the pushbuttons, a data object can be defined of the structured type SMP_DYNTXT from the ABAP dictionary. The ID of the icon, a quickinfo, and the corresponding text must be assigned to the components of this data object. The content of the whole structure must then be assigned to the component functxt_0n of the interface work area sscrfields.
After the event block after AT SELECTION-SCREEN is processed, the system returns to the display of the selection screen. To exit selection screen processing or to continue by executing the program, the user can only choose Execute or Cancel. Pushbuttons on selection screens can therefore normally be used for dynamic modifications to the selection screen rather than for program control.
If the content of the component ucomm is set to a function code used in the GUI status during selection screen processing, then the selection screen processing is influenced accordingly.
Example:
Activation of two pushbuttons with icons and quick info in the application toolbar (pushbutton toolbar) of the standard selection screen of an executable program. Selecting one of these buttons preassigns different values to the input fields.
REPORT demo_sel_screen_function_key.
TYPE-POOLS icon.
TABLES sscrfields.
DATA functxt TYPE smp_dyntxt.
PARAMETERS: p_carrid TYPE s_carr_id,
p_cityfr TYPE s_from_cit.
SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2.
INITIALIZATION.
functxt-icon_id = icon_ws_plane.
functxt-quickinfo = 'Preselected Carrier'.
functxt-icon_text = 'LH'.
sscrfields-functxt_01 = functxt.
functxt-icon_text = 'UA'.
sscrfields-functxt_02 = functxt.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'FC01'.
p_carrid = 'LH'.
p_cityfr = 'Frankfurt'.
WHEN 'FC02'.
p_carrid = 'UA'.
p_cityfr = 'Chicago'.
WHEN OTHERS.
...
ENDCASE.
START-OF-SELECTION.
...
只看该作者
gavin
怀旧会员
来自 广东
精华贴数 0
个人空间
0
技术积分 118 (14478)
社区积分 0 (52815)
注册日期 2002-3-14
论坛徽章:0
#5
使用道具
发表于 2008-8-14 09:51
回复 #4 bluebaby001 的帖子
这个 Buttion 加到工具栏上去了,
有没有在真正的select screen上的?
__________________
抱着学习的态度来的!
只看该作者
ganghz
初级会员
精华贴数 0
个人空间
0
技术积分 2073 (767)
社区积分 5582 (266)
注册日期 2007-11-2
论坛徽章:9
#6
使用道具
发表于 2008-8-19 23:20
解决了吗?
__________________
1388 出蓝鲨
只看该作者
bluebaby001
精华贴数 0
个人空间
0
技术积分 77 (20079)
社区积分 0 (967734)
注册日期 2006-5-31
论坛徽章:0
#7
使用道具
发表于 2008-8-30 17:21
看一下一个比较全的例子:
REPORT ZR113 NO STANDARD PAGE HEADING
LINE-SIZE 170
LINE-COUNT 58.
TABLES :BKPF,BSEG,S070.
TABLES SSCRFIELDS. "选择屏幕字段##
DATA:ZBKPF LIKE BKPF OCCURS 0 ,
ZWA_BKPF LIKE BKPF.
CONSTANTS:P_VARIANT(2) TYPE C VALUE 'WL'.
***下面这些屏幕参数和事件没有关系,只是参数集而已.
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE COND1.
SELECT-OPTIONS S_BUKRS FOR BKPF-BUKRS MEMORY ID BUK.
SELECT-OPTIONS S_BLART FOR BKPF-BLART NO INTERVALS .
SELECT-OPTIONS S_BELNR FOR BKPF-BELNR .
SELECT-OPTIONS S_BUDAT FOR BKPF-BUDAT DEFAULT SY-DATUM.
SELECT-OPTIONS S_BLDAT FOR BKPF-BLDAT NO INTERVALS NO-EXTENSION.
SELECT-OPTIONS S_GJAHR FOR BKPF-GJAHR MEMORY ID GJR DEFAULT SY-DATUM(4).
SELECT-OPTIONS WEEKRAN FOR S070-SPBUP NO-EXTENSION .
SELECTION-SCREEN END OF BLOCK BK1.
SELECTION-SCREEN BEGIN OF BLOCK BK2 WITH FRAME TITLE COND2.
SELECTION-SCREEN COMMENT /1(30) COMM1 . "使用屏幕注释
SELECTION-SCREEN BEGIN OF LINE ."两单选框将在同一条线上.
PARAMETERS PNOR RADIOBUTTON GROUP GRP1 DEFAULT 'X'."Print normal doc
PARAMETERS PPARK RADIOBUTTON GROUP GRP1. "Print parked doc
SELECTION-SCREEN END OF LINE .
SELECTION-SCREEN END OF BLOCK BK2.
***使用工具条按##
SELECTION-SCREEN SKIP 2 .
SELECTION-SCREEN FUNCTION KEY 1 .
SELECTION-SCREEN FUNCTION KEY 2 .
***使用屏幕按钮,两按钮在同一行.
SELECTION-SCREEN PUSHBUTTON /8(10) BUT1
USER-COMMAND CLI1.
SELECTION-SCREEN PUSHBUTTON 20(10) BUT2
USER-COMMAND CLI2.
***1 初始化参数.
INITIALIZATION.
COND1 = '【Condition】'.
COND2 = '【Normal Doc|Parked Doc】'.
COMM1 = 'Choose Doc. Type:'. "注释赋初值.
BUT1 = 'CLICK'.
BUT2 = 'Hello' .
***允许5个工具条按钮对应FUNCTXT_01->FUNCTXT_05
SSCRFIELDS-FUNCTXT_01 = 'CLICK'.
SSCRFIELDS-FUNCTXT_02 = 'Hello'.
***初始公司值,这在有些需要后台跑的程序非常有用,除了使用variant外,
***下面的例子在初始化后公司代码选择了1000和3000排除了2000
S_BUKRS-LOW = '1000'.
S_BUKRS-SIGN = 'I'. "I->包含,E->排除
S_BUKRS-OPTION = 'EQ'. "NE
APPEND S_BUKRS.
S_BUKRS-LOW = '2000'.
S_BUKRS-SIGN = 'E'.
S_BUKRS-OPTION = 'EQ'.
APPEND S_BUKRS.
S_BUKRS-LOW = '3000'.
S_BUKRS-SIGN = 'E'.
S_BUKRS-OPTION = 'EQ'.
APPEND S_BUKRS.
***初始化doc range 从0100000000到1000000000
S_BELNR-LOW = '0100000000'.
S_BELNR-HIGH = '1000000000'.
S_BELNR-SIGN = 'I' .
S_BELNR-OPTION = 'BT'.
APPEND S_BELNR.
***2 使用sug_get_week后得到所选日期的当前周数,在选择weekrag字段时才触发.
***当你选择weekran字段时.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR WEEKRAN-LOW.
PERFORM SUB_GET_WEEK CHANGING WEEKRAN-LOW.
AT SELECTION-SCREEN.
***判断所选择的公司代码是否有效,通常并不是必须的.
***当然你也可将此步省略,直接在START-OF-SELECTION判断.
***根据需要可做很多vaid字段的判断.
PERFORM SUB_VALIDATE_COMP.
PERFORM SUB_BUTTON_RESPONSE.
***3开始选屏
START-OF-SELECTION.
PERFORM SUB_GET_DOC.
PERFORM SUB_WRT_DOC.
PERFORM SUB_WRT_FOOTER.
END-OF-SELECTION.
***4.分页时显示page header或page footer.
TOP-OF-PAGE.
PERFORM SUB_WRT_HEADER.
END-OF-PAGE.
***5.当点击行并且是点到Document NO.CAll FB03.
AT LINE-SELECTION.
PERFORM SUB_LINE_RESPONSE.
*---------------------------------------------------------------------*
* FORM sub_line_response *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_LINE_RESPONSE.
DATA: ZFLDNAME LIKE DD01L-DOMNAME,
ZFLDVALUE LIKE TTREET-TEXT,
ZWA_BKPF LIKE BKPF.
GET CURSOR FIELD ZFLDNAME VALUE ZFLDVALUE .
IF ZFLDNAME = 'ZWA_BKPF-BELNR' .
* READ TABLE Zbkpf into zwa_bkpf WITH KEY BELNR = ZFLDVALUE.
* SET PARAMETER ID 'BUK' FIELD zwa_bkpf-BUKRS.
* SET PARAMETER ID 'GJR' FIELD zwa_bkpf-GJAHR.
* SET PARAMETER ID 'BLN' FIELD zwa_bkpf-BELNR.
SET PARAMETER ID 'BLN' FIELD ZFLDVALUE .
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM .
*---------------------------------------------------------------------*
* FORM SUB_GET_DOC *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_GET_DOC.
REFRESH ZBKPF .
SELECT * FROM BKPF INTO TABLE ZBKPF
WHERE BUKRS IN S_BUKRS
AND BELNR IN S_BELNR
AND GJAHR IN S_GJAHR
AND BUDAT IN S_BUDAT.
ENDFORM.
*---------------------------------------------------------------------*
* FORM sub_wrt_header *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_WRT_HEADER.
***Write report header
FORMAT INTENSIFIED COLOR = 6.
WRITE AT: /01 'Finaincial Document List Header:'(H07).
FORMAT COLOR COL_NORMAL ON.
FORMAT COLOR COL_HEADING ON.
WRITE AT:/01(48) SY-ULINE.
FORMAT COLOR COL_HEADING OFF.
FORMAT COLOR OFF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM sub_wrt_FOOTER *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_WRT_FOOTER.
*** write report footer .
FORMAT INTENSIFIED COLOR = 6.
WRITE: /01 'Report END,Report by:' , SY-UNAME ,'on',SY-DATUM .
FORMAT COLOR COL_NORMAL ON.
FORMAT COLOR COL_HEADING ON.
WRITE AT:/01(48) SY-ULINE.
FORMAT COLOR COL_HEADING OFF.
FORMAT COLOR OFF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM sub_wrt_doc *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_WRT_DOC.
***write 凭证.如ZBKPF内表with header line可直接Loop.
ULINE /1(41).
LOOP AT ZBKPF INTO ZWA_BKPF.
WRITE:/ '|',ZWA_BKPF-BUKRS,'|',ZWA_BKPF-BELNR,'|',
ZWA_BKPF-GJAHR,'|',ZWA_BKPF-BUDAT,'|'.
ULINE /1(41).
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM SUB_VALIDATE_COMP *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_VALIDATE_COMP.
***判断company code的有效##
DATA ITAB_BUKRS LIKE BKPF-BUKRS OCCURS 0 .
SELECT BUKRS INTO TABLE ITAB_BUKRS
FROM T001
WHERE BUKRS IN S_BUKRS .
IF ITAB_BUKRS IS INITIAL.
MESSAGE E002(00) .
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM SUB_BUTTON_RESPONSE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SUB_BUTTON_RESPONSE.
***实际中换成你需要的判断,例中只显示两Error Message.
***FC01,FC02对应工具条按钮,CLI1-2对应屏幕按钮UCOMM##
CASE SSCRFIELDS-UCOMM .
WHEN 'CLI1'.
MESSAGE E001(00) WITH 'You click screen button [CLICK]'.
WHEN 'CLI2'.
MESSAGE E001(00) WITH 'You click screen button [HELLO]'.
WHEN 'FC01'.
MESSAGE E001(00) WITH 'You click toolbar button [CLICK]'.
WHEN 'FC02'.
MESSAGE E001(00) WITH 'You click toolbar button [Hello]'.
WHEN OTHERS.
ENDCASE.
ENDFORM.
*---------------------------------------------------------------------*
* FORM sub_get_week *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> WKRAN *
*---------------------------------------------------------------------*
FORM SUB_GET_WEEK CHANGING WKRAN LIKE S070-SPBUP.
DATA: L_DATE LIKE WORKFLDS-GKDAY,
L_PERIOD LIKE T009B-POPER,
L_YEAR LIKE T009B-BDATJ.
***根据选择日期得到当前周数
CALL FUNCTION 'F4_DATE'
EXPORTING
DATE_FOR_FIRST_MONTH = SY-DATUM
DISPLAY = ''
IMPORTING
SELECT_DATE = L_DATE
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
DATE_AFTER_RANGE = 2
DATE_BEFORE_RANGE = 3
DATE_INVALID = 4
FACTORY_CALENDAR_NOT_FOUND = 5
HOLIDAY_CALENDAR_NOT_FOUND = 6
PARAMETER_CONFLICT = 7
OTHERS = 8.
CALL FUNCTION 'G_PERIOD_GET'
EXPORTING
DATE = L_DATE
***使用WL variant得到的period是周/年,空则是期间/年.
***在CO-PA或做计划时,通常是以周做period的.
VARIANT = P_VARIANT "'WL'
IMPORTING
PERIOD = L_PERIOD
YEAR = L_YEAR
EXCEPTIONS
LEDGER_NOT_ASSIGNED_TO_COMPANY = 1
PERIOD_NOT_DEFINED = 2
VARIANT_NOT_DEFINED = 3
OTHERS = 4.
WEEKRAN-SIGN = 'I'.
WEEKRAN-OPTION = 'EQ'.
CONCATENATE L_YEAR L_PERIOD+1(2) INTO WKRAN.
ENDFORM.
只看该作者
everyday36
sitongyu
来自 苏州
精华贴数 0
个人空间
0
技术积分 1223 (1434)
社区积分 1512 (734)
注册日期 2008-8-30
论坛徽章:28
#8
使用道具
发表于 2008-9-1 16:15
xuexi
__________________
體育菠菜
|
指數競猜
|
财神
|
徽章
edelivery.oracle.com
只看该作者
veyard
木头人
精华贴数 0
个人空间
0
技术积分 186 (10651)
社区积分 0 (810138)
注册日期 2006-3-22
论坛徽章:1
#9
使用道具
发表于 2008-9-1 21:24
还有这玩意儿???见识了,学习学习
__________________
跟着oracle erp没完没了
只看该作者
huak
皑皑白雪
精华贴数 3
个人空间
0
技术积分 10335 (116)
社区积分 8530 (184)
注册日期 2003-5-10
论坛徽章:73
#10
使用道具
发表于 2008-9-2 13:20
ABAP???
__________________
I love my life !
Oracle Application 11i Documention
心有多广,舞台就有多大!
世界上没有懒惰的人,只是他的目标不够吸引他。
“赌博”请到这里
只看该作者
投票
交易
悬赏
活动
相关内容
ITPUB论坛
≡ 数据库技术 ≡
> Oracle数据库管理
> Oracle开发
> Oracle Developer Suite
> Oracle入门与认证
> Oracle专题深入讨论
> Oracle新技术/11g
> Oracle电子文档
> Oracle Application Server套件
> IBM数据库产品
> MS SQL Server
> Sybase管理与开发
> MySQL及其它开源数据库
> 内存数据库
> 数据仓库与数据挖掘
> 移动及嵌入式数据库
≡ 企业信息化 ≡
> ERP产品与实践
> CRM产品与实践
> HR产品与实践
> 物流
> 供应链
> 供应链建模与仿真
> 物流设备与系统工程
> 企业管理咨询
> 管理协同与办公自动化
> IT服务管理
> 数据中心建设
> ERP二次开发
> Oracle ERP
> EBS相关文档
> PeopleSoft与JDE
> SAP R/3
> SAP Business One开发与快速实施
> SAP财务及CRM
> SAP后勤及HR
> mySAP ERP
> 系统开发及跨应用设置
> SAP相关文档
> 国外其它ERP产品
> 国内ERP产品
≡ 开发技术 ≡
> Java入门与认证版
> Java web开发及框架技术
> Java企业开发
> ASP.NET【已迁移到微软开发技术论坛】
> .Net企业开发与应用【已迁移到微软开发技术论坛】
> WEB程序开发
> WEB 2.0技术
> 动态语言
> 移动与游戏开发
≡ 系统设计与项目管理 ≡
> 系统分析与UML
> 系统分析与UML精华区
> 项目管理
> 项目过程
> 软件测试
> 算法讨论与研究
≡ IBM软件技术园地 ≡
> IBM数据库产品
> Lotus
> Tivoli
> Websphere
> Rational
> 与SOA相关的IBM产品与技术
> IBM软件技术精英协会
> 软件技术精英活动专版
≡ 操作系统与硬件 ≡
> AIX及IBM产品【已迁移到IXPUB】
> HP-UX及HP产品【已迁移到IXPUB】
> Solaris及SUN产品【已迁移到IXPUB】
> Linux及其应用 【已迁移到IXPUB】
> 其它UNIX系统【已迁移到IXPUB】
> windows系统及微软相关产品 【已迁移到IXPUB】
> 存储设备与容灾技术 【已迁移到IXPUB】
> 服务器 【已迁移到IXPUB】
≡ 行业纵向讨论区 ≡
> IT业界评论与展望
> 政府与教育事业
> 中国政府信息主管联盟
> 电信行业
> 金融行业
> 医卫行业
> 制造行业
> 电力行业
> 信息安全与审计
≡ 会员交流 ≡
> IT职业生涯
> 招聘求职商务信息
> 体育世界
> 体育博彩专版
> 旅游,驴友
> 汽车世界
> 外语角
> 数码摄影
> 你的故事我的歌
> 音乐推荐区
> 电子图书与IT文档资料
> 软件交流
> 软件交流精华区
≡ ITPUB产品与服务 ≡
> ITPUB地面活动专版
> BLOG天地
> WIKI世界
> 授权用户区
> 站务管理
≡ 微软开发技术 ≡
> 开发工具和语言
> .NET Framework 相关
> Visual Basic/VB.net
> Visual C#
> Visual C++/vc.net
> Visual Studio
> .NET软件架构与模式
> .NET开发辅助工具及框架
> Web开发
> ASP.NET与AJAX
> Web相关技术讨论(IIS等)
> Silverlight 技术
> 微软企业级产品技术
> SQL Server
> windows server
> SharePoint
> Exchange Server
> Biztalk
> 嵌入式及移动开发
> Windows Embedded 嵌入式技术
> Windows 移动设备
> Office开发
> Microsoft office system
> Office Business Application
> 微软产品用户交流区
> .Net电子书籍&&书籍介绍
> .Net人才交流
技术积分榜
社区积分榜
徽章
电子杂志
会员
团队
统计
邮箱
游乐场
帮助
TOP
CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号
联系我们
法律顾问
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计