600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > ABAP - 5 学而不思则罔

ABAP - 5 学而不思则罔

时间:2020-08-20 02:16:50

相关推荐

ABAP - 5 学而不思则罔

对于渣渣我来讲,感觉有点灌不下去了。

于是停下来总结下。

文章目录

SELECT-OPTIONSEVENTPAI、PBOOBLIGATORYDEFAULT 'c'FORMAT COLORRIGHT-JUSTIFIEDCHECKBOXselect singleat selection screen on fieldadd top-of-page

从上次的数据库表的一些基础操作开始。主要就是从表里根据参数来取值。

或者是从两个表里来取值。这样都是需要输入参数的。

但是,如果你是直接固定的参数。那就是:PARAMETERS: p_***TYPEtable_***.

select ***where ***=p_ ***

这样就是单个的参数值。

如果要一个值范围。那就用到select-options.

SELECT-OPTIONS

select-options, 就是让你很多选择条件。因为我可能想一次性多选几个,或者选一个值范围。或者想排除一个值范围。

也就是我们经常看到的这种:

那我们自己来写下,就是注意语法是SELECT-OPTIONS: FOR

最后where 是 IN。

因为它是一个范围。

然后一开始要声明要用的表。

执行结果是这样

改个描述:

对于范围呢,有一点就有意思了。

我以前一直看到什么SIGN,OPTION,LOW,HIGH的。

到这里如果糊里糊涂的,现在就能懂了。

用个debug去看下这个select-option的真实面目。

这个里面有很多有意思的EVENT,和PAI。待会来解释。

step in执行,到下一步双击s_land1,看它是个structure。有1行四列。

再双击进去看。

它有这些component,还有不同的值。

这是因为我只选了个US。

当选择范围,会变成BT(between)和LOW、HIGH都有值。

排除范围则是NB(Not between)。

EVENT

从上面的截图里能看到,有个event是START-OF-SELECTION。这就是默认的event,每个event会有处理一系列的code。这个是SAP默认的,你不写它也会执行的。event不需要有end。但是会在遇到下一个事件时执行下一个。

比如INITIALIZATION这个event。

对我的范围参数进行初始化。

我执行的时候会有默认的值。

PAI、PBO

PAI: process after input

PBO: process before output

OBLIGATORY

就是这个是必须输入的。

那你不输就会报错

DEFAULT ‘c’

给个默认的值

比如

FORMAT COLOR

这个就是我如果要输出描述,也就是第一行,那我可以把行标题给打上颜色。

这个我懒得再写一个write了。

就直接数据行打颜色。

执行出来时颜色1,也可以改成颜色2,3.

RIGHT-JUSTIFIED

就把这个字段靠右。对于是数量的,靠右比较好看。同理有left-justified.

CHECKBOX

就是复选框。

那怎么弄呢?

用到checkbox,那就是要用到if else了

如果这个复选框被选中。那就是怎样,如果没被选中,又是怎样。

功能扩展:

要在点击check box后,填充一个select option的值,并把它变灰。

这就涉及到event了。

event的一系列,屏幕上的操作。

也就是在initialization和start of selection之间的。

有很多的在at selection screen这层显示屏幕的操作。

而且如果我点击了checkbox之后,要把屏幕自动输出,而且变灰。那是要在OUTPUT之前。也就是PBO。所以要限定到screen output这个event上,当然输出屏幕会有很多参数,我要限定到我要控制的那个参数,用IF去限定。IF checkbox被点了。那而且当前屏幕被改的人就是我系统用户了。这个反正我用不到。

在屏幕OUTPUT这个event上操作。然后是限制在点了checkbox之后。

于是在点击checkbox和enter之后,就会直接填充select option的值了。

那么就直接这样了:

要把值弄灰。就再加一步:

让屏幕这个structure的input=0。

select single

如果我在select options 里面填入了一个错误值,那我需要让它给我点信息。

那它其实是个PAI,不能是在屏幕output那个event里面了。需要在屏幕上。

如果参数中被填入了值,那我要去看这个值你填的对不对哦,我要去我引用的表里面去对照到底有没有你这个值,但是,我只需要找到就行了,于是selectsingle不管你找到了多少,我只要找到就行了。如果没找到,那就报一个Error类型的message。

在屏幕上做的操作有很多,隐藏啦,显示啦。

就是有很多屏幕event。

因为有很多验证要做,比如刚才的你输入的值是不是瞎输入的。要验证下。

at selection screen on field

如果我想要让我输入的值不对的同时,其他值变灰。也就是说,我如果先输入的不对了,就别继续往下输入了。

下面我这个例子的顺序有误,但是意思是一样的。那直接用on field这个event就行了。

不像之前在screen上的那个event,那我们有很多选择,但是现在我指定到field上了。如果我出了提示错了,那其他就不用输入了。

add top-of-page

加抬头和结尾。

变量类型和长度。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。