单选按钮过滤的问题

2020-08-21 07:39发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,我是新来的。 我目前正在尝...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我是新来的。

我目前正在尝试根据所选的单选按钮按三​​个类别进行过滤。

1。 所有航班(显示所有航班)2.国内航班(国家到价值=国家从价值)3.国际航班(国家到价值<>国家从价值开始)

当我按如下所示进行编码时,它无法正确过滤,想知道我错过了什么。

数据:带标题行的ZFLIGHT_TBL的dv_flight类型表。
数据:ls_flight类型的zflight_tbl。


* CASE语句的常量
常量标记值'X'。

*用于连接的选择
作为屏幕1100的SUBSCREEN的选择屏幕。
选择选项:ls_FLIGHT-CARRID存储器ID CARRID的SO_CARR,ls_FLIGHT-CONNID的SO_CONN。
SELECTION- 屏幕1100的屏幕结尾。


*航班选择
选择屏幕1200作为预订屏幕开始。
选择选项:SO_FLD用于ls_FLIGHT-FLDATE无扩展。
>选择屏幕1200的屏幕末端。


*输出参数
选择作为屏幕1300的选择屏幕的开始。
带有框架的块状放射状的选择屏幕的开始。
参数:PA_ALL RADIOBUTTON组RBG1,
PA_DOM RADIOBUTTON组RBG1,
PA_INT RADIOBUTTON组RBG1默认'X'。
RADIOBUTTON块的选择屏幕末端。
选择屏幕1300的屏幕末端。

标签块AI的选择屏幕开始 5行的RLINE。
选择屏幕TAB(20)TAB1用户命令连接
默认屏幕1100。

选择屏幕TAB(20)TAB2用户命令日期
默认屏幕。 1200.

选择屏幕选项卡(20)TAB3用户命令类型
默认屏幕1300.

选择航空公司的选择屏幕末端。

* == ========================= <=>
*结束新的或更改的代码
* ============ ===============


* =========================== =====
*新代码或更改代码的开头
* ============================


初始化。
*初始化CARRID的选择选项。可选
将以下项移动:'AA'到so_carr-low,
'ZZ'到so_carr-high,
'BT '至so_carr-option,
'I'至so_carr-sign。 ""包括
附加so_carr。
清除so_carr。

移动:'AZ'到so_carr-low,
'EQ'到so_carr-option,
'E'到so_carr -标志。 ""排除
附加so_carr。
清除so_carr。

*设置选项卡按钮的文本
tab1 ='连接'(t11)。
tab2 ='日期'(t12) 。
tab3 ='航班类型'(t13)。

*将第二个标签页设置为初始标签
airlines-activetab ='DATE'。
airlines-dynnr ='1200' 。

* ===========================
*新代码或更改代码的结尾
* = ==========================


开始选择。

CASE标记。

当PA_ALL时。
选择CARRID
CONNID
FLDATE
COUNTRYFR
CITYFROM
AIRPFROM
COUNTRYTO
CITYTO
AIRPTO
SEATSMAX
SEATSOCC
从ZFLIGHT_TBL到表dv_FLIGHT的对应字段中""""数组提取=到表中只有SELECT,没有endselect
SO_CARR中的CARRID和SO_CONN中的CONNID以及
FLDATE中的CARD SO_FLD。



""国内航班
当PA_DOM。

SELECT CARRID
CONNID
FLDATE
COUNTRYFR
CITYFROM
AIRPFROM
COUNTRYTO
CITYTO
AIRPTO
SEATSMAX
SEATSOCC
从ZFLIGHT_TBL到表dv_FLIGHT的对应字段中""""数组提取=到表中只有SELECT,没有endselect
SO_CARR中的CARRID和SO_CONN中的CONNID以及SO_FLD和
FLDATE中的FLDATE = ls_FLIGHT-COUNTRYFR。


" PANINT
SELECT CARRID
CONNID
FLDATE
COUNTRYFR
CITYFROM
AIRPFROM
> COUNTRYTO
CITYTO
AIRPTO
SEATSMAX
SEATSOCC
进入表的相应字段dv_FLIGHT从ZFLIGHT_TBL到""""数组提取=进入表仅具有SELECT,没有endselect
在哪里添加CARRID 如果sy-subrc = 0,则SO_CARR和
CONNID进入SO_CONN并
FLDATE进入SO_FLD和
COUNTRYTO <> ls_FLIGHT-COUNTRYFR。

ENDCASE。
在dv_flight INTO ls_flight中循环。
如果pa_all ='X'并且pa_dom <>'X'和pa_int <>'X'。

写:/ls_FLIGHT-CARRID,
ls_FLIGHT -CONNID,
ls_FLIGHT-FLDATE,
ls_FLIGHT-COUNTRYFR,
ls_FLIGHT-CITYFROM,
ls_FLIGHT-AIRPFROM,
ls_FLIGHT-COUNTRYTO, ls_FLIGHT-CITYTO,
ls_FLIGHT-SEATSMAX,
ls_FLIGHT-SEATSOCC。

否则,如果pa_dom ='X'并且ls_flight-countryto = ls_flight-countryfr和pa_int < >'X'和pa_all <>'X'。 ""国内:国家对价值=国家frm值
写:/ls_FLIGHT-CARRID,
ls_FLIGHT-CONNID,
ls_FLIGHT-FLDATE,
ls_FLIGHT-COUNTRYFR,
ls_FLIGHT-CITYFROM,< br> ls_FLIGHT-AIRPFROM,
ls_FLIGHT-COUNTRYTO,
ls_FLIGHT-CITYTO,
ls_FLIGHT-SEATSMAX,
ls_FLIGHT-SEATSOCC。


elseif pa_int ='X'并且ls_flight-countryto <> ls_flight-countryfr和pa_dom <>'X'和pa_all <>'X'。 ""国际:国家对价值<>国家frm值
写:/ls_FLIGHT-CARRID,
ls_FLIGHT-CONNID,
ls_FLIGHT-FLDATE,
ls_FLIGHT-COUNTRYFR,
ls_FLIGHT-CITYFROM,
ls_FLIGHT-AIRPFROM,
ls_FLIGHT-COUNTRYTO,
ls_FLIGHT-CITYTO,
ls_FLIGHT-SEATSMAX,
ls_FLIGHT-SEATSOCC。

ENDIF。
endloop。
endif。

清除ls_FLIGHT。