NUMBER_GET_NEXT生成范围编号

创建对象 SNRO

首先进入事务码SNRO 创建一个编号范围对象维护
在这里插入图片描述
然后输入短文本和长文本,
编号长度域,可以去se11中去根据业务需求创建想要的长度,
%警告,他的意思是说当你所创建的编号范围达到剩余的多少时,提出警告(例如:我的编号范围是1000~2000,当我的编号到1950时就会提出警告)
在这里插入图片描述
定制的增选项,可以就按照我的来写
在这里插入图片描述
下面我就开始创建编号的范围,点击左上角间隔编辑
点击新增创建一个间隔 号/起始编号/截止编号这三个必填的,如果是多个间隔的话,切记间隔与间隔之间不可有交集
然后保存即可
在这里插入图片描述
当你保存后会弹出这个框,他的意思是说,这个间隔对象是不能自动传输到其他系统上的,比如你在300创建的间隔对象,500则没有这个间隔对象,需要重新去500创建即可.
在这里插入图片描述

代码实现

"选择间隔对象
  CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'
    EXPORTING
      object           = 'ZWFDLSH' "创建的间隔对象名称
    EXCEPTIONS
      foreign_lock     = 1
      object_not_found = 2
      system_failure   = 3
      OTHERS           = 4.
"获取编号
 CALL FUNCTION 'NUMBER_GET_NEXT'
      EXPORTING
        nr_range_nr             = lv_rang "间隔号
        object                  = 'ZWFDLSH'
*       QUANTITY                = '1'
*       SUBOBJECT               = ' '
*       TOYEAR                  = '0000'
*       IGNORE_BUFFER           = ' '
      IMPORTING
        number                  = lv_seqno "最终生成的编号
*       QUANTITY                =
*       RETURNCODE              =
      EXCEPTIONS
        interval_not_found      = 1
        number_range_not_intern = 2
        object_not_found        = 3
        quantity_is_0           = 4
        quantity_is_not_1       = 5
        interval_overflow       = 6
        buffer_overflow         = 7
        OTHERS                  = 8.
"关闭该功能
CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'
      EXPORTING
        object           = 'ZWFDLSH'
      EXCEPTIONS
        object_not_found = 1
        OTHERS           = 2.
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
void exampaper(const char* choice_question_file) { //问卷的生成 FILE* choice_fp = fopen(choice_question_file, "r"); if (choice_fp == NULL) { printf("无法打开题文件\n"); return; } FILE* exam_paper_fp = fopen("D:\VS\校友系统\sj.txt", "w"); if (exam_paper_fp == NULL) { printf("无法打开试卷文件\n"); return; } int choice_question_count = get_question_count(choice_question_file); int choice_question_numbers[MAX_QUESTION_LEN] = { 0 }; int choice_question_number; int number = 1; int count = 0; // 已经抽取到的题目数 while (count < get_question_count(choice_question_file)) { choice_question_number = get_next_value(1, choice_question_count); if (choice_question_numbers[choice_question_number - 1] == 0) { choice_question_numbers[choice_question_number - 1] = 1; fseek(choice_fp, 0, SEEK_SET); int curr_choice_question_number; char question[MAX_QUESTION_LEN]; char option_a[MAX_OPTION_LEN]; char option_b[MAX_OPTION_LEN]; char option_c[MAX_OPTION_LEN]; char option_d[MAX_OPTION_LEN]; while (fscanf(choice_fp, "%d %s %s %s %s %s ", &curr_choice_question_number, question,option_a, option_b, option_c, option_d) != EOF) { if (curr_choice_question_number == choice_question_number) { // 找到题目,打印到调查问卷文件中 fprintf(exam_paper_fp, "%d.", number++); fprintf(exam_paper_fp, "%s", question); fprintf(exam_paper_fp, " A.%s", option_a); fprintf(exam_paper_fp, " B.%s", option_b); fprintf(exam_paper_fp, " C.%s", option_c); fprintf(exam_paper_fp, " D.%s\n", option_d); break; } } count++; } } fprintf(exam_paper_fp, "\n"); // 关闭文件 fclose(choice_fp); fclose(exam_paper_fp); }
05-31

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值