其他单据参与【预计量统计】
如果想统计二开单据的预计出/入,需要二开插件来完成!具体步骤如下:
1. 继承抽象基类:AbstractExpectQtyPlugin
该抽象基类位于Kingdee.K3.Core.ExpectQty命名空间下。主要定义了以下方法和属性:
protected AbstractExpectQtyPlugIn(string expectType, string billname)
{
this.ExpectType = expectType;
this.BillName = billname;
}
/// <summary>
/// 预计类型:OUT/IN
/// </summary>
public string ExpectType { get; set; }
/// <summary>
/// 单据标识
/// </summary>
public string BillName { get; set; }
/// <summary>
/// 上下文,使用属性注入
/// </summary>
public Context Context { get; set; }
/// <summary>
/// 预计量参数,使用属性注入
/// </summary>
public ExpectQtySystemParameter ExpectSystemParameter { get; set; }
/// <summary>
/// 获取当前单据的预计出/入设置
/// </summary>
public ExpectQtySystemParameter.ExpectQtyBillSetting CurrentExpectQtyBillSetting
{
get
{
return this.ExpectSystemParameter.ExpectOutQtyBillSettings
.Concat(this.ExpectSystemParameter.ExpectInQtyBillSettings)
.FirstOrDefault(billSetting => billSetting.ExpectType.EqualsIgnoreCase(this.ExpectType)
&& billSetting.Bill.EqualsIgnoreCase(this.BillName));
}
}
/// <summary>
/// 提供预计量查询SQL
/// </summary>
/// <returns></returns>
protected abstract string PrepareExpectQtyQuerySql();
继承该抽象基类时,需要在构造函数中指定,ExpectType
和BillName
。其中ExpectType
用于指定该单据是统计预计出还是预计入,分别对应OUT
和IN
(大写);BillName
即单据标识(大小写敏感,和BOS IDE上定义的单据标识保持一致)。
2. 方法重载
按以上所述,根据预计类型ExpectType
重载对应的方法。该方法的重载,主要是构造查询SQL,按照指定的表结构查询指定的列即可。需要查询以下列:
FTYPE VARCHAR(10) DEFAULT ' ',--统计类型【OUT\IN】
FBILLNAME VARCHAR(36) DEFAULT ' ',--单据标识(大小写敏感,必须与单据上定义的标识一致)
FTABLENAME VARCHAR(36) DEFAULT ' ',--所在表名(大小写敏感,必须与单据上定义的标识一致)
FBILLNO VARCHAR(36) DEFAULT ' ', --单据编号
FBILLTYPEID VARCHAR(36) DEFAULT '', --单据类型
FSRCBILLNO VARCHAR(36) DEFAULT ' ', --源单编号
FSOENTRYID INT DEFAULT 0, --原始订单分录
FDOCUMENTSTATUS CHAR(1) DEFAULT '0',--单据状态
FID INT DEFAULT 0,--单据内码
FENTRYID VARCHAR(36) DEFAULT 0, --分录内码
FBILLSEQ INT DEFAULT 0, --分录行号
FMASTERID INT DEFAULT 0,--物料编码(需要关联T_BD_MATERIAL,查询FMASTERID)
FBASEUNITID INT DEFAULT 0, --基本计量单位
FBASEQTY AS FSTOCKBASEQTY,--基本单位数量(库存单位)
FSTOCKORGID INT DEFAULT 0,--库存组织
FSTOCKID INT DEFAULT 0,--仓库
FSTOCKLOCID INT DEFAULT 0,--仓位
FAUXPROPID INT DEFAULT 0,--辅助属性
FMTONO VARCHAR(50) DEFAULT ' ',--计划跟踪号
FBOMID INT DEFAULT 0,--BOM版本
FLOT INT DEFAULT 0,--批号
FLOT_TEXT NVARCHAR(30) DEFAULT ' ',--批号文本
FPRODUCEDATE DATETIME DEFAULT '19910101',--生产日期
FEXPIRYDATE DATETIME DEFAULT '19910101',--过期日期
FSTOCKSTATUSID INT DEFAULT 0,--库存状态
FOWNERTYPEID VARCHAR(36) DEFAULT ' ',--货主类型
FOWNERID INT DEFAULT 0,--货主
FKEEPERTYPEID VARCHAR(36) DEFAULT ' ',--保管者类型
FKEEPERID INT DEFAULT 0,--保管者
'BD_Customer' AS FSUPPLYSOURCETYPE,--供应来源类型
--销售类订单是客户(BD_Customer),采购类订单是供应商(BD_Supplier),生产类订单是部门(BD_Department),其他的为空
FCUSTOMERID AS FSUPPLYSOURCEID,--供应来源
FDATE, --单据日期
FREFDELIVERYDATE --参考要货日期
其中FTYPE
和FBILLNAME
,与定义的ExpectType
和FBillName
属性保持一致即可(大小写敏感)。若对应列为空,则按对应列字段类型,给予默认值即可。
注意所有数量字段,需要按基本单位查询!!!
3. 举例说明(其他出库单,统计预计出)
namespace Kingdee.K3.SCM.Business.DynamicForm.ExpectQty
{
[Description("其他出库单预计出统计插件")]
public class MisdilveryExpectQtyPlugIn : AbstractExpectQtyPlugIn
{
public MisdilveryExpectQtyPlugIn()
: base("OUT", "STK_MisDelivery")
{ }
protected override string PrepareExpectOutQtyQuerySql()
{
string sql = @"
SELECT 'OUT' FTYPE,
'STK_MisDelivery' FBILLNAME, --来源单据
'T_STK_MISDELIVERY' FTABLENAME, --所在表名
TSTM.FBILLNO, --单据编号
TSTM.FBILLTYPEID,--单据类型
TSTMER.FSRCBILLNO, --源单编号
0 AS FSOENTRYID,--订单分录
TSTM.FDOCUMENTSTATUS AS FDOCUMENTSTATUS, --状态
TSTM.FID, --单据内码
TSTME.FENTRYID AS FENTRYID, --分录内码
TSTME.FSEQ AS FBILLSEQ, --行号
TBM.FMASTERID AS FMASTERID, --物料
TSTME.FBASEUNITID AS FBASEUNITID, --基本计量单位
(CASE WHEN TSTM.FSTOCKDIRECT ='RETURN' THEN 0-TSTME.FBASEQTY ELSE TSTME.FBASEQTY END) AS FSTOCKBASEQTY, --基本单位数量(退货方向取负)
TSTM.FStockOrgID AS FSTOCKORGID, --发货组织
TSTME.FSTOCKID AS FSTOCKID, --出货仓库
TSTME.FSTOCKLOCID AS FSTOCKLOCID, --出货仓位
TSTME.FAUXPROPID AS FAUXPROPID,--辅助属性
TSTME.FMTONO AS FMTONO, --计划跟踪号
TSTME.FBOMID AS FBOMID, --BOM编码
TSTME.FLOT AS FLOT, --批号ID
TSTME.FLOT_TEXT AS FLOT_TEXT, --批号文本
TSTME.FPRODUCEDATE AS FPRODUCEDATE, --生产日期
TSTME.FEXPIRYDATE AS FEXPIRYDATE, --到期日期
CASE
WHEN TSTME.FSTOCKSTATUSID > 0 THEN
TSTME.FSTOCKSTATUSID
ELSE
10000
END AS FSTOCKSTATUSID, --库存状态
TSTME.FOWNERTYPEID AS FOWNERTYPEID, --货主类型
TSTME.FOWNERID AS FOWNERID, --货主
' ' AS FKEEPERTYPEID, --保管者类型
0 AS FKEEPERID, --保管者
'BD_Department' AS FSUPPLYSOURCETYPE,
TSTM.FDEPTID AS FSUPPLYSOURCEID,
TSTM.FDATE ,
null AS FREFDELIVERYDATE --参考要货日期
FROM T_STK_MISDELIVERY TSTM
INNER JOIN T_STK_MISDELIVERYENTRY TSTME
ON TSTME.FID = TSTM.FID
INNER JOIN T_BD_MATERIAL TBM
ON TBM.FMATERIALID = TSTME.FMATERIALID
LEFT JOIN T_STK_MISDELIVERYENTRY_R TSTMER
ON TSTME.FENTRYID = TSTMER.FENTRYID
WHERE TSTM.FDOCUMENTSTATUS <> 'Z'
AND TSTM.FDOCUMENTSTATUS <> 'C' --统计单据状态不为暂存状态和审核状态(审核状态的出库单已经出库啦)
AND TSTM.FCANCELSTATUS = 'A' --单据未取消且未关闭
";
return sql;
}
}
}
查询条件中,可以根据业务,添加相关的过滤条件。比如排除已关闭、已作废的单据状态等。
写好sql,请务必在数据库中执行,以确定是否执行有误,并再三确认查询列是否缺失。
4. 参数设置
打开预计可发量参数
根据统计的预计可发量类型,选择对应的【预计出/入单据】
在插件绑定中,输入自定义预计可发量查询插件的完全限定名。
选择统计的单据,勾选统计的时点(单据状态),若插件配置正确,即可成功启用。
根据业务需求,配置预计出\入计算公式
插件绑定
其他单据参与【预计量统计】
如果想统计二开单据的预计出/入,需要二开插件来完成!具体步骤如下:1. 继承抽象基类:AbstractExpectQtyPlugin该抽象基类位于Kingdee.K3...
点击下载文档
本文2024-09-16 19:08:10发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-26636.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf
热门文章