二开案例.单据插件.获取单据编号
【应用场景】平台封装的保存操作会给单据自动填充单据编号,平台也提供了接口,支持用户手动获取指定编码规则下的新的单据编号。
【案例演示】采购订单,编辑界面,演示获取单据类型为【标准采购订单】,编码规则为【采购订单标准编码规则】的新的单据编号。
【实现步骤】
<1>编写单据插件,代码如下。
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【单据插件】获取单据编号
/// </summary>
[Description("【单据插件】获取单据编号"), HotUpdate]
public class GetBillNoBillPlugIn : AbstractBillPlugIn
{
/// <summary>
/// 主菜单点击事件
/// </summary>
/// <param name="e"></param>
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
var billNoField = this.View.BillBusinessInfo.GetBillNoField();
if (e.BarItemKey.EqualsIgnoreCase("tbGetBillNo"))
{
#region 给指定业务对象的单据编号字段获取新的单据编号
var options = new Dictionary<string, object>();
options["CodeTime"] = 1; // 执行时机,0表示新增时获取单据编号,1表示保存时获取单据编号
options["UpdateMaxNum"] = 1; // 是否更新最大流水号
this.Model.DataObject[billNoField.PropertyName] = "";
var billNos = BusinessDataServiceHelper.GetBillNo(this.Context, this.View.BillBusinessInfo, new[] { this.Model.DataObject }, options);
this.View.UpdateView(billNoField.Key);
this.View.ShowMessage("获取到新的单据编号为:" + string.Join(",", billNos.Select(o => o.BillNo)));
return;
#endregion
}
if (e.BarItemKey.EqualsIgnoreCase("tbGetBillNos"))
{
#region 给指定业务对象的单据编号字段【批量】获取新的单据编号
// 一次性获取10个单据编号
var billNos = BusinessDataServiceHelper.GetListBillNO(this.Context, this.View.BillBusinessInfo.GetForm().Id, 10, "ffa5c9cf40984e9d9ab5574bb257c1a7");
this.View.ShowMessage("获取到新的单据编号为:" + string.Join(",", billNos));
return;
#endregion
}
}
}
}
/*
-- 获取编码规则数据
SELECT a.FRULEID AS 编码规则内码,b.FNAME AS 编码规则名称,a.* FROM T_BAS_BILLCODERULE a
LEFT JOIN T_BAS_BILLCODERULE_L b ON a.FRULEID=b.FRULEID AND b.FLOCALEID=2052
WHERE b.FNAME='采购订单标准编码规则'
*/
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展采购订单,主菜单新增2个菜单项,注册表单插件,保存元数据,开发完毕。
现在可以登录业务站点,打开采购订单,检验一下插件效果啦。
获取一个新的单据编号:
批量获取10个新的单据编号:
【知识点】
<1>编码规则相关表:
-- 编码规则数据
SELECT a.FRULEID AS 编码规则内码,b.FNAME AS 编码规则名称,a.* FROM T_BAS_BILLCODERULE a LEFT JOIN T_BAS_BILLCODERULE_L b ON a.FRULEID=b.FRULEID AND b.FLOCALEID=2052 WHERE b.FNAME='采购订单标准编码规则'
-- 编码规则的规则明细
SELECT * FROM T_BAS_BILLCODERULEENTRY WHERE FRULEID='ffa5c9cf40984e9d9ab5574bb257c1a7'
-- 编码规则的生成模板
SELECT * FROM T_BAS_BILLCODES WHERE FRULEID='ffa5c9cf40984e9d9ab5574bb257c1a7'
<2>编码规则优先级:
单据类型绑定的编码规则>默认编码规则>元数据绑定的编码规则。
<3>支持一个单据多套编码规则,更多获取编号的接口可参考BusinessDataServiceHelper.GetBillNo的多个重载函数。
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.单据插件.获取单据编号
本文2024-09-23 04:20:58发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164730.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