AX2009按照批次生产日期预留
AX2009如果想按照批处理号预留,它默认是按照InventBatchId排序的,但并不是InventBatchd小的批次的生产日期就早,所以这个逻辑得改一下,让它按照InventBatch的ProdDate排序。
需要修改几个方法
1.修改InventSum的newQuery
最好创建一个新的方法
client server static Query ERM_NewQuery(
Query query,
ItemId itemId,
InventDim inventDimCriteria,
InventDimParm inventDimParmCriteria,
InventDimParm inventDimParmGroupBy,
container dimFields = InventDim::dimFieldList()
)
{
QueryBuildDataSource qbsSum;
QueryBuildDataSource qbsDim;
//<ERM>
QueryBuildDataSource qbsBatch;
//</ERM>
QueryBuildRange queryRange; boolean doFindRange;
; if (!query)
query = new Query(); if (query.dataSourceTable(tablenum(InventSum)))
{
qbsSum = query.dataSourceTable(tablenum(InventSum));
qbsSum.sortClear(); doFindRange = true;
}
else
qbsSum = query.addDataSource(tablenum(InventSum)); if (query.dataSourceTable(tablenum(InventDim)))
{
qbsDim = query.dataSourceTable(tablenum(InventDim));
qbsDim.sortClear(); doFindRange = true;
}
else
qbsDim = qbsSum.addDataSource(tablenum(InventDim)); qbsDim.joinMode(JoinMode::InnerJoin);
qbsDim.relations(true); //<ERM> if(query.dataSourceTable(tableNum(InventBatch)))
{
qbsBatch = query.dataSourceTable(tablenum(InventBatch));
qbsBatch.sortClear();
}
else
qbsBatch = qbsDim.addDataSource(tableNum(InventBatch)); qbsBatch.joinMode(JoinMode::InnerJoin);
qbsBatch.relations(true); //</ERM>
if (!inventDimParmCriteria.ClosedFlag)
{
queryRange = SysQuery::findOrCreateRange(qbsSum, fieldnum(InventSum,Closed));
queryRange.value(queryValue(NoYes::No));
} if (inventDimParmCriteria.ItemIdFlag)
{
queryRange = doFindRange ? qbsSum.findRange(fieldnum(InventSum,ItemId)) : null;
if (! queryRange)
queryRange = qbsSum.addRange(fieldnum(InventSum,ItemId)); if (itemId)
queryRange.value(queryValue(itemId));
else
queryRange.value(SysQuery::valueEmptyString());
} if (inventDimParmGroupBy.ItemIdFlag)
{
qbsSum.addSortField(fieldnum(InventSum,ItemId));
qbsSum.orderMode(OrderMode::GroupBy);
} InventSum::queryAddSumFields(qbsSum);
InventDim::ERM_queryDatasourceAddRangeSortFromParms(qbsDim,qbsBatch,doFindRange,inventDimCriteria,inventDimParmCriteria,inventDimParmGroupBy,dimFields);
InventSum::queryAddHint(query,inventDimCriteria,inventDimParmCriteria,qbsSum,qbsDim); //info(qbsSum.toString());
return query;
}
主要是增加InventBatch的关联。
2.修改queryDatasourceAddRangeSortFromParms方法,增加ProdDate排序字段
static public void ERM_queryDatasourceAddRangeSortFromParms(
QueryBuildDataSource qbsDim,
QUeryBuildDataSource qbsBatch,
boolean doFindRange,
InventDim inventDimCriteria,
InventDimParm inventDimParmCriteria,
InventDimParm inventDimParmGroupBy,
container dimFields = InventDim::dimFieldList()
)
{
Counter h;
fieldId x,y;
QueryBuildRange queryRange;
boolean doGroupByDim; for (h=1;h<=conlen(dimFields);h++)
{
y = conpeek(dimFields, h);
x = InventDim::dim2dimParm(conpeek(dimFields, h)); if (inventDimParmCriteria.(x))
{
queryRange = doFindRange ? qbsDim.findRange(y) : null;
if (! queryRange)
queryRange = qbsDim.addRange(y); if (inventDimCriteria.(y))
queryRange.value(queryValue(inventDimCriteria.(y)));
else
queryRange.value(SysQuery::valueEmptyString());
} if (inventDimParmGroupBy.(x))
{
qbsDim.addSortField(y);
doGroupByDim = true;
}
} qbsBatch.addGroupByField(fieldNum(InventBatch,ProdDate));
qbsBatch.addOrderByField(fieldNum(InventBatch,ProdDate),SortOrder::Ascending); if (doGroupByDim)
qbsDim.orderMode(OrderMode::GroupBy);
else
qbsDim.orderMode(OrderMode::OrderBy);
}
3.修改InventUpd_Reservation的updateMore方法,调用InventSum刚刚创建的newQuery方法构造查询。
AX2009按照批次生产日期预留的更多相关文章
- debug查找主板生产日期
实验环境:XP(XP以上系统没有自带debug) 查询主板生产日期,发现时间为07/02/15 -e命令进行修改日期,尝试将07年改为08年 在查询一下修改完成后的日期,发现日期不变 原因:这块内存是 ...
- c++ 根据生产日期,保质期求出过期时间
第4关:计算日期 挑战任务 我们吃的食物都有保质期,现在食品监督管理局想要制作一个能准确计算食品过期日期的小程序,需要请你来进行设计. 例如:A食品在2018年1月1日生产,保质期是20天,则它的过期 ...
- log4j 日志大小限制 分成30一个 不按日期分日志 按大小分成 按生产日期
首先说说生成按日期.不解释,大家都懂的,这种方法的缺点是很吃硬盘空间 log4j.rootLogger=INFO,logfile,stdout log4j.logger.java.sql=DEBUG, ...
- SAP MM模块之批次管理
1.Batch的定义:Batch is a quantity any drug produced during a given cycle of manufacture. The essence of ...
- MES系统在小批量电子行业生产管理中的应用
小批量电子产品生产管理的主要问题 电子电器制造类企业,既有单件小批量生产,也有批量生产:有按库存生产,也有按订单生产,属于典型的离散制造行业.因产品的不同其生产工艺流程也不尽相同,生产设备的布置不是按 ...
- SIMATIC IT HISTORIAN在烟用二醋酸纤维素生产中应用
原文转载自:http://www.soft6.com/tech/5/54287.html 本文介绍了西门子MES核心产品SIMATIC IT HISTORIAN实时数据库及客户端工具在流程生产中的具体 ...
- sql:[dbo].[smt_MES_RptProductDaily] 生产日报表
USE [ChangHongMES_904]GO/****** Object: StoredProcedure [dbo].[smt_MES_RptProductDaily] Script Date: ...
- 表likp新增第一次过账输入日期字段,vl02n/vl01n/vl03n/vl06o的增强
在程序:MV50AFZ1的 FORM USEREXIT_SAVE_DOCUMENT_PREPARE. *begin of ADD CRQ000000012135 CAIZJIAN 2014/3/25( ...
- java中的日期处理
学习Java日期处理,看见这一篇比较详细,转载之. 转自:http://www.cnblogs.com/hqr9313/archive/2012/04/19/2458221.html 时间日期1) ...
随机推荐
- day13_API第三天
1.StringBuffer类(掌握) 1.概念 字符串缓冲区类 2.机制 StringBuffer采用的是缓冲区机制. 一开始,首先开辟一些空间,然后,随着数据的增多,还可以继续 ...
- ubuntu 常用命令
此处为使用ubuntu中常用的命令,不会全面深入讲解命令,仅供日常使用查看,以备遗忘. 不定时更新! 1.远程传输文件(小文件) scp [user@源文件地址:/目录/.../file] [目的地址 ...
- 机械键盘那些事[我用过的minila Filco cherry 3494 阿米洛87]
用过几月下来.最终现在还能流畅使用的,就剩下3494 跟 minila了. 想起购买的初衷.cherry是泰斗,红轴轻柔,所以三把全红轴. 之后,觉得携带外出不方便,所以就又入了个MINILA. 再后 ...
- ZFIR054-现金流量表
*********************************************************************** * Title : ZFIR102 * * Applic ...
- poj 1363
这是一道数据结构的问题,用到了栈的知识.题目大意讲的是每一次有N辆车从A到B,但是要将车辆的顺序重新排列,可以通过中转站C来辅助排列,但是C符合先进后出的原则,这一点和栈的特性相同. 整个重新排序的过 ...
- yum info 查不到nginx下载info的问题
如果查看nginx信息提示nginx找不到,那么可以通过修改rpm源来进行后续步骤,执行命令:rpm -ivh http://nginx.org/packages/centos/6/noarch/RP ...
- mysql加单引号和不加单引号的性能比较
刚刚我们说过了,生活中难免会有一些不如意,比如,我们用一个字符串类型的字段来作为主键,表面上,这太不如意了,然而,事实也证明这是有用的.问题也就出来了,当在查询语句中对该字段值加上单引号和不加查询耗时 ...
- VISIBLE、INVISIBLE、GONE的区别
VISIBLE:设置控件可见 INVISIBLE:设置控件不可见 GONE:设置控件隐藏 而INVISIBLE和GONE的主要区别是:当控件visibility属性为INVISIBLE时,界面保留了v ...
- JS特殊函数(Function()构造函数、函数直接量)区别介绍
函数定义 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 函数的构造语法有这三种: 1.function functionName(arg0, ...
- Uncaught TypeError: _react2.default.findDOMNode is not a function
react 查找某节点时报错 Uncaught TypeError: _react2.default.findDOMNode is not a function 代码: import React, { ...