云星空 尾阶材料用途清单 自定义动态表单
using Kingdee.BOS.App;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Log;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Core.Permission;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Orm.Metadata.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
namespace K3.App.Service.PlugIn
{
[Description("尾阶材料用途清单查询")]
//[Kingdee.BOS.Util.HotUpdate]
//GSB.K3.App.Service.PlugIn.GETMATERIALPARENTPlug,GSB.K3.App.Service.PlugIn
public class GETMATERIALPARENTPlug : AbstractDynamicFormPlugIn
{
private string Fmaterialid_Number = "";
public override void OnInitialize(InitializeEventArgs e)
{
base.OnInitialize(e);
var Controlbtn_Tail = this.View.GetControl("F_BHR_CustomData");
Controlbtn_Tail.SetToolTip("查询物料编码中的第一个物料用途");
var Controlbtn_Single = this.View.GetControl("F_BHR_CustomSingleData");
Controlbtn_Single.SetToolTip("查询物料编码中的第一个物料用途");
}
public override void ButtonClick(ButtonClickEventArgs e)
{
base.ButtonClick(e);
if (e.Key.Equals("F_BHR_CustomData".ToUpper()) || e.Key.Equals("F_BHR_CustomSingleData".ToUpper()))
{
Entity MATERIALPARENTEntity = this.View.BillBusinessInfo.GetEntity("F_BHR_MATERIALPARENTEntity");
DynamicObjectCollection ParentList = this.View.Model.GetEntityDataObject(MATERIALPARENTEntity);
ParentList.Clear();
DynamicObjectCollection EntryFmaterial = this.View.Model.GetValue("FBillMaterialId") as DynamicObjectCollection;
if (EntryFmaterial == null || EntryFmaterial.Count == 0)
{
this.View.ShowMessage("子项物料为空", Kingdee.BOS.Core.DynamicForm.MessageBoxType.Error);
this.View.GetControl("FBillMaterialId").SetFocus();
return;
}
Fmaterialid_Number = ((EntryFmaterial[0] as DynamicObject)["BillMaterialId"] as DynamicObject)["Number"].ToString();
string IsSingle = e.Key.Equals("F_BHR_CustomSingleData".ToUpper()) ? "Y" : "N";
string sql = string.Format(GetConfigEntity.GetConfig("PROC_BHR_GET_MATERIALPARENT"), Fmaterialid_Number, IsSingle);
var Qloglist = DBServiceHelper.ExecuteDynamicObject(Context, sql);
// var Qloglist = DBServiceHelper.ExecuteDataSet(Context, sql);
//this.View.ShowMessage(JsonConvert.SerializeObject(Qloglist));
if (Qloglist == null || Qloglist.Count == 0)
return;
foreach (DynamicObject Dobj in Qloglist)
{ //每一行的值定义成 DynamicObject类型
DynamicObject row = new DynamicObject(MATERIALPARENTEntity.DynamicObjectType);
row["F_BHR_BOMVERSION"] = Dobj["BOMVERSION"];
row["F_BHR_PPFMATERIALNO"] = Dobj["PPFMATERIALNO"];
row["F_BHR_PFMATERIALNO"] = Dobj["PFMATERIALNO"];
row["F_BHR_PFNAME"] = Dobj["FNAME"];
row["F_BHR_FSPECIFICATION"] = Dobj["FSPECIFICATION"];
row["F_BHR_FUNITNO"] = Dobj["FUNITNO"];
row["F_BHR_ASSOCIATION"] = Dobj["ASSOCIATION"];
row["F_BHR_FQTY"] = Dobj["FQTY"];
row["F_BHR_FPOSITIONNO"] = Dobj["FPOSITIONNO"];
row["F_BHR_FMATERIALTYPE"] = Dobj["FMATERIALTYPE"];
row["F_BHR_FREPLACEGROUP"] = Dobj["FREPLACEGROUP"];
ParentList.Add(row);
}
var tabControl = this.View.GetControl<TabControl>("FTabBottom");
//此处的FTabBottom_BHR_P为页签的标识
tabControl.SelectedTabItemKey = "FTabBottom_BHR_P".ToUpper();
this.View.UpdateView("F_BHR_MATERIALPARENTEntity");
/*记录操作日志*/
CustomLog.WriteOperaterLog(Context, "尾阶材料用途清单查询", "ENG_BOMPARENT", this.View.OpenParameter.SubSystemId, "尾阶材料用途清单查询" + Fmaterialid_Number);
}
}
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
LogObject log = new LogObject();
if (e.BarItemKey== "BHR_tbButton")
{
Entity MATERIALPARENTEntity = this.View.BillBusinessInfo.GetEntity("F_BHR_MATERIALPARENTEntity");
DynamicObjectCollection ParentList = this.View.Model.GetEntityDataObject(MATERIALPARENTEntity);
//生成文件名称
string fileName = string.Format("{0}_{1}", View.BusinessInfo.GetForm().Name + "", DateTime.Now.ToString("yyyyMMddHHmmssff"));//View.BusinessInfo.GetForm().Name
string fileType = "xlsx";
string[] illegalStrs = new string[] { "/", "\\" };
foreach (var str1 in illegalStrs)
{
fileName = fileName.Replace(str1, "");
}
fileName = PathUtils.GetValidFileName(fileName);
string filePath = PathUtils.GetPhysicalPath(KeyConst.TEMPFILEPATH, fileName);
filePath += "." + fileType;//xlsx文件类型
string outServicePath = PathUtils.GetServerPath(KeyConst.TEMPFILEPATH, fileName);
outServicePath += "." + fileType;
//
// string mooutServicePath =
ExportExcelEntity.DynamicObjectCollectionTOExcel(ParentList, "MATERIALPARENTExporttemplate", fileName, filePath);
//下载文件
DynamicFormShowParameter param = new DynamicFormShowParameter();
param.FormId = "BOS_FileDownLoad";
param.OpenStyle.ShowType = ShowType.Modal;
param.CustomParams.Add("IsExportData", "true");
param.CustomParams.Add("url", outServicePath);
View.ShowForm(param);
}
}
}
}