首页 > 其他 > 详细

新语法

时间:2019-09-29 14:49:40      阅读:128      评论:0      收藏:0      [点我收藏+]
 
*SELECT SINGLE zwlsx INTO l_labor FROM zsdt_i011 WHERE zdhmb =  ‘DX01‘ AND matnr =  l_matnr.
*l_labor = l_labor + 1.
*l_labor = |{ l_labor ALPHA = IN }|.
*WRITE l_labor.
DATA:p_kunnr TYPE kunnr.
p_kunnr = D001.

*&*********取数
TYPES: BEGIN OF ty_man,
         name   TYPE char10,    " 姓名
         sex    TYPE char1,       " 性别
         age    TYPE p DECIMALS 2, " 年龄
         school TYPE char20,      " 学校
       END OF ty_man.
DATA: gt_man TYPE TABLE OF ty_man.


gt_man = VALUE #( ( name = Anna sex = G age = 17 )
                 ( name = Ann  sex = G age = 16 )

                 ).
cl_demo_output=>write( gt_man ).

"内表基础上附加额外数据
gt_man = VALUE #( BASE gt_man ( name = Xiaohong sex = G age = 20 school = C SCHOOL )
                             ( name = Xiaoming sex = B age = 21  school = D SCHOOL ) ).
cl_demo_output=>write( gt_man ).

SELECT parvw AS partn_role FROM tpar INTO TABLE @DATA(lt_tpar)
   WHERE parvw IN ( AG,RE,RG,WE ).

*lt_partner = VALUE #( FOR ls_tpar IN lt_tpar
*                      ( VALUE #( BASE CORRESPONDING #( ls_tpar ) partn_numb = p_kunnr ) ) ).
*LOOP AT lt_partner ASSIGNING FIELD-SYMBOL(<fs1>).
*
*ENDLOOP.
*
*TYPES: ty_menge TYPE rlfmg .
*DATA:s_mon TYPE RANGE OF rpsxxxxx-smon.
*e_msg = |物料凭证{ goodsmvt_headret-mat_doc }创建成功;|.
*
**    dmbtr,"订货金额
**    CAST( 0 AS CURR( 15,2 ) ) AS credit_limit,
**    zdlvr_date,"配送日期
**    date_arr,"到货日期
**    zrev_flag,
**    CASE zrev_flag
**       WHEN ‘X‘ THEN ‘已评审‘
**       WHEN ‘N‘ THEN ‘未评审‘
**       WHEN ‘R‘ THEN ‘已拒绝‘
**    END AS zrev_ftxt,
**    zsend_flag,"发送状态
*
*"配送中心名称确定
*DATA : lt_t001w  TYPE HASHED TABLE OF typ_t001w WITH UNIQUE KEY zdis_ctr,
*gt_head                TYPE STANDARD TABLE OF typ_head.
*gt_head = CORRESPONDING #( gt_head FROM lt_t001w USING zdis_ctr = zdis_ctr ).

"内表行数
DATA(lv_lines) = lines( gt_man ).
"内表中符合条件的数据有几条
DATA(lv_lines_g) = REDUCE i( INIT x = 0
                             FOR  ls_man IN gt_man WHERE ( sex = G )
                          NEXT x = x + 1 ).
cl_demo_output=>write( lv_lines ).
cl_demo_output=>write( lv_lines_g ).

"累计内表中符合条件的年龄之和
TYPES: ty_age TYPE p DECIMALS 2.
DATA(lv_sum_age) = REDUCE ty_age( INIT dage = VALUE ty_age( )
                               FOR wa IN gt_man WHERE ( sex = G )
                               NEXT dage = dage + wa-age ).
cl_demo_output=>write( lv_sum_age ).

"综合例子
TYPES:BEGIN OF ty_result,
        sum  TYPE p DECIMALS 2, "总和
        max  TYPE p DECIMALS 2, "最大值
        avg  TYPE p DECIMALS 2, "平均
        cunt TYPE i,            "记录数
      END OF ty_result.

DATA(ls_result) = REDUCE ty_result( INIT res = VALUE ty_result( )  "可以默认值:ty_result( min = 0 max = 0 )
                                     FOR <fs_man> IN gt_man WHERE ( sex = G ) "性别为G
                                    NEXT res-sum = res-sum + <fs_man>-age       "年龄总和
                                         res-max = nmax( val1 = res-max val2 = <fs_man>-age )"最大年龄
                                         res-cunt = res-cunt + 1                "满足条件的条目数
                                   ).


ls_result-avg = ls_result-sum / ls_result-cunt.  "平均值
cl_demo_output=>write( ls_result ).

cl_demo_output=>display(  ).

*    ---退货
*TYPES: ty_menge TYPE rlfmg .
*DATA(m_back_day) = REDUCE ty_menge(  INIT menge = VALUE ty_menge( )
*                            FOR wa_back IN gt_zsdi25_back WHERE ( zdbrq = it_date
*                            AND matnr = ls_ctpd-matnr
*                            AND kunnr = ls_ctpd-kunnr )
*                            NEXT menge = menge + wa_back-menge ).

 

新语法

原文:https://www.cnblogs.com/ckstock/p/11607739.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!