??????这篇文章给大家介绍一下SAP Dialog程序中 Listbox控件
的使用,也就是我们系统中的下拉列表,对于屏幕开发没有任何基础的读者请先看笔者另外两篇文章,SAP屏幕开发基础 SAP屏幕开发小案例 这篇文章笔者会省去程序创建等一些操作,会直接切入正题解释下拉列表的创建和配置使用。
????????在看这篇文章之前请先看一下笔者之前的这篇文章 了解系统当前表结构类型 这样就可以对我下面使用的表结构字段有个了解了。下面我会介绍两种使用下拉列表的方式,一种是静态的一种是函数调用动态的。
????????这种下拉列表适合一些固定的值,不能动态的进行变化,增加删除值不方便。
a.
绘制并设置属性???????????????????????1.声明变量
????????????????????????????我们参考之前的表字段声明一个变量,记得写在TOP包含程序中。
???????????????????????2.绘制控件
????????????????????????????绘制完之后需要手动调整一下大小。然后双击进行属性设置。
???????????????????????3.属性设置
????????????????????????????记得激活
b.
两种属性区别以及效果展示???????????????????????1.Listbox 和 Listbox with key 的区别
????????????????????????????Listbox with key 就是将值和描述都显示了出来,Listbox 是只显示了描述。
????????????????????????????可以打断点看一下无论那种模式这个变量都会被赋值为KEY值。
???????????????????????2.如何配置下拉列表的值
????????????????????????????现在我们绘制了下拉列表件运行后直接有值是因为我们这个变量参考的data delment的Domain设置了Value Range。具体怎么设置可以去看笔者另外一篇文章 F4搜索帮助
????????这种下拉列表适合一些随着某些操作变化而变化的,或者经常需要随着配置表增加删除值的。这里用到的函数是 VRM_SET_VALUES
, 我们要使用这个函数首先就要把这个函数了解清楚,下面我会分析它的参数都是什么作用。
a.
绘制下拉列表???????????????????????1.绘制
????????????????????????????在调用函数之前我们首先要绘制一个下拉列表,我这边命名为gv_dtlistbox
并根据需求设置合适的属性,就是要不要显示描述。也可以先在程序中声明变量然后参考这个变量绘制这样是最好的方式就和我们上面绘制静态下拉列表的时候一样创建方式。NAME记得大写、NAME记得大写、NAME记得大写。
????????????????????????????下图可以确定 NAME 是不是大写,也可以在这调整为大写,如果不是大写会不起效果的,函数调用的时候也要传大写,SAP中大小写是很敏感的。
???????????????????????2.运行效果
????????????????????????????现在这个下拉列表是没有任何值的,下面我们会通过函数绑定这个下拉列表,并动态赋值。
b.
调用函数绑定???????????????????????在调用这个函数之前我们应该思考一个问题,就是何时调用?这个下拉列表肯定是我们屏幕显示后要正常显示的,不能屏幕显示了我点击之后发现还没值,这就是不对的,所以这个函数的调用应该写在我们屏幕调用之前,也就是写在PBO层面,如果写在PAI层面那么只有触发PAI事件之后再调用设置值去绑定那么久晚了。
???????????????????????1.先直接看源码
????????????????????????????先看一下源码稍后再详细解释。
???????????????????????2.函数参数分析
????????????????????????????这个函数只有两个传入参数,也很好理解, ID 就是绑定哪个下拉框,VALUE 就是一个内表也是我们下拉列表的值,我们可以双击这个函数深入查看此内表的结构,做进一步分析。
???????????????????????3.运行效果
????????????????????????????现在我们只需要更改内表的值就可以动态实现下拉列表值的变化了,这个内表的值可以 SELECT 去透明表中查也可以手动赋值。当我们选择一个值的时候始终给变量赋值的是KEY值。记得在程序中声明变量不然没法留存住值。如果是参考程序中变量绘制的那就没事了。
????????以上就是今天要讲的内容,本文仅仅简单介绍了下拉列表控件,感觉笔者讲的好对自己有帮助的还麻烦点个免费的赞赞制作不易谢谢谢谢!!!如果有说错或者不好的地方还望大家提出来见谅。感觉笔者写的好的别忘了关注点赞加评论哦,也欢迎大家一起来讨论。谢谢!