237 lines
9.5 KiB
C#
237 lines
9.5 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
using Kingdee.BOS;
|
||
using Kingdee.BOS.Util;
|
||
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.Bill;
|
||
using Kingdee.BOS.Core.CommonFilter;
|
||
using Kingdee.BOS.Core.Metadata;
|
||
using Kingdee.BOS.Core.List;
|
||
using Kingdee.BOS.Core.Report;
|
||
using Kingdee.BOS.Core.WNReport;
|
||
using System.Collections.ObjectModel;
|
||
using System.ComponentModel;
|
||
using Kingdee.BOS.Orm.DataEntity;
|
||
using Kingdee.BOS.Core.Metadata.EntityElement;
|
||
|
||
namespace aoyuPlugIn
|
||
{
|
||
[Description("绩效录入")]
|
||
public class hg_xzjxxm : AbstractDynamicFormPlugIn
|
||
{
|
||
public override void EntryBarItemClick(BarItemClickEventArgs e)
|
||
{
|
||
base.EntryBarItemClick(e);
|
||
if (e.BarItemKey == "tbNewxm")
|
||
{
|
||
Add_XM();
|
||
}
|
||
else if (e.BarItemKey == "tbyg")
|
||
{
|
||
addyg();
|
||
}
|
||
}
|
||
//取当前行的值
|
||
string get_ygNO(int i)
|
||
{
|
||
//得到当前行行号
|
||
//int i = this.View.Model.GetEntryCurrentRowIndex("k13d7a697920649329a5f90e0365ea5c8");
|
||
DynamicObject fgt = this.View.Model.GetValue("FygID",i) as DynamicObject;
|
||
|
||
string ygno = fgt["Name"].ToString();
|
||
return ygno;
|
||
}
|
||
//调用基础资料表单添加员工
|
||
void addyg()
|
||
{
|
||
|
||
string pageId = Guid.NewGuid().ToString();
|
||
ListShowParameter showParameter = new ListShowParameter();
|
||
//要显示列表的单据标识
|
||
showParameter.FormId = "k13d7a697920649329a5f90e0365ea5c8";
|
||
showParameter.PageId = pageId;
|
||
showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
|
||
showParameter.IsLookUp = true;
|
||
|
||
//取部门名称
|
||
DynamicObject dobjt = this.View.Model.GetValue("FbmID") as DynamicObject;
|
||
string bmNm = dobjt["Name"].ToString();
|
||
//得到当前行行号
|
||
EntryEntity entry = this.View.BusinessInfo.GetEntryEntity("F_QBOY_Entity");
|
||
int i = this.Model.GetEntryCurrentRowIndex("F_QBOY_Entity");
|
||
int tol = this.Model.GetEntryRowCount("F_QBOY_Entity");
|
||
DynamicObject fgt = this.View.Model.GetValue("FygID", i) as DynamicObject;
|
||
//取员工编号
|
||
//string billNo = Convert.ToString(this.Model.GetValue("FNUMBER"));
|
||
string tj = "";
|
||
if (fgt is null)
|
||
tj ="FbmNm='"+ bmNm+"'";
|
||
else
|
||
tj = "FNAME='" + fgt["Name"].ToString()+"'";
|
||
|
||
//this.View.ShowErrMessage("员工姓名" + billNo);
|
||
|
||
showParameter.ListFilterParameter.Filter =tj;
|
||
ListSelectedRowCollection returndata = new ListSelectedRowCollection();
|
||
//this.View.ShowForm(showParameter);//直接显示窗体,不用返回值
|
||
|
||
this.View.ShowForm(showParameter, new Action<FormResult>((result) =>
|
||
{
|
||
if (result.ReturnData != null)
|
||
{
|
||
returndata = result.ReturnData as ListSelectedRowCollection;
|
||
int j = 0;
|
||
foreach (ListSelectedRow dObj in returndata)
|
||
{
|
||
if (i==tol)
|
||
{ this.Model.CreateNewEntryRow("F_QBOY_Entity"); // 新增一行,需要调用的单据体
|
||
tol++;
|
||
}
|
||
|
||
//设置员工ID
|
||
this.Model.SetValue("FygID", dObj.DataRow["FygID"].ToString(), i);
|
||
//设置项目ID
|
||
this.Model.SetValue("FJXXMID", dObj.DataRow["FxmID"].ToString(), i);
|
||
//设置岗位ID
|
||
this.Model.SetValue("FgwID", dObj.DataRow["FgwID"].ToString(), i);
|
||
//目标值
|
||
this.Model.SetValue("Fmbz", dObj.DataRow["Fmbz"].ToString(), i);
|
||
//权重
|
||
this.Model.SetValue("Fqz", dObj.DataRow["Fqz"].ToString(), i);
|
||
|
||
////设置员工ID
|
||
//this.Model.SetValue("FJXXMID", ygID, i);
|
||
////Double FCPID = Convert.ToDouble(dObj.FICPID_ID);
|
||
|
||
//string t = dObj.DataRow["FxmID"].ToString();
|
||
////this.View.ShowMessage(t);
|
||
//// 新增一行,需要调用的单据体
|
||
//this.Model.CreateNewEntryRow("F_QBOY_Entity");
|
||
//// 设置字段值
|
||
//this.Model.SetValue("FJXXMID", t, i);
|
||
i++;
|
||
j++;
|
||
}
|
||
this.View.UpdateView("F_QBOY_Entity");
|
||
}
|
||
}));
|
||
|
||
|
||
}
|
||
|
||
//调用单据添加项目
|
||
public void Add_XM()
|
||
{
|
||
|
||
//当前行ID GetEntryCurrentRowIndex
|
||
string ygID = this.View.Model.GetEntryCurrentRowIndex("FygID").ToString();
|
||
//当前行行号
|
||
EntryEntity entry = this.View.BusinessInfo.GetEntryEntity("FEntityKey");
|
||
int entryCurrentRowIndex = this.Model.GetEntryCurrentRowIndex("FEntityKey");
|
||
|
||
|
||
|
||
string pageId = Guid.NewGuid().ToString();
|
||
ListShowParameter showParameter = new ListShowParameter();
|
||
//被调用的单据体标识
|
||
showParameter.FormId = "kd0081e4d05cc40c499bf0cf8fb0d4460";
|
||
showParameter.PageId = pageId;
|
||
showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
|
||
showParameter.IsLookUp = true;
|
||
//先取部门ID
|
||
DynamicObject fgt = this.View.Model.GetValue("FbmID") as DynamicObject;
|
||
string billNo = fgt["Number"].ToString();
|
||
|
||
//string billNo = Convert.ToString(this.Model.GetValue("FNUMBER"));
|
||
showParameter.ListFilterParameter.Filter = "FNUMBER='" + billNo + "'";
|
||
ListSelectedRowCollection returndata = new ListSelectedRowCollection();
|
||
//this.View.ShowForm(showParameter);//直接显示窗体,不用返回值
|
||
|
||
this.View.ShowForm(showParameter, new Action<FormResult>((result) =>
|
||
{
|
||
if (result.ReturnData != null)
|
||
{
|
||
returndata = result.ReturnData as ListSelectedRowCollection;
|
||
int i = 0;
|
||
foreach (ListSelectedRow dObj in returndata)
|
||
{
|
||
//设置员工ID
|
||
this.Model.SetValue("FJXXMID", ygID, i);
|
||
//Double FCPID = Convert.ToDouble(dObj.FICPID_ID);
|
||
|
||
string t = dObj.DataRow["FxmID_ID"].ToString();
|
||
//this.View.ShowMessage(t);
|
||
// 新增一行,需要调用的单据体
|
||
this.Model.CreateNewEntryRow("F_QBOY_Entity");
|
||
// 设置字段值
|
||
this.Model.SetValue("FJXXMID", t, i);
|
||
i++;
|
||
}
|
||
this.View.UpdateView("F_QBOY_Entity");
|
||
}
|
||
}));
|
||
|
||
|
||
}
|
||
//行数据变动
|
||
public override void DataChanged(DataChangedEventArgs e)
|
||
{
|
||
base.DataChanged(e);
|
||
int hh = Convert.ToInt16(e.Row);
|
||
string t =e.Field.ToString();
|
||
|
||
if (t == "得分")
|
||
{
|
||
Double df =Convert.ToDouble( e.NewValue.ToString());
|
||
//df = this.View.Model.GetValue("FYGID", hh).ToString();
|
||
//this.View.ShowMessage(df.ToString());
|
||
jsgrzdf(hh, df);
|
||
}
|
||
}
|
||
//计算个人总得分
|
||
void jsgrzdf(int hh, double df)
|
||
{
|
||
try {
|
||
//EntryEntity entry = this.View.BusinessInfo.GetEntryEntity("F_QBOY_Entity");
|
||
int zhh = this.Model.GetEntryRowCount("F_QBOY_Entity");
|
||
if (hh == 0)//第一行
|
||
{
|
||
this.View.Model.SetValue("FDF", df, hh);
|
||
|
||
}
|
||
else
|
||
{
|
||
//--本行的员工ID
|
||
Int64 bhygID = Convert.ToInt64((this.View.Model.GetValue("F_YGNO", hh) as DynamicObject)["ID"]);
|
||
double zdf = df;
|
||
for (int i = hh; i >-1; i--)//从当前行往上循环
|
||
{
|
||
//--上一行的员工ID
|
||
Int64 ygID = Convert.ToInt64((this.View.Model.GetValue("F_YGNO", i-1) as DynamicObject)["ID"]);
|
||
if (bhygID != ygID)//本行员工ID不等于上一行员工ID,就付值退出
|
||
{
|
||
this.View.Model.SetValue("FDF", zdf, hh);
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
zdf =zdf+ Convert.ToDouble(this.View.Model.GetValue("FPF", i - 1).ToString());
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
catch(Exception ex) { this.View.ShowMessage("计算个人总得分时发生错误为:" + ex.Message); }
|
||
this.View.UpdateView("F_QBOY_Entity");
|
||
}
|
||
}
|
||
}
|