using Kingdee.BOS.Core.DynamicForm;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
using Kingdee.BOS.Orm.DataEntity;
|
using Kingdee.BOS.Util;
|
using System;
|
using System.ComponentModel;
|
using System.Data;
|
using Kingdee.BOS.ServiceHelper;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Core.Metadata.EntityElement;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
|
using Kingdee.BOS.Core.List;
|
using Kingdee.BOS.Core.CommonFilter;
|
using System.Collections.Generic;
|
|
namespace Demo.BillView.PRD
|
{
|
[Description("齐套分析列表功能")]
|
[HotUpdate]
|
public class ProCompleteAnalysisDetail : AbstractDynamicFormPlugIn
|
{
|
bool did = false;
|
string FHICMOInterID = "";//日计划工单内码
|
string tempName = "JIT_MOMaterReadysBill";//表名称
|
|
public override void OnLoad(EventArgs e)
|
{
|
//LogHelper.Info("[齐套分析明细加载列表]");
|
base.OnLoad(e);
|
if (this.View.OpenParameter.GetCustomParameter("FHICMOInterID") == null)
|
{
|
SearchList();
|
ChangeColor();
|
}
|
else
|
{
|
if (did)
|
return;
|
if (this.View.OpenParameter.GetCustomParameter("tempName") != null)
|
tempName = this.View.OpenParameter.GetCustomParameter("tempName")?.ToString();//表名
|
FHICMOInterID = this.View.OpenParameter.GetCustomParameter("FHICMOInterID").ToString();//日计划订单主内码
|
string sql = string.Format(@"/*dialect*/select * from view_{0} where FHICMOInterID='{1}' order by FPlanDate, FHStockQty desc ,FHMaterID ", tempName, FHICMOInterID);
|
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]["FNAME"], i);//物料名称
|
//this.Model.SetValue("FMateralDetailModel", dt.Rows[i]["FSPECIFICATION"], i);//物料规格型号
|
this.Model.SetValue("F_JIT_KeyMaterFlag", dt.Rows[i]["F_JIT_KeyMaterFlag"], i);//计划关键件
|
this.Model.SetValue("FPlanIssueCount", dt.Rows[i]["FSumPlanCount"], i);//计划发料数量
|
this.Model.SetValue("FCompleteCount", dt.Rows[i]["FCompleteCount1"], i);//齐套数量
|
this.Model.SetValue("FLackCount", dt.Rows[i]["FLackCount"], i);//缺料数量
|
this.Model.SetValue("FPassableCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//可用数量
|
this.Model.SetValue("FMateralCount", dt.Rows[i]["FREALBASEQTY"].ToString(), i);//即时库存数量
|
this.Model.SetValue("FReceiveBASEQTY", dt.Rows[i]["FReceiveBASEQTY"].ToString(), i);//收料通知单库存
|
this.Model.SetValue("FOccupyCount", dt.Rows[i]["FOccupyCount"].ToString(), i);//占用数量
|
this.Model.SetValue("FOccupyPickedCount", dt.Rows[i]["FOccupyPickedCount"].ToString(), i);//领用占用数量
|
this.Model.SetValue("FCompleteDetailStatus", dt.Rows[i]["FComPlete"].ToString(), i);//是否齐套
|
this.Model.SetValue("FIsHavePur", dt.Rows[i]["FIsHavePur"].ToString(), i);//是否有采购订单
|
this.Model.SetValue("FHMainICMOInterIDr", dt.Rows[i]["FHMainICMOInterIDr"].ToString(), i);//生产订单内码
|
this.Model.SetValue("FPRDBillNo", dt.Rows[i]["FPRDBillNo"]?.ToString(), i);//生产订单内码
|
this.Model.SetValue("FSalorderNo", dt.Rows[i]["FSALEORDERNO"].ToString(), i);//销售订单号
|
this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), 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("FErpClsID", dt.Rows[i]["FErpClsID"], i);//物料属性
|
this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库
|
this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间
|
this.Model.SetValue("FLot", dt.Rows[i]["FLot"], i);//批号
|
this.Model.SetValue("FReceiveQty", dt.Rows[i]["FReceiveQty"], i);//未入库数量
|
this.Model.SetValue("F_bsv_Decimal1", Convert.ToDecimal(dt.Rows[i]["FRemainReceiveQty"])+ Convert.ToDecimal(dt.Rows[i]["FNoStockInQty"]), i);//未交订单数量
|
}
|
}
|
ChangeColor();
|
did = true;
|
}
|
}
|
private void ChangeColor()
|
{
|
Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
|
//单据体信息转换为列表集合
|
DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
|
EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity");
|
int _i = 0;
|
foreach (DynamicObject current in entityDataObjoct)
|
{
|
if (Convert.ToString(current["FCompleteDetailStatus"]) == "未齐套")
|
{
|
grid.SetRowBackcolor("#71FF98CB", _i);
|
}
|
else
|
{
|
grid.SetRowBackcolor("#ffffff", _i);
|
}
|
_i++;
|
}
|
}
|
public override void BarItemClick(BarItemClickEventArgs e)
|
{
|
base.BarItemClick(e);
|
if (e.BarItemKey.ToUpper() == "TBFILTER")
|
{
|
SearchList();
|
ChangeColor();
|
}
|
//btnKccx
|
if (e.BarItemKey.ToUpper() == "BTNKCCX")
|
{
|
var materialNumber = string.Empty;
|
// 获取分录当前选中行
|
var entryRowIndex = this.Model.GetEntryCurrentRowIndex("FEntity");
|
// 获取分录当前选中行中的物料数据包
|
materialNumber = (this.Model.GetValue("FMateralDetailID", entryRowIndex) as DynamicObject)?["Number"].ToString();
|
// 打开单据联查列表:以联查销售订单为例
|
IRegularFilterParameter filterParameter = new ListRegularFilterParameter();
|
filterParameter.Filter = string.Format(" FMaterialId.FNumber = '{0}' and FStockOrgId = '{1}'", materialNumber, Context.CurrentOrganizationInfo.ID);
|
//filterParameter.SelectEntitys = new List<string>() { "STK_Inventory" };
|
var listTrackParameter = new ListTrackBillShowParameter();
|
listTrackParameter.FormId = "STK_Inventory";
|
listTrackParameter.PageId = Guid.NewGuid().ToString();
|
listTrackParameter.IsShowFilter = false;
|
listTrackParameter.ListFilterParameter = filterParameter;
|
this.View.ShowForm(listTrackParameter);
|
}
|
}
|
/// <summary>
|
/// 行双击 跳出齐套分析明细列表
|
/// </summary>
|
/// <param name="e"></param>
|
public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
|
{
|
var m = e.Row;
|
var n = e.Key;
|
base.EntityRowClick(e);
|
DynamicFormShowParameter formPa = new DynamicFormShowParameter();
|
formPa.FormId = "paez_CompleteAnalysisMateriel";
|
formPa.CustomParams.Add("FHMainICMOInterIDr", Convert.ToString(this.View.Model.GetValue("FHMainICMOInterIDr", e.Row).ToString()));
|
formPa.CustomParams.Add("FMatrailId", Convert.ToString((this.View.Model.GetValue("FMateralDetailId", e.Row) as DynamicObject)["Id"].ToString()));
|
this.View.ShowForm(formPa);
|
}
|
/// <summary>
|
/// 查询事件
|
/// </summary>
|
public void SearchList()
|
{
|
string sqlwhere = $" where FHICMOInterID='{FHICMOInterID}'";
|
string sql = string.Format($"/*dialect*/select * from view_{tempName}");
|
//物料
|
if ((this.Model.GetValue("FMateralId") as DynamicObject) != null)
|
{
|
string FMateralId = (this.Model.GetValue("FMateralId") as DynamicObject)["Id"].ToString();
|
if (!string.IsNullOrEmpty(FMateralId))
|
sqlwhere += $" and FHMATERID='{FMateralId}'";
|
}
|
//齐套
|
string FCompleteStatus = Convert.ToString(this.Model.GetValue("FCompleteStatus"));
|
if (!string.IsNullOrEmpty(FCompleteStatus))
|
sqlwhere += $" and FComPlete='{FCompleteStatus}'";
|
//有无采购订单
|
string FIsHavePurs = Convert.ToString(this.Model.GetValue("FIsHavePurs"));
|
if (!string.IsNullOrEmpty(FIsHavePurs))
|
sqlwhere += $" and FIsHavePur='{FIsHavePurs}'";
|
|
//日计划日期
|
string FPlanDate = Convert.ToString(this.Model.GetValue("FPlanDate2"));
|
if (!string.IsNullOrEmpty(FPlanDate))
|
sqlwhere += $" and FPlanDate='{FPlanDate}'";
|
|
//生产订单号
|
string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo"));
|
if (!string.IsNullOrEmpty(PRDBillNo))
|
sqlwhere += $" and FPRDBillNo='{PRDBillNo}'";
|
|
sql += sqlwhere;
|
sql += "order by FPlanDate, FHStockQty desc ,FHMaterID";
|
DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
|
//this.Model.DeleteEntryData("FEntity");
|
while (this.Model.GetEntryRowCount("FEntity") > 0)
|
{
|
this.Model.DeleteEntryRow("FEntity", 0);
|
}
|
//this.View.Refresh();
|
|
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]["FNAME"], i);//物料名称
|
//this.Model.SetValue("FMateralDetailModel", dt.Rows[i]["FSPECIFICATION"], i);//物料规格型号
|
this.Model.SetValue("FPlanIssueCount", dt.Rows[i]["FSumPlanCount"], i);//计划发料数量
|
this.Model.SetValue("F_JIT_KeyMaterFlag", dt.Rows[i]["F_JIT_KeyMaterFlag"], i);//计划关键件
|
this.Model.SetValue("FCompleteCount", dt.Rows[i]["FCompleteCount1"], i);//齐套数量
|
this.Model.SetValue("FLackCount", dt.Rows[i]["FLackCount"], i);//缺料数量
|
this.Model.SetValue("FPassableCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//可用数量
|
this.Model.SetValue("FMateralCount", dt.Rows[i]["FREALBASEQTY"].ToString(), i);//即时库存数量
|
this.Model.SetValue("FReceiveBASEQTY", dt.Rows[i]["FReceiveBASEQTY"].ToString(), i);//收料通知单库存
|
this.Model.SetValue("FOccupyCount", dt.Rows[i]["FOccupyCount"].ToString(), i);//占用数量
|
this.Model.SetValue("FOccupyPickedCount", dt.Rows[i]["FOccupyPickedCount"].ToString(), i);//领用占用数量
|
this.Model.SetValue("FCompleteDetailStatus", dt.Rows[i]["FComPlete"].ToString(), i);//是否齐套
|
this.Model.SetValue("FIsHavePur", dt.Rows[i]["FIsHavePur"].ToString(), i);//是否有采购订单
|
this.Model.SetValue("FHMainICMOInterIDr", dt.Rows[i]["FHMainICMOInterIDr"].ToString(), i);//生产订单内码
|
this.Model.SetValue("FPRDBillNo", dt.Rows[i]["FPRDBillNo"].ToString(), i);//生产订单内码
|
this.Model.SetValue("FSalorderNo", dt.Rows[i]["FSALEORDERNO"]?.ToString(), i);//销售订单号
|
this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//日计划日期
|
this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//库存组织
|
this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//货主类型
|
this.Model.SetValue("FStockId", dt.Rows[i]["FSTOCKID"], i);//仓库
|
this.Model.SetValue("FWorkShopId", dt.Rows[i]["FWORKSHOPID"], i);//车间
|
this.Model.SetValue("FLot", dt.Rows[i]["FLot"], i);//批号
|
this.Model.SetValue("FReceiveQty", dt.Rows[i]["FReceiveQty"], i);//未入库数量
|
this.Model.SetValue("F_bsv_Decimal1", Convert.ToDecimal(dt.Rows[i]["FRemainReceiveQty"]) + Convert.ToDecimal(dt.Rows[i]["FNoStockInQty"]), i);//未交订单数量
|
}
|
}
|
//this.View.UpdateView();
|
did = true;
|
}
|
}
|
}
|