赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 3112|回复: 17

赛跑网-通过函数得到流水号

[复制链接]
发表于 2012-5-15 16:12:07 | 显示全部楼层 |阅读模式
     开发中经常会使用不重复的流水号,比如各种单据单号。这类流水号可以使用一个函数得到。在使用这个函数之前要先建立编码范围对象。具体是使用TCODE SNRO 或 SNUN 创建 Z_TEST这个编码范围对象,并要通过间隔按钮为Z_TEST指定最大和最小值。
下面共享一段代码,调试的前提是先建议编码范围对象
***创建流水号对象时指定了编号长度域为 num10,所以定义变量接收
DATA num(10) TYPE n.

START-OF-SELECTION.

***产生流水号之前先锁定
游客,如果您要查看本帖隐藏内容请回复
  
IF sy-subrc <> 0 .
    MESSAGE '锁定中,请稍后创建' TYPE 'E'  DISPLAY LIKE 'S'.
  ELSE.
**得到连续&不重复的流水号
    CALL FUNCTION 'NUMBER_GET_NEXT'
      EXPORTING
        nr_range_nr = '12'      "12为流水号的前两位数值,
        object      = 'Z_TEST'  "Z_TEST为使用TCODE:SNRO或SNUM创建的编码范围对象
      IMPORTING
        number      = num.      "用于接收产生的流水号
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDIF.

***流水号产生之后解除锁定
  CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'
    EXPORTING
      object = 'Z_TEST'.

***另外还有一个函数可以得到随机数
游客,如果您要查看本帖隐藏内容请回复

*函数组:F052(随机值的生成)
*F052:随机值的生成,可以生成各种随机数。
*RANDOM_AMOUNT:带货币类型的金额
*RANDOM_C:字符
*RANDOM_C_BY_SET:指定范围内的字符
*RANDOM_F8:浮点数
*RANDOM_I2:2字节整数
*RANDOM_I4:4字节整数
*RANDOM_INITIALIZE:初始化随机种子
*RANDOM_P:压缩数
*RANDOM_TABLE_ENTRY:表条目

  WRITE sum.

最近访客

  • austin
    2022-03-24




上一篇:赛跑网-选择屏幕实例二
下一篇:赛跑网-OLE的简单应用
本楼点评(0) 收起
发表于 2012-5-15 20:53:38 | 显示全部楼层
嗯,先看看先。。。。。
本楼点评(0) 收起
发表于 2012-5-18 22:53:58 | 显示全部楼层
谢谢李老师分享。
本楼点评(0) 收起
发表于 2012-5-18 22:56:53 | 显示全部楼层
老师上课讲讲,没看懂。
本楼点评(0) 收起
 楼主| 发表于 2012-5-18 23:49:57 | 显示全部楼层
thp20000 发表于 2012-5-18 22:56
老师上课讲讲,没看懂。

呵呵 这部分还要创建编号范围对象 下次上课提一下
本楼点评(0) 收起
发表于 2012-6-25 13:43:53 | 显示全部楼层
abap在奋斗中。。。。
本楼点评(0) 收起
发表于 2012-6-27 20:24:56 | 显示全部楼层
通过函数得到流水号
本楼点评(0) 收起
发表于 2012-7-10 23:24:55 | 显示全部楼层
本楼点评(0) 收起
发表于 2013-1-25 13:50:02 | 显示全部楼层
学习了
本楼点评(0) 收起
发表于 2013-2-2 23:03:59 | 显示全部楼层
试试
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-5-1 19:49 , Processed in 0.322503 second(s), 57 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表