Skip to content

预生产半成品使用明细 ​

这张表记录的是一次「向导创建预生产计划」改动了什么:向导按缺口排产生成新的预生产计划单时,会把被它接管的原手工预生产单逐行记下来——原来多少、新单多少、差多少。谁怀疑向导把自己的手工量覆盖掉了,就来这里逐行对。

功能路径:生产调度 → 预生产报表 → 预生产半成品使用明细

预生产半成品使用明细列表页:单据日期快捷档、物料名称与源手工单号两个条件,列表列为单据日期、源手工单号、目标新单号、物料名称、原手工数量、新预生产数量、差异数量、备注

一、功能概述 ​

菜单位置:生产调度 → 预生产报表 → 预生产半成品使用明细(页面地址 /admin/SimpProduce/preproducesemiusagereport/)

用途说明
追溯一次向导操作生成了哪张新单、接管了哪几张老单,逐行留痕
核对新预生产数量与原手工数量的差额,一行一个数
定责出现「量被改了」的争议时,用差异行判断是向导算的还是人改的
导出结果可导出 CSV 存档或对账

它不改数据。 页面上没有新增、编辑、保存、删除任何一个按钮,差异行是向导写入的,这里只读。要调整数量,回生产中心改计划单,改完重跑向导会生成新的差异记录,老记录不会被覆盖。

二、界面布局说明 ​

区域内容
查询条单据日期 快捷档 今天 / 昨天 / 本周 / 上周 / 本月 / 上月 / 自定义;物料名称、源手工单号 两个文本条件;右侧 查询 / 重置 / 导出 / ★方案
已选条件默认挂着「单据日期 等于 本月」,点 × 清掉
列表八列,见第三节
分页每页 100 条,上方显示「共 N 条,第 a–b 条」
合计行没有——这张表不做数量合计,八列里没有任何一列配了底部汇总

这张表没有「⚙ 高级筛选」按钮。 预生产报表三张表都只有查询条上那几个条件,不像单据列表那样能按制单人、记账日期再筛一层。要按人查,只能导出去查。

初始进入页面时状态栏显示 请设置查询条件后点击查询,选好日期点【查询】才出数。

三、列与口径 ​

列落库列说明
单据日期fBillDayStr差异记录的日期串(YYYYMMDD),默认排序按它倒序
源手工单号fSourceBillNo被向导接管的原手工预生产计划单单号
目标新单号fTargetBillNo向导新生成的预生产计划单单号
物料名称fInvName差异发生在哪个物料上
原手工数量fOriginalQty接管前那张手工单上的量
新预生产数量fNewQty向导按缺口算出来的量
差异数量fDiffQty红色显示,见下方算法
备注fRemark自由文本

差异数量怎么算 ​

差异数量 = |新预生产数量 − 原手工数量|

注意两点:

  1. 它是绝对值,看不出方向。要知道是多了还是少了,得自己比「原手工数量」和「新预生产数量」两列。
  2. 这个数是在向导写入时就算好落库的,不是页面打开时现算。所以事后修改计划单的数量,这一行的差异数量不会跟着变——它记的是当时那一次接管的结果。

四、业务操作步骤 ​

查一次向导改动 ​

  1. 菜单进入 生产调度 → 预生产报表 → 预生产半成品使用明细;
  2. 单据日期 选到向导执行的那一天(默认是本月,跨月要改);
  3. 知道是哪个物料,就在 物料名称 填关键字;知道原单号,就填 源手工单号;
  4. 点 查询;
  5. 看 差异数量 那一列:为 0 说明向导算出来的量和原来手工量一致,没改动;不为 0 就是被重算过的行。

从差异行回到单据 ​

源手工单号 和 目标新单号 都是生产计划单的单号,拿着它到 生产中心 的列表里搜,就能看到那张单的当前状态。向导执行后,被接管的原手工单会被置成已关闭——这是设计如此,不是有人手工关的。

导出 ​

点 导出,得到 预生产半成品使用明细_年月日时分秒.csv(UTF-8 带 BOM,Excel 直接打开不乱码)。导出的是当前查询条件下的全部显示列,行数上限 10000 条;超出上限时先缩小日期范围分批导。

五、字段与规则详细说明 ​

查询条件 ​

条件类型默认落库字段说明
单据日期快捷档 + 自定义区间本月fBillDayStr点快捷档即自动查询;选「自定义」才出日期区间框
物料名称文本,可切换 包含 / 等于 / 开头为 / 结尾为 / 不等于 / 不包含 / 介于空fInvName输入框提示「输入关键字查询」
源手工单号文本,操作符同上空fSourceBillNo支持部分匹配

没有的条件:分店、工厂/车间、生产组、班次、物料类别、单据状态、制单人。这三张报表的范围控制都比单据列表窄。

数据门径 ​

一条差异记录要出现在这张表上,需要同时满足:

  1. 属于当前账套(fDBID = 0,单厂模式固定 0);
  2. 没打删除标志(fSignDelete 不为 '1');
  3. 日期落在查询区间内。

差异表本身不判单据状态——它是执行日志性质的表,记录的是「当时发生过什么」,即使后来新单被反审核,差异记录仍然在。

数量显示精度 ​

三个数量列按数量类格式化,显示两位小数(末尾的 0 不显示)。所以 3 和 3.00 在页面上都显示成 3,导出 CSV 时同理。

六、典型使用场景 ​

场景一:车间说「向导把我手工准备的量改了」 ​

背景:预生产计划本来是手工做的,某天用了向导生成,第二天车间发现量对不上。 路径:把日期选到用向导那天 → 查该物料 → 看 原手工数量 / 新预生产数量 / 差异数量 三列。 结论怎么下:差异行证明向导确实重算了;差额来自缺口排产(最高库存 − 结存)与手工估量的不同。要回到手工口径,就改用手工新增计划单,别再用向导。

场景二:复盘预生产到底接管了几张单 ​

背景:想知道那天一次向导一共动了多少张老单。 路径:只填日期,不填物料 → 查询 → 按 源手工单号 去重数一遍(导出后在表格里去重更快)。 注意:一张源单可能拆成多行差异(每个物料一行),行数不等于单数。

七、权限控制与前置条件 ​

  • 菜单在「生产调度」下,能看到生产调度就能看到这一页——这一组三张报表没有单独的功能权限项,登录后即放行。
  • 前置条件是:这个账套真的用过「向导创建预生产计划」。没用过,差异表就是空的,页面显示 暂无数据。
  • 向导的入口与执行权限在生产中心,不在这里。

八、常见问题 ​

页面打开就显示「暂无数据」。 原因有两种:一是默认区间是本月,而向导是在上个月或更早跑的——先切 上月 或 自定义;二是这个账套从来没跑过「向导创建预生产计划」,差异表本来就没记录。

差异数量是正数,看不出是多做了还是少做了。 这是设计如此,它取的是绝对值。方向要自己比 原手工数量 与 新预生产数量 两列。

我改了计划单的数量,差异数量没跟着变。 差异数量在向导执行那一刻就算好落库了,它是历史记录,不会随后续修改重算。要一份新的对照,重新跑一次向导。

为什么没有「⚙ 高级筛选」? 预生产报表三张表的筛选条件在代码里就固定为日期 + 物料(使用明细多一个源手工单号),没有开放高级筛选面板。想按制单人、记账日期筛,报表层做不到。

源手工单号在列表里是空的。 说明这条差异不是从手工单接管来的,而是向导直接新建。空值不参与 源手工单号 的「包含」匹配,用这个条件筛会把这类行滤掉。

导出的 CSV 打开是乱码。 导出文件带 UTF-8 BOM,正常应能直接识别。若用某些版本的 Excel 仍乱码,改用「数据 → 从文本」并指定 UTF-8。

这张表和客户端的同名报表数对不上。 两边取数口径不同:客户端的老窗体走半成品完工台账与配方展开,还带班次/生产组维度;网页端只读预生产差异表。核对前先确认对方看的是哪一版,别把口径差当成数据错。

相关文档 ​