range 实例(输出客户名和国家)

本文介绍了一个ABAP程序的设计,该程序通过用户界面接收输入参数,并基于这些参数从kna1表中筛选数据。筛选条件包括国家代码,支持德国(DE)、英国(GB)和美国(US)。数据按名称升序或降序排列,并显示名称和对应的国家代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 TABLES: kna1.
data: begin of gt_kna1 occurs 0,
      name1 type kna1-name1,
      land1 type kna1-land1,
      end of gt_kna1.
DATA: rab TYPE RANGE OF kna1-name1 WITH HEADER LINE,
      line LIKE LINE OF rab.

PARAMETERS: s_desc RADIOBUTTON GROUP gr1,
            s_asc RADIOBUTTON GROUP gr1,
            gmn AS CHECKBOX DEFAULT 'X',
            brt AS CHECKBOX DEFAULT 'X',
            amc AS CHECKBOX DEFAULT 'X'.
AT SELECTION-SCREEN.
  IF gmn <> 'X' AND brt <> 'X' AND amc <> 'X'.
    MESSAGE e001(00) WITH text-001.
  ENDIF.
DEFINE build_range.
  rab-sign = 'I'.
  rab-option = 'EQ'.
  rab-low = &1.
  append rab.
END-OF-DEFINITION.
IF gmn EQ 'X'.
  build_range 'DE'.
ENDIF.
IF brt EQ 'X'.
  build_range 'GB'.
ENDIF.
IF amc EQ 'X'.
  build_range 'US'.
ENDIF.

START-OF-SELECTION.
  PERFORM F_GET_data tables gt_kna1 rab.
  perform f_display_data tables gt_kna1 using s_desc s_asc.
end-of-selection.

form F_GET_DATA  tables   p_kna1 structure gt_kna1
                            "Insert correct name for <...>
                          p_rab structure rab.
  select name1 land1
    into corresponding fields of table p_kna1
    from kna1
    where land1 in p_rab.
  IF sy-subrc <> 0.
    message i002(00) with text-002.
    stop.
  ENDIF.
endform.                    " F_GET_DATA


form F_DISPLAY_DATA  tables   p_gt_kna1 structure gt_kna1
                                "Insert correct name for <...>
                     using    p_s_desc
                              p_s_asc.
IF p_s_desc eq 'X'.
  sort p_gt_kna1 by name1 descending.
else.
  sort p_gt_kna1 by name1 ascending.
ENDIF.
LOOP AT p_gt_kna1.
  write:/ p_gt_kna1-name1, p_gt_kna1-land1.
ENDLOOP.

endform.                    " F_DISPLAY_DATA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值