如何把选择屏幕放到标准屏幕上

    xiaoxiao2021-04-15  36

    原帖:http://blog.itpub.net/634491/viewspace-151161

    我们都用过选择屏幕和标准屏幕,应该都有想过在标准屏幕上使用选择屏幕的功能吧?如果自己在标准屏幕上实现像选择屏幕上那样的输入功能太麻烦了。其实我们可以把选择屏幕放到标准屏幕上去,这样很方便就能实现我们想要的功能了。     首先,要声明一个SUBSCREEN类型的选择屏幕,这个很重要。         SELECTION-SCREEN BEGIN OF SCRENN 1001 AS SUBSCREEN.           SELECT-OPTIONS: p_matnr FOR mara-matnr.         SELECTION-SCREEN END OF SCREEN 1001.     然后,创建一个标准屏幕,并在屏幕上放置一个子屏幕区域(Subscreen Area),命名为subsel(可以自行命名)。然后在标准屏幕的PBO中添加一行代码         CALL SUBSCREEN subsel INCLUDING sy-repid subscr.     在PAI中添加一行代码         CALL SUBSCRENN subsel.     在这里要注意:在PBO中CALL SUBSCREEN语句最后的选择屏幕号一定要使用变量,不能直接输入屏幕编号,否则会出现错误。         CALL SUBSCREEN subsel INCLUDING sy-repid '1001'.  "这样是会出错的     定义一个变量,设定值为选择屏幕的编号就可以了。         DATA: subscr TYPE sy-dynnr VALUE '1001'.     定义为SUBSCREEN的选择屏幕,所有发生的操作,都会在标准屏幕的PAI中那行CALL SUBSCREEN subsel时传回到选择屏幕的事件处理程序中,在选择屏幕上输入的值也会传递到相应的屏幕参数,但是定义为SUBSCREEN的选择屏幕,不会产生 START-OF-SELECTION事件,只会产生AT SELECTION-SCREEN事件,可以在AT SELECTION-SCREEN事件中进行处理。         AT SELECTION-SCREEN.           IF sy-dynnr = '1001'.             "处理语句           ENDIF.     其他AT SELECTION-SCREEN事件也能被处理,如AT SELECTION-SCREEN OUTPUT等。

    转载请注明原文地址: https://ju.6miu.com/read-671964.html

    最新回复(0)