首页 > Linux操作系统 > Linux操作系统 > 自定义Query变量输入界面
此次设计主要涉及的技术有:
1. SAP BW Command URLs :实现变量的命令行式传递
2. HTML : 基本输入框的定制
3. JavaScript :灵活定制用户的输入
首先我们知道在显示Query时,如果Query本身存在Ready for Input的变量,那么系统会自动先加载一个"Variables for 。。。"的变量输入界面,当用户输入变量值并执行,即出现结果所需要的报表。
在这个过程中,我们遇到了一个无法客制化的东西,那就是"变量输入界面",这个是系统自动生成的,它会按照Query变量的特性,动态的生成,所以在查询可选变量值等标准特性上非常优秀(暂时就不要去想变量值不能排序的问题)。
但是我们也遇到这样一个实际问题,如果用户的变量值是批量的,比如几十个值一次性复制进去,那么在原来标准界面是无法实现的,你只能逐一的填入。
所以针对这个问题,我们希望能够将变量输入界面客制化,即至少能够实现目前的一次性复制多个变量的要求。
实现这个要求有一个非常重要的前提,就是Query能够接受到我们传递的变量值,否则这个想法就会落空。庆幸的是,Query可以接收标准表单传递的值,也就是说我们把变量保存到form中,在提供form之后,值可以被Query接收,并处理显示最终结果。
Step 1. 定制输入界面
按照实际情况,在WAD中放置输入控件,比如这个案例中用到了text,textarea,button等。
图1:在WAD中的显示界面
| Variables for CoppSheet Report | |
| Calendar Week (*) | |
(Format:YYYYWW) | |
| Plant | |
| title="Input Field Authorization Plant " maxLength=4 name=VAR_VALUE_EXT_2> | |
| HH Material (*) | |
Count of Material: | |
| href="javascript.:frm_submit()" name=SUBMIT> | |
处理用户需要输入的,我们还需要放置一些辅助性文本框,用来放置Command URLs,比如CMD, TEMPLATE_ID,以及变量名称等
当然这些值都要保存到Form中,这样通过提交form能够把数据一次性传递。
为了尽量与标准变量输入界面风格保持一直,我们采用系统提供的CSS标准。
图2:实际运行过程中显示界面

点击Execute即可将Form内变量值提交给提交给Query。
当然实际过程比上述复杂很多,主要是通过Javascript来处理多值的拆分,不过这个不影响功能的介绍。你可以从单个变量开始自己的客制化测试。
参考信息:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/554557/viewspace-629720/ ,如需转载,请注明出处,否则将追究法律责任。