如何处理MIGO取消物料凭证报错:“只是可能对有相同的价格控制进行倒记账(本月S,前月V)” & “仅在 QM 中修改物料质量检验库存”

5 篇文章 3 订阅

仓库同事反馈 ,MIGO取消物料凭证报错:“只是可能对有相同的价格控制进行倒记账(本月S,前月V),如下图:

我一看报错以为是物料临时改了什么配置导致不能冲销物料凭证了。再后来细查了一下。发现是因为仓库要取消的凭证是上月的,而上月的物料账期关闭了,仓库没有把过账日期改到了当月,所以出现了这个报错。让用户把过账日期改为当月后,这个报错就没有了。

 但用户下去操作后,又报上来另一个问题:“仅在 QM 中修改物料质量检验库存”。如下图:

QA495

仅在 QM 中修改物料质量检验库存

消息编号 QA495

诊断

需要从检验库存到/从进行库存过帐。对于物料3040100000000R002这是不允许的,因为已经通过 QM 激活了质量检验控制。

可能出现以下情况:

  • 应该增加检验库存,尽管没有预知当前货物移动的检验
  • 尽虽然只能使用  QM 事务来这样做,应该审批检验库存。

系统响应

不能执行库存过帐。

步骤

在物料主数据的质量管理视图中检查物料3040100000000R002的 QM 检验数据和移动类型。

例外:

  • 如果将返回的交货过帐到有指代采购订单的供应商或取消收货,建议订单中的库存标识。

按要求检查并修改此建议。

可能已经传输了库存,因此,它已不在检验库存中。

我经过一番功夫查找资料。最后我取消物料视图的【质检设置】的勾勾,就解决了问题。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是实现该功能的C语言代码: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义图书信息结构体 typedef struct BookInfo { char id[20]; // 登录号 char title[50]; // 书名 char author[50]; // 作者名 char category[20]; // 分类号 char publisher[50]; // 出版单位 char pub_date[20]; // 出版时间 float price; // 价格 } BookInfo; // 定义函数声明 void showMenu(); void addBook(); void viewBooks(); void queryBooks(); // 全局变量 FILE *fp; int main() { int choice; while (1) { showMenu(); printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: addBook(); break; case 2: viewBooks(); break; case 3: queryBooks(); break; case 4: printf("谢谢使用!\n"); exit(0); default: printf("输入有误,请重新输入!\n"); break; } } return 0; } /** * 显示菜单 */ void showMenu() { printf("\n"); printf("************* 图书信息管理系统 *************\n"); printf(" 1. 图书信息录入功能\n"); printf(" 2. 图书信息浏览功能\n"); printf(" 3. 查询和排序功能\n"); printf(" 4. 退出系统\n"); printf("********************************************\n"); } /** * 图书信息录入功能 */ void addBook() { BookInfo book; printf("请输入图书信息:\n"); printf(" 登录号:"); scanf("%s", book.id); printf(" 书名:"); scanf("%s", book.title); printf(" 作者名:"); scanf("%s", book.author); printf(" 分类号:"); scanf("%s", book.category); printf(" 出版单位:"); scanf("%s", book.publisher); printf(" 出版时间:"); scanf("%s", book.pub_date); printf(" 价格:"); scanf("%f", &book.price); // 打开“book.txt”文件,以追加方式写入图书信息 fp = fopen("book.txt", "a"); if (fp == NULL) { printf("文件打开失败!"); exit(0); } fwrite(&book, sizeof(BookInfo), 1, fp); fclose(fp); printf("图书信息录入成功!\n"); } /** * 图书信息浏览功能 */ void viewBooks() { BookInfo book; // 打开“book.txt”文件,以读取方式读取图书信息 fp = fopen("book.txt", "r"); if (fp == NULL) { printf("文件打开失败!"); exit(0); } printf("登录号\t书名\t作者名\t分类号\t出版单位\t出版时间\t价格\n"); while (fread(&book, sizeof(BookInfo), 1, fp) > 0) { printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n", book.id, book.title, book.author, book.category, book.publisher, book.pub_date, book.price); } fclose(fp); } /** * 查询和排序功能 */ void queryBooks() { BookInfo book; char keyword[50]; int choice, i, j, k; int count = 0; BookInfo books[100]; // 打开“book.txt”文件,以读取方式读取图书信息 fp = fopen("book.txt", "r"); if (fp == NULL) { printf("文件打开失败!"); exit(0); } printf("请输入查询关键词:"); scanf("%s", keyword); printf("请选择查询方式:\n"); printf(" 1. 按书名查询\n"); printf(" 2. 按作者名查询\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: while (fread(&book, sizeof(BookInfo), 1, fp) > 0) { if (strstr(book.title, keyword) != NULL) { books[count++] = book; } } break; case 2: while (fread(&book, sizeof(BookInfo), 1, fp) > 0) { if (strstr(book.author, keyword) != NULL) { books[count++] = book; } } break; default: printf("输入有误,请重新输入!\n"); return; } fclose(fp); // 对查询结果按价格排序 for (i = 0; i < count - 1; i++) { for (j = i + 1; j < count; j++) { if (books[i].price > books[j].price) { BookInfo temp = books[i]; books[i] = books[j]; books[j] = temp; } } } // 输出查询结果 printf("登录号\t书名\t作者名\t分类号\t出版单位\t出版时间\t价格\n"); for (k = 0; k < count; k++) { printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n", books[k].id, books[k].title, books[k].author, books[k].category, books[k].publisher, books[k].pub_date, books[k].price); } } ``` 代码说明: 1. 在代码开头,定义了一个结构体 `BookInfo`,用于存储图书信息。 2. 在 `main()` 函数,使用一个死循环展示菜单,并根据用户的选择调用不同的函数实现不同的功能。 3. `addBook()` 函数实现图书信息的录入功能,从控制台读取图书信息,并将其写入文件 `"book.txt"` 。 4. `viewBooks()` 函数实现图书信息的浏览功能,从文件 `"book.txt"` 读取图书信息,并打印到控制台上。 5. `queryBooks()` 函数实现图书信息的查询和排序功能,从文件 `"book.txt"` 读取图书信息,并根据用户的查询条件进行查询,然后按照价格从小到大排序,并打印到控制台上。 6. 在函数使用了文件操作,包括打开文件、读写文件和关闭文件等操作,需要注意的是,文件名和文件路径需要根据实际情况进行修改。 注意:在实际运行,可以在程序运行创建一个空文件 `"book.txt"`,用于存储图书信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值