using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Demo.BillView.PRD { [Description("齐套分析物料明细")] [HotUpdate] public class ProCompleteAnalysisMateriel : AbstractDynamicFormPlugIn { bool did = false; string FMatrailId = ""; public override void OnLoad(EventArgs e) { base.OnLoad(e); if (this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr") == null) { SearchList(); } else { if (did) return; string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr").ToString();//主生产订单主内码 FMatrailId = this.View.OpenParameter.GetCustomParameter("FMatrailId").ToString();//物料 string sql = string.Format(@" /*dialect*/ SELECT A.*,T6.FNAME,T6.FSPECIFICATION FROM view_JIT_MOMaterReadysBill A join t_BD_Material_L t6 on A.FHMATERID = t6.FMATERIALID WHERE FHICMOINTERID NOT IN (SELECT FID FROM SC_WORKBILLSORTBILLMAIN WHERE FDOCUMENTSTATUS IN ('E')) AND FCOMPLETECOUNT1>0 AND FHMATERID ='{0}' AND datediff(d,getdate(),A.FPLANDATE)>=0 ORDER BY FPLANDATE ASC,FHLeftQty DESC,FWORKSHOPID ", FMatrailId); DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { this.Model.CreateNewEntryRow("FEntity"); this.Model.SetValue("FSEQ", i + 1, i);//序号 this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);//物料ID this.Model.SetValue("FMateralDetailNumber", dt.Rows[i]["FNUMBER"], i);//物料编码 this.Model.SetValue("FMateralDetailNAME", dt.Rows[i]["FNAME"], i);//物料名称 this.Model.SetValue("FMateralDetailModel", dt.Rows[i]["FSPECIFICATION"], i);//物料规格型号 this.Model.SetValue("FScOrderNoDetail", dt.Rows[i]["FPRDBILLNO"], i);//生产订单号 this.Model.SetValue("FSalorderNo", dt.Rows[i]["FSALEORDERNO"].ToString(), i);//销售订单号 this.Model.SetValue("FOccupyCount", dt.Rows[i]["FCompleteCount1"], i);//占用数量 = 齐套数量 this.Model.SetValue("FOccupyPickedCount", dt.Rows[i]["FOccupyPickedCount"], i);//领料占用数量 this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHLeftQty"], i);//当前计算库存情况 this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//库存组织 this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//货主类型 this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//货主 this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//日计划日期 this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间 this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库 } } did = true; } } /// /// 查询事件 /// public void SearchList() { string sqlwhere = " where FCompleteCount1>0 and 1=1 AND datediff(d,getdate(),a.FPLANDATE)>=0 "; string sql = string.Format(@"/*dialect*/select a.*,T6.FNAME,T6.FSPECIFICATION from view_JIT_MOMaterReadysBill a join t_BD_Material_L t6 on A.FHMATERID = t6.FMATERIALID "); //生产订单号 string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo")); if (!string.IsNullOrEmpty(PRDBillNo)) sqlwhere += $" and FPRDBillNo='{PRDBillNo}'"; //销售订单号 string FSALEORDERNO = Convert.ToString(this.Model.GetValue("FSelOrderNo")); if (!string.IsNullOrEmpty(FSALEORDERNO)) sqlwhere += $" and FSALEORDERNO='{FSALEORDERNO}'"; if (FMatrailId != "") sqlwhere += $" and FHMATERID='{FMatrailId}'"; sql += sqlwhere + " ORDER BY FPLANDATE ASC,FHLeftQty DESC,FWORKSHOPID"; DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; this.Model.DeleteEntryData("FEntity"); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { this.Model.CreateNewEntryRow("FEntity"); this.Model.SetValue("FSEQ", i + 1, i);//序号 this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);//物料ID this.Model.SetValue("FMateralDetailNumber", dt.Rows[i]["FNUMBER"], i);//物料编码 this.Model.SetValue("FMateralDetailNAME", dt.Rows[i]["FNAME"], i);//物料名称 this.Model.SetValue("FMateralDetailModel", dt.Rows[i]["FSPECIFICATION"], i);//物料规格型号 this.Model.SetValue("FScOrderNoDetail", dt.Rows[i]["FPRDBILLNO"], i);//生产订单号 this.Model.SetValue("FSalorderNo", dt.Rows[i]["FSALEORDERNO"].ToString(), i);//销售订单号 this.Model.SetValue("FOccupyCount", dt.Rows[i]["FCompleteCount1"], i);// 占用数量 = 齐套数量 this.Model.SetValue("FOccupyPickedCount", dt.Rows[i]["FOccupyPickedCount"], i);// 领料占用数量 this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHLeftQty"], i);//当前计算库存情况 this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//库存组织 this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//货主类型 this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//货主 this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//日计划日期 this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间 this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库 } } this.View.UpdateView(); did = true; } public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.ToUpper() == "TBFILTER") { SearchList(); } } } }