SAP是给用户预留了标准的增强方式的,就是event。
还拿之前的那个view为例
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/592b42e521bb618113c2f7a658ed4b22.jpeg)
进入表维护后
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/d3c114ad3f5b263cc6e4287734aeb0f2.jpeg)
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/73d67c29c4047b9ef4746b6156e8fd85.jpeg)
想在这个位置加个按钮。
进入表维护视图对应的function group
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/3eca2ef2f39a524ce608833ef6176056.jpeg)
这里是没有status的,也不建议这里自建一个status,然后修改table control。
下面考虑使用event 来实现。
切换到表维护
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/9a0b54c4b4722958d51f528b9e6139bd.jpeg)
找到event
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/7b90d69b27572d9fd8ce6fc419b289f5.jpeg)
新建,选ST
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/c4e8cb84c34bfc67e7b60973a5b8d199.jpeg)
然后填写form routine。
这里特别注意下,routine name必须是 SAPL function group name,其实就是你的表维护function group的主程序。
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/e0ce834dd3be1344f1c1493883616dea.jpeg)
你填写别的也会报错提醒你:
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/1fb3465fdf21dc4501b3f2f4028b277c.jpeg)
这个时候sm30进去看看维护视图用的哪个statu
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/f9837b2813d41a14dd391984c29b5fc0.jpeg)
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/692c4a50c9ddb76c40292480b1592c97.jpeg)
使用的是EULG。
然后点:
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/21b07eca78202d9cbbb237bb530884c2.jpeg)
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/937f644956594123e147e8cd49b7d8bb.jpeg)
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/4fb1c300b718786b7ba04eedc25ea584.jpeg)
这里填写 SAPLSVIM。有兴趣的自己去看看这个程序,也就是SVIM函数组。
copy完点chagne
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/20d80affac097999b59eb02366592b1c.jpeg)
添加一个新按钮 test
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/e375ee8ab3869d8d1ccbd6f84ce42590.jpeg)
然后进表维护视图的屏幕,可以直接双击屏幕号,也可以这么选择。
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/d505f9f06ecf4860f7eccbb348af6260.jpeg)
自己建一个PAI module
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/4c9c32a055c714c3a43948a7ebdf34c6.jpeg)
代码随便写点儿得了
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/241d350f5669f1a42034d02654eaf855.jpeg)
MODULE MDL_COMMAND INPUT.
CASE FUNCTION.
WHEN 'TEST'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TEXT_QUESTION = '是否关注了SAP干货铺'.
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDCASE.
ENDMODULE.
效果:
![维护视图DEMO(3):添加Status按钮 维护视图DEMO(3):添加Status按钮](https://i-blog.csdnimg.cn/blog_migrate/190b3912525d855b576c2bd939d87d2f.jpeg)