ABAP - 5 学而不思则罔

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


从上次的数据库表的一些基础操作开始。主要就是从表里根据参数来取值。
或者是从两个表里来取值。这样都是需要输入参数的。
但是,如果你是直接固定的参数。那就是:PARAMETERS: p_*** TYPE table_***.
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里面了。需要在屏幕上。
如果参数中被填入了值,那我要去看这个值你填的对不对哦,我要去我引用的表里面去对照到底有没有你这个值,但是,我只需要找到就行了,于是select single不管你找到了多少,我只要找到就行了。如果没找到,那就报一个Error类型的message。
在这里插入图片描述
在屏幕上做的操作有很多,隐藏啦,显示啦。
就是有很多屏幕event。

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

at selection screen on field

如果我想要让我输入的值不对的同时,其他值变灰。也就是说,我如果先输入的不对了,就别继续往下输入了。
下面我这个例子的顺序有误,但是意思是一样的。那直接用 on field这个event就行了。
在这里插入图片描述
不像之前在screen上的那个event,那我们有很多选择,但是现在我指定到field上了。如果我出了提示错了,那其他就不用输入了。
在这里插入图片描述

add top-of-page

加抬头和结尾。
在这里插入图片描述

在这里插入图片描述

变量类型和长度。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaomici

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值