diff --git a/Newtonsoft.Json.dll b/Newtonsoft.Json.dll
new file mode 100644
index 0000000..416bd37
Binary files /dev/null and b/Newtonsoft.Json.dll differ
diff --git a/aoyuPlugIn.sln b/aoyuPlugIn.sln
new file mode 100644
index 0000000..f47509b
--- /dev/null
+++ b/aoyuPlugIn.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.271
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aoyuPlugIn", "aoyuPlugIn\aoyuPlugIn.csproj", "{FD254B5C-1BE6-4165-9176-9DA10375CE7D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {65E004C6-66BA-46D0-AD19-6200637A2A82}
+ EndGlobalSection
+EndGlobal
diff --git a/aoyuPlugIn/MJ_wgd_lb.cs b/aoyuPlugIn/MJ_wgd_lb.cs
new file mode 100644
index 0000000..72fb03c
--- /dev/null
+++ b/aoyuPlugIn/MJ_wgd_lb.cs
@@ -0,0 +1,376 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.List.PlugIn;
+using Kingdee.BOS.WebApi.FormService;
+using Newtonsoft.Json.Linq;
+using Newtonsoft.Json;
+using System.Web.Script.Serialization;
+
+namespace aoyuPlugIn
+{
+ [Description("列表费用归集新增")]
+ [Kingdee.BOS.Util.HotUpdate]
+ public class MJ_wgd_lb : AbstractListPlugIn
+ {
+
+ //列表菜单事件
+ public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
+ {
+ base.AfterBarItemClick(e);
+ if (e.BarItemKey == "tbfygjlb")//生成费用归集单
+ {
+ if (this.ListView.SelectedRowsInfo.Count > 0)
+ {
+ for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++)
+ {
+ //取指定行单据编号
+ string fbillno = this.ListView.SelectedRowsInfo[i].BillNo;
+ //string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();//取单据状态
+
+ SaveBill(fbillno);
+
+ }
+
+ }
+ }
+ }
+ //调用API生成费用归集单--本机
+ public Boolean SaveBill2(string fbillno)
+ {
+
+ try
+ {
+ var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'");
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ int i = 0;
+ if (dr.Count > 0)
+ {
+ try
+ {
+ JObject jsonRoot = new JObject();
+
+ // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
+ jsonRoot.Add("NeedUpDateFields", new JArray(""));
+
+ // Model: 单据详细数据参数
+ JObject model = new JObject();
+ jsonRoot.Add("Model", model);
+
+ // 开始设置单据字段值
+ // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
+ // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来
+
+ // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
+ model.Add("FID", 0);
+
+ //核算体系编码
+ JObject FACCTGSYSTEMID = new JObject();
+ FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS");
+ model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID);
+
+ //核算体组织码
+ JObject FACCTGORGID = new JObject();
+ FACCTGORGID.Add("FNumber", "107");
+
+ model.Add("FACCTGORGID", FACCTGORGID);
+
+ //会计政策编码
+ JObject FACCTPOLICYID = new JObject();
+ FACCTPOLICYID.Add("FNumber", "KJZC02_SYS");
+
+ model.Add("FACCTPOLICYID", FACCTPOLICYID);
+
+
+ ////业务类型
+ //model.Add("FBusinessType", "CG");//标准采购
+
+
+ // 开始构建单据体参数:集合参数JArray
+
+ JArray entryRows = new JArray();
+ // 把单据体行集合,添加到model中,以单据体Key为标识
+ string entityKey = "FEntity";
+ model.Add(entityKey, entryRows);
+ // 通过循环创建单据体行:示例代码仅创建一行
+ foreach (var item in dr)
+ {
+ // 添加新行,把新行加入到单据体行集合
+ JObject entryRow = new JObject();
+ entryRows.Add(entryRow);
+
+
+ // 给新行,设置关键字段值
+ // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增
+ entryRow.Add("FEntryID", 0);
+
+ //业务组织
+ JObject FBIZORGID = new JObject();
+ FBIZORGID.Add("FNumber", "107");
+
+ entryRow.Add("FBIZORGID", FBIZORGID);
+
+ //费用项目编码
+ JObject FEXPENSEITEMID = new JObject();
+ FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS");
+ entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID);
+
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+ //日期
+ //entryRow.Add("FDATE", item[0].ToString());
+ entryRow.Add("FDATE", "2019-5-31");
+ //成本中心编码
+ JObject FCOSTCENTERID = new JObject();
+ FCOSTCENTERID.Add("FNumber", "CBZX000016");
+
+ entryRow.Add("FCOSTCENTERID", FCOSTCENTERID);
+
+
+ //金额
+ entryRow.Add("FAMOUNT", item[1].ToString());
+
+
+
+ //产品编号
+ JObject FPRODUCTID = new JObject();
+ FPRODUCTID.Add("FNumber", item[2].ToString());
+ entryRow.Add("FPRODUCTID", FPRODUCTID);
+ i++;
+ }
+
+ // 调用Web API接口服务,保存
+ object result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString());
+
+ string t = objzjs(result);
+
+ if (strJson(t))
+ {
+ sSql = string.Format("exec hw_fxwgd '{0}'", fbillno);
+ DBServiceHelper.Execute(this.Context, sSql);
+ this.View.ShowMessage("操作成功!");
+
+ return true;
+ }
+ else
+ {
+ this.View.ShowMessage("操作失败!" + t);
+ return false;
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("程序运行遇到了未知的错误11:");
+ sb.Append("错误提示:").AppendLine(ex.Message);
+ sb.Append("错误堆栈:").AppendLine(ex.StackTrace);
+ this.View.ShowMessage(sb.ToString());
+ return false;
+ }
+ }
+ else
+ {
+ this.View.ShowMessage("无数据,请确认后再操作!");
+ return false;
+ }
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; }
+
+
+ }
+ //调用API生成费用归集单--汇威
+ public Boolean SaveBill(string fbillno)
+ {
+
+ try
+ {
+ var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'");
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ int i = 0;
+ if (dr.Count > 0)
+ {
+ try
+ {
+ JObject jsonRoot = new JObject();
+
+ // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
+ jsonRoot.Add("NeedUpDateFields", new JArray(""));
+
+ // Model: 单据详细数据参数
+ JObject model = new JObject();
+ jsonRoot.Add("Model", model);
+
+ // 开始设置单据字段值
+ // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
+ // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来
+
+ // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
+ model.Add("FID", 0);
+
+ //核算体系编码
+ JObject FACCTGSYSTEMID = new JObject();
+ FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS");
+ model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID);
+
+ //核算体组织码
+ JObject FACCTGORGID = new JObject();
+ //FACCTGORGID.Add("FNumber", "107");
+ FACCTGORGID.Add("FNumber", "100");
+ model.Add("FACCTGORGID", FACCTGORGID);
+
+ //会计政策编码
+ JObject FACCTPOLICYID = new JObject();
+ //FACCTPOLICYID.Add("FNumber", "KJZC02_SYS");
+ FACCTPOLICYID.Add("FNumber", "KJZC01_SYS");
+ model.Add("FACCTPOLICYID", FACCTPOLICYID);
+
+
+ ////业务类型
+ //model.Add("FBusinessType", "CG");//标准采购
+
+
+ // 开始构建单据体参数:集合参数JArray
+
+ JArray entryRows = new JArray();
+ // 把单据体行集合,添加到model中,以单据体Key为标识
+ string entityKey = "FEntity";
+ model.Add(entityKey, entryRows);
+ // 通过循环创建单据体行:示例代码仅创建一行
+ foreach (var item in dr)
+ {
+ // 添加新行,把新行加入到单据体行集合
+ JObject entryRow = new JObject();
+ entryRows.Add(entryRow);
+
+
+ // 给新行,设置关键字段值
+ // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增
+ entryRow.Add("FEntryID", 0);
+
+ //业务组织
+ JObject FBIZORGID = new JObject();
+ //FBIZORGID.Add("FNumber", "107");
+ FBIZORGID.Add("FNumber", "100");
+ entryRow.Add("FBIZORGID", FBIZORGID);
+
+ //费用项目编码
+ JObject FEXPENSEITEMID = new JObject();
+ FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS");
+ entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID);
+
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+ //日期
+ entryRow.Add("FDATE", item[0].ToString());
+ //entryRow.Add("FDATE", "2019-5-31");
+ //成本中心编码
+ JObject FCOSTCENTERID = new JObject();
+ //FCOSTCENTERID.Add("FNumber", "CBZX000016");
+ FCOSTCENTERID.Add("FNumber", "CBZX000049");
+ entryRow.Add("FCOSTCENTERID", FCOSTCENTERID);
+
+
+ //金额
+ entryRow.Add("FAMOUNT", item[1].ToString());
+
+
+
+ //产品编号
+ JObject FPRODUCTID = new JObject();
+ FPRODUCTID.Add("FNumber", item[2].ToString());
+ entryRow.Add("FPRODUCTID", FPRODUCTID);
+ i++;
+ }
+
+ // 调用Web API接口服务,保存
+ var result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString());
+
+
+ string t = objzjs(result);
+
+ if (strJson(t))
+ {
+ sSql = string.Format("exec hw_fxwgd '{0}'", fbillno);
+ DBServiceHelper.Execute(this.Context, sSql);
+ this.View.ShowMessage("操作成功1!");
+ return true;
+ }
+ else
+ {
+ this.View.ShowMessage("操作失败!" + t);
+ return false;
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("程序运行遇到了未知的错误11:");
+ sb.Append("错误提示:").AppendLine(ex.Message);
+ sb.Append("错误堆栈:").AppendLine(ex.StackTrace);
+ this.View.ShowMessage(sb.ToString());
+ return false;
+ }
+ }
+ else
+ {
+ this.View.ShowMessage("无数据,请确认后再操作!");
+ return false;
+ }
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; }
+
+
+ }
+ //object转json
+ public string objzjs(Object obj)
+ {
+ JavaScriptSerializer js = new JavaScriptSerializer();
+ string myJson = js.Serialize(obj);
+ return myJson;
+ }
+ // 将字符串转换成Json格式显示
+ //字符串转json
+ public bool strJson(string t)
+ {
+ string jsonText = t;
+ // "{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"]}";
+
+ JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);//或者JObject jo = JObject.Parse(jsonText);
+ //string zone = jo["shenzheng"].ToString();//输出 "深圳"
+ //string zone_en = jo["shanghai"].ToString();//输出 "[{"zj1":"zj11","zj2":"zj22"},"zjs"]"
+ //string zj1 = jo["shanghai"][1].ToString();//输出 "zjs"
+ //Console.WriteLine(jo);
+
+ string tt = jo["Result"].ToString();
+ JObject jo1 = (JObject)JsonConvert.DeserializeObject(tt);
+ string t3 = jo1["ResponseStatus"].ToString();
+ JObject jo2 = (JObject)JsonConvert.DeserializeObject(t3);
+ string t4 = jo2["IsSuccess"].ToString();
+
+ if (t4.ToLower() == "true")
+ return true;
+ else
+ return false;
+ }
+
+
+ }
+}
diff --git a/aoyuPlugIn/MaterialUnAuditController.cs b/aoyuPlugIn/MaterialUnAuditController.cs
new file mode 100644
index 0000000..021a4bd
--- /dev/null
+++ b/aoyuPlugIn/MaterialUnAuditController.cs
@@ -0,0 +1,49 @@
+using Kingdee.BOS.App.Data;
+using Kingdee.BOS.Core;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Util;
+using System;
+using System.ComponentModel;
+
+namespace Kingdee.Joysing.Domustarzs
+{
+ [HotUpdate]
+ [Description("物料反审核控制【已弃用】")]
+ public class MaterialUnAuditController: AbstractOperationServicePlugIn
+ {
+ public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
+ {
+
+ foreach (ExtendedDataEntity extendedDataEntity in e.SelectedRows)
+ {
+ int MaterialID = 0;
+ DynamicObject dynamicObjects = extendedDataEntity.DataEntity;
+ MaterialID = Convert.ToInt32(dynamicObjects["Id"]);
+
+ string sql = string.Format(@"/*dialect*/select
+ (SELECT case when count(1) > 0 then '在BOM单已使用此物料,' else ''end
+ FROM T_ENG_BOM t0 LEFT OUTER JOIN T_ENG_BOMCHILD t1 ON t0.FID = t1.FID
+ where t0.FMATERIALID={0} or t1.FMATERIALID={1})+
+ (SELECT case when count(1) > 0 then '采购订单已使用此物料,' else ''end
+ FROM T_PUR_POORDERENTRY where FMATERIALID = {2}) as result
+ where (select top 1 FAntiCheckControl from PAEZ_t_AntiCheckControl order by fid)=1", MaterialID, MaterialID, MaterialID);
+ DynamicObjectCollection rows = DBUtils.ExecuteDynamicObject(this.Context, sql);
+ string result = "";
+ foreach (DynamicObject row in rows)
+ {
+ result = row["result"].ToString();
+ }
+ if (!"".Equals(result))
+ {
+ e.Cancel = true;
+ e.CancelMessage = Convert.ToString(dynamicObjects["Number"]) + result + "不能反审核的!本次反审核操作失败。";
+
+ break;
+ }
+ }
+ base.BeforeExecuteOperationTransaction(e);
+ }
+ }
+}
diff --git a/aoyuPlugIn/Properties/AssemblyInfo.cs b/aoyuPlugIn/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3a5123f
--- /dev/null
+++ b/aoyuPlugIn/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("aoyuPlugIn")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("aoyuPlugIn")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("fd254b5c-1be6-4165-9176-9da10375ce7d")]
+
+// 程序集的版本信息由下列四个值组成:
+//
+// 主版本
+// 次版本
+// 生成号
+// 修订号
+//
+// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/aoyuPlugIn/aoyuPlugIn.csproj b/aoyuPlugIn/aoyuPlugIn.csproj
new file mode 100644
index 0000000..9c83f14
--- /dev/null
+++ b/aoyuPlugIn/aoyuPlugIn.csproj
@@ -0,0 +1,126 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {FD254B5C-1BE6-4165-9176-9DA10375CE7D}
+ Library
+ Properties
+ aoyuPlugIn
+ aoyuPlugIn
+ v4.5
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ bin\Debug\Kingdee.BOS.dll
+
+
+ False
+ bin\Debug\Kingdee.BOS.App.dll
+
+
+ False
+ bin\Debug\Kingdee.BOS.App.Core.dll
+
+
+ False
+ bin\Debug\Kingdee.BOS.Contracts.dll
+
+
+ False
+ bin\Debug\Kingdee.BOS.Core.dll
+
+
+ False
+ bin\Debug\Kingdee.BOS.DataEntity.dll
+
+
+ False
+ bin\Debug\Kingdee.BOS.ServiceHelper.dll
+
+
+ False
+ C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.Client.dll
+
+
+ False
+ C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.FormService.dll
+
+
+ False
+ C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.Core.dll
+
+
+ False
+ C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.App.Core.dll
+
+
+ False
+ ..\Newtonsoft.Json.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aoyuPlugIn/zplr_lb_sh.cs b/aoyuPlugIn/zplr_lb_sh.cs
new file mode 100644
index 0000000..4f817bf
--- /dev/null
+++ b/aoyuPlugIn/zplr_lb_sh.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.K3.Core.MFG.EntityHelper;
+using System.ComponentModel;
+using Kingdee.BOS;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core;
+using Kingdee.BOS.Core.Const;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.Operation;
+using Kingdee.BOS.Core.List;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.ConvertElement;
+using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs;
+using Kingdee.BOS.Core.Interaction;
+using Kingdee.BOS.Core.Validation;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+using Kingdee.BOS.App.Data;
+using Kingdee.BOS.Orm;
+using Kingdee.BOS.Orm.DataEntity;
+
+namespace aoyuPlugIn
+{
+ [Description("装配录入列表--审核")]
+ public class zplr_lb_sh : AbstractOperationServicePlugIn
+ {
+ public override void EndOperationTransaction(EndOperationTransactionArgs e)
+ {
+ foreach (DynamicObject item in e.DataEntitys)
+ {
+ long fid = Convert.ToInt64(item["ID"]);
+
+ }
+ }
+ void fxjdb(string issh)
+ {
+ //try
+ //{
+ // //string fbillno = "";
+ // if (this.ListView.SelectedRowsInfo.Count > 0)
+ // {
+ // for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++)
+ // {
+ // //取指定行单据编号
+ // string fbillno = this.ListView.SelectedRowsInfo[i].BillNo;
+ // string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();
+ // if (issh == "1")
+ // {
+ // if (zt == "D" || zt == "B")
+ // {
+ // fx_yscs(fbillno, issh);
+ // }
+ // }
+ // else
+ // {
+ // if (zt == "C")
+ // {
+ // fx_yscs(fbillno, issh);
+ // }
+ // }
+
+
+ // }
+ // }
+ //}
+ //catch (Exception ex) { this.View.ShowMessage("反写已生产数时发生错误为:" + ex.Message); }
+ }
+ }
+}
diff --git a/aoyuPlugIn/常成/cc_dbd.cs b/aoyuPlugIn/常成/cc_dbd.cs
new file mode 100644
index 0000000..f2025ca
--- /dev/null
+++ b/aoyuPlugIn/常成/cc_dbd.cs
@@ -0,0 +1,107 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.Validation;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
+
+namespace aoyuPlugIn
+{
+ [Description("调拔单")]
+ public class cc_dbd : AbstractBillPlugIn
+ {
+ List> mycolor = new List>();
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ base.BarItemClick(e);
+ if (e.BarItemKey == "tbApprove" || e.BarItemKey == "tbSplitApprove")
+ {
+ string fbillno = this.View.Model.GetValue("FBillNo").ToString();
+ var sSql = String.Format("EXEC hz_cc_dbd " + fbillno);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ if (dr.Count > 0)
+ {
+
+ string t = "发货数量大于当前库存,不能审核!";
+ foreach (var item in dr)
+ {
+ string k = "物料编号:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString()
+ + "|即时库存:" + item["jskc"].ToString();
+ t = t + "\r\n" + k;
+ }
+
+ List> colors = new List>();
+ DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FBillEntry"));
+ int rowNo = 0;
+ //80C8FE
+ foreach (var one in entrys)
+ {
+ string wl = "";
+ wl = Convert.ToString((this.View.Model.GetValue("FMATERIALID", rowNo) as DynamicObject)["Number"]);
+ foreach (var item in dr)
+ {
+ if (item["FNUMBER"].ToString() == wl)
+ {
+ colors.Add(new KeyValuePair(rowNo, "#80C8FE"));
+ mycolor.Add(new KeyValuePair(rowNo, "#FFFFFF"));
+ }
+ }
+ rowNo++;
+ }
+ EntryGrid grid = this.View.GetControl("FBillEntry");
+ grid.SetRowBackcolor(colors);
+
+ this.View.ShowMessage(t);
+ //setColor();
+ e.Cancel = true;
+ }
+
+
+ }
+ }
+ public override void EntryBarItemClick(BarItemClickEventArgs e)
+ {
+ base.EntryBarItemClick(e);
+ if (e.BarItemKey.ToString() == "tbDeleteRow")
+ {
+ EntryGrid grid = this.View.GetControl("FBillEntry");
+
+ //int tol = this.Model.GetEntryRowCount("FEntity");
+ int k = this.Model.GetEntryCurrentRowIndex("FBillEntry");
+
+ grid.SetRowBackcolor("#FFFFFF", k);
+
+ }
+ //this.View.ShowMessage(e.BarItemKey.ToString());
+ }
+
+
+ //设置行颜色
+ void setColor()
+ {
+ List> colors = new List>();
+ DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FBillEntry"));
+ int rowNo = 0;
+ foreach (var one in entrys)
+ {
+ colors.Add(new KeyValuePair(rowNo, "#80C8FE"));
+ rowNo++;
+ }
+ EntryGrid grid = this.View.GetControl("FBillEntry");
+ grid.SetRowBackcolor(colors);
+ }
+ }
+}
diff --git a/aoyuPlugIn/常成/cc_dbd_lb.cs b/aoyuPlugIn/常成/cc_dbd_lb.cs
new file mode 100644
index 0000000..9067e92
--- /dev/null
+++ b/aoyuPlugIn/常成/cc_dbd_lb.cs
@@ -0,0 +1,67 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.List.PlugIn;
+
+namespace aoyuPlugIn
+{
+ [Description("调拔单列表审核")]
+ public class cc_dbd_lb : AbstractListPlugIn
+ {
+ public override void BeforeDoOperation(BeforeDoOperationEventArgs e)
+ {
+ base.BeforeDoOperation(e);
+ if (e.Operation.FormOperation.Id == "ad221364-f04e-4b31-8a69-debd8f5066bc")//审核
+ {
+ if (this.ListView.SelectedRowsInfo.Count > 0)
+
+ {
+
+ for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++)
+ {
+ //取指定行单据编号
+ string fbillno = this.ListView.SelectedRowsInfo[i].BillNo;
+ string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();
+
+ if (zt == "D" || zt == "B")
+ {
+ var sSql = String.Format("EXEC hz_cc_dbd " + fbillno);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ if (dr.Count > 0)
+ {
+
+ string t = "发货数量大于当前库存,不能审核!";
+ foreach (var item in dr)
+ {
+ string k = "单据编号:" + fbillno + "中物料:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString()
+ + "|即时库存:" + item["jskc"].ToString();
+ t = t + "\r\n" + k;
+ }
+ this.View.ShowMessage(t);
+ e.Cancel = true;
+ }
+ }
+ }
+
+ }
+
+
+ }
+
+ }
+ }
+}
diff --git a/aoyuPlugIn/常成/fhtzd.cs b/aoyuPlugIn/常成/fhtzd.cs
new file mode 100644
index 0000000..402a304
--- /dev/null
+++ b/aoyuPlugIn/常成/fhtzd.cs
@@ -0,0 +1,109 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.Validation;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
+//using System.Windows.Forms;
+//using System.Data;
+
+
+namespace aoyuPlugIn
+{//AbstractValidator
+ [Description("发货通知单")]
+ public class xs_fhtzd : AbstractBillPlugIn
+ {
+ List> mycolor = new List>();
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ base.BarItemClick(e);
+ if (e.BarItemKey == "tbApprove" || e.BarItemKey== "tbSplitApprove")
+ {
+ string fbillno = this.View.Model.GetValue("FBillNo").ToString();
+ var sSql = String.Format("EXEC hz_fhtzd " + fbillno);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ if (dr.Count > 0)
+ {
+
+ string t = "发货数量大于当前库存,不能审核!";
+ foreach (var item in dr)
+ {
+ string k = "物料编号:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString()
+ + "|即时库存:" + item["jskc"].ToString();
+ t = t + "\r\n" + k;
+ }
+
+ List> colors = new List>();
+ DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FEntity"));
+ int rowNo = 0;
+ //80C8FE
+ foreach (var one in entrys)
+ {
+ string wl = "";
+ wl = Convert.ToString((this.View.Model.GetValue("FMATERIALID", rowNo) as DynamicObject)["Number"]);
+ foreach (var item in dr)
+ {
+ if (item["FNUMBER"].ToString() == wl)
+ { colors.Add(new KeyValuePair(rowNo, "#80C8FE"));
+ mycolor.Add(new KeyValuePair(rowNo, "#FFFFFF"));
+ }
+ }
+ rowNo++;
+ }
+ EntryGrid grid = this.View.GetControl("FEntity");
+ grid.SetRowBackcolor(colors);
+
+ this.View.ShowMessage(t);
+ //setColor();
+ e.Cancel = true;
+ }
+
+
+ }
+ }
+ public override void EntryBarItemClick(BarItemClickEventArgs e)
+ {
+ base.EntryBarItemClick(e);
+ if(e.BarItemKey.ToString()== "tbDeleteRow")
+ {
+ EntryGrid grid = this.View.GetControl("FEntity");
+
+ //int tol = this.Model.GetEntryRowCount("FEntity");
+ int k=this.Model.GetEntryCurrentRowIndex("FEntity");
+
+ grid.SetRowBackcolor("#FFFFFF", k);
+
+ }
+ //this.View.ShowMessage(e.BarItemKey.ToString());
+ }
+
+
+ //设置行颜色
+ void setColor()
+ {
+ List> colors = new List>();
+ DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FEntity"));
+ int rowNo = 0;
+ foreach(var one in entrys)
+ {
+ colors.Add(new KeyValuePair(rowNo, "#80C8FE"));
+ rowNo++;
+ }
+ EntryGrid grid = this.View.GetControl("FEntity");
+ grid.SetRowBackcolor(colors);
+ }
+ }
+}
diff --git a/aoyuPlugIn/常成/fhtzd_lb.cs b/aoyuPlugIn/常成/fhtzd_lb.cs
new file mode 100644
index 0000000..444282f
--- /dev/null
+++ b/aoyuPlugIn/常成/fhtzd_lb.cs
@@ -0,0 +1,108 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.List.PlugIn;
+
+namespace aoyuPlugIn
+{
+ [Description("发货通知单列表审核")]
+ public class fhtzd_lb: AbstractListPlugIn
+ {
+
+ //列表菜单事件
+ public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
+ {
+ base.AfterBarItemClick(e);
+
+ if (e.BarItemKey == "tbSplitApprove" || e.BarItemKey == "tbApprove")//审核
+ {
+ return;
+ if (this.ListView.SelectedRowsInfo.Count > 0)
+
+ {
+
+ for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++)
+ {
+ //取指定行单据编号
+ string fbillno = this.ListView.SelectedRowsInfo[i].BillNo;
+ string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();
+
+ if (zt == "D" || zt == "B")
+ {
+ var sSql = String.Format("EXEC hz_fhtzd " + fbillno);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ if (dr.Count > 0)
+ {
+
+ string t = "发货数量大于当前库存,不能审核!";
+ foreach (var item in dr)
+ {
+ string k = "物料编号:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString()
+ + "|即时库存:" + item["jskc"].ToString();
+ t = t + "\r\n" + k;
+ }
+ this.View.ShowMessage(t);
+ }
+ }
+ }
+
+ }
+ }
+ }
+ public override void BeforeDoOperation(BeforeDoOperationEventArgs e)
+ {
+ base.BeforeDoOperation(e);
+ if (e.Operation.FormOperation.Id == "ad221364-f04e-4b31-8a69-debd8f5066bc")//审核
+ {
+ if (this.ListView.SelectedRowsInfo.Count > 0)
+
+ {
+
+ for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++)
+ {
+ //取指定行单据编号
+ string fbillno = this.ListView.SelectedRowsInfo[i].BillNo;
+ string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();
+
+ if (zt == "D" || zt == "B")
+ {
+ var sSql = String.Format("EXEC hz_fhtzd " + fbillno);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ if (dr.Count > 0)
+ {
+
+ string t = "发货数量大于当前库存,不能审核!";
+ foreach (var item in dr)
+ {
+ string k = "单据编号:"+fbillno+"中物料:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString()
+ + "|即时库存:" + item["jskc"].ToString();
+ t = t + "\r\n" + k;
+ }
+ this.View.ShowMessage(t);
+ e.Cancel = true;
+ }
+ }
+ }
+
+ }
+
+
+ }
+
+ }
+ }
+}
diff --git a/aoyuPlugIn/接口/jk_cgcx.cs b/aoyuPlugIn/接口/jk_cgcx.cs
new file mode 100644
index 0000000..fa6fbed
--- /dev/null
+++ b/aoyuPlugIn/接口/jk_cgcx.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+
+//using Newtonsoft.Json.Linq;
+using Kingdee.BOS.WebApi.Client;
+
+namespace aoyuPlugIn
+{
+ class jk_cgcx
+ {
+ }
+}
diff --git a/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs b/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs
new file mode 100644
index 0000000..bc0e7af
--- /dev/null
+++ b/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Kingdee.BOS;
+using Kingdee.BOS.Core;
+//服务端
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+//校验器
+using Kingdee.BOS.Core.Validation;
+using System.ComponentModel;
+
+
+namespace aoyuPlugIn
+{
+ [Description("校验器")]
+ [Kingdee.BOS.Util.HotUpdate]
+
+ //继承操作服务插件
+ public class OnAddValidatorsHead:AbstractOperationServicePlugIn
+ {
+ //OnPreparePropertys 数据加载前,确保需要的属性被加载
+ //因为需要读取采购员信息,先必须加载
+ public override void OnPreparePropertys(PreparePropertysEventArgs e)
+ {
+ base.OnPreparePropertys(e);
+ //采购员FPurchaserId
+ e.FieldKeys.Add("FPurchaserId");
+ //单据编号FBillNo
+ e.FieldKeys.Add("FBillNo");
+
+ //加载复选框 F_PAEZ_CheckBox
+ e.FieldKeys.Add("F_PAEZ_CheckBox");
+ }
+
+ //OnAddValidators操作执行前,加载操作校验器
+ public override void OnAddValidators(AddValidatorsEventArgs e)
+ {
+ base.OnAddValidators(e);
+ TestValidator validator = new TestValidator();
+ //是否需要校验,true需要
+ validator.AlwaysValidate = true;
+ //校验单据头FBillHead
+ validator.EntityKey = "FBillHead";
+
+ //校验单据体FPOOrderEntry
+ validator.EntityKey = "FPOOrderEntry";
+
+ //加载校验器
+ e.Validators.Add(validator);
+ }
+ //自定义校验器.派生:AbstractValidator
+ private class TestValidator:AbstractValidator
+ {
+ //重写方法
+ //数组ExtendedDataEntity,传递全部的信息
+ public override void Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx)
+ { //for循环,读取数据
+ foreach (ExtendedDataEntity obj in dataEntities)
+ {
+
+ //判断复选框是否勾选
+ if (!(bool)obj.DataEntity["F_PAEZ_CheckBox"])
+ { //报错
+ validateContext.AddError(obj.DataEntity,
+ new ValidationErrorInfo
+ ("",//出错的字段Key,可以空
+ obj.DataEntity["Id"].ToString(),// 数据包内码,必填,后续操作会据此内码避开此数据包
+ obj.DataEntityIndex, // 出错的数据包在全部数据包中的顺序
+ obj.RowIndex,// 出错的数据行在全部数据行中的顺序,如果校验基于单据头,此为0
+ "001",//错误编码,可以任意设定一个字符,主要用于追查错误来源
+ "单据编号" + obj.BillNo + "第" + obj.RowIndex + "行没有选择复选框",// 错误的详细提示信息
+ "审核:" + obj.BillNo,// 错误的简明提示信息
+ ErrorLevel.Error// 错误级别:警告、错误...
+ ));
+ }
+ }
+ }
+ }
+
+
+ }
+}
diff --git a/aoyuPlugIn/汇威/API新增单据/API_fygj.cs b/aoyuPlugIn/汇威/API新增单据/API_fygj.cs
new file mode 100644
index 0000000..f758b0e
--- /dev/null
+++ b/aoyuPlugIn/汇威/API新增单据/API_fygj.cs
@@ -0,0 +1,540 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json.Linq;
+using Kingdee.BOS.WebApi.Client;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.WebApi.FormService;
+using System.Web.Script.Serialization;
+using Newtonsoft.Json;
+using System.IO;
+
+namespace aoyuPlugIn
+{
+ [Description("费用归集新增")]
+ [Kingdee.BOS.Util.HotUpdate]
+ public class API_fygj:AbstractBillPlugIn
+ {
+ //调用API生成费用归集单--本机
+ public Boolean SaveBill2()
+ {
+ string fbillno = this.View.Model.GetValue("FBillNo").ToString();
+
+ try
+ {
+ var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'");
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ int i = 0;
+ if (dr.Count > 0)
+ {
+ try
+ {
+ JObject jsonRoot = new JObject();
+
+ // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
+ jsonRoot.Add("NeedUpDateFields", new JArray(""));
+
+ // Model: 单据详细数据参数
+ JObject model = new JObject();
+ jsonRoot.Add("Model", model);
+
+ // 开始设置单据字段值
+ // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
+ // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来
+
+ // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
+ model.Add("FID", 0);
+
+ //核算体系编码
+ JObject FACCTGSYSTEMID = new JObject();
+ FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS");
+ model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID);
+
+ //核算体组织码
+ JObject FACCTGORGID = new JObject();
+ FACCTGORGID.Add("FNumber", "107");
+
+ model.Add("FACCTGORGID", FACCTGORGID);
+
+ //会计政策编码
+ JObject FACCTPOLICYID = new JObject();
+ FACCTPOLICYID.Add("FNumber", "KJZC02_SYS");
+
+ model.Add("FACCTPOLICYID", FACCTPOLICYID);
+
+
+ ////业务类型
+ //model.Add("FBusinessType", "CG");//标准采购
+
+
+ // 开始构建单据体参数:集合参数JArray
+
+ JArray entryRows = new JArray();
+ // 把单据体行集合,添加到model中,以单据体Key为标识
+ string entityKey = "FEntity";
+ model.Add(entityKey, entryRows);
+ // 通过循环创建单据体行:示例代码仅创建一行
+ foreach (var item in dr)
+ {
+ // 添加新行,把新行加入到单据体行集合
+ JObject entryRow = new JObject();
+ entryRows.Add(entryRow);
+
+
+ // 给新行,设置关键字段值
+ // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增
+ entryRow.Add("FEntryID", 0);
+
+ //业务组织
+ JObject FBIZORGID = new JObject();
+ FBIZORGID.Add("FNumber", "107");
+
+ entryRow.Add("FBIZORGID", FBIZORGID);
+
+ //费用项目编码
+ JObject FEXPENSEITEMID = new JObject();
+ FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS");
+ entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID);
+
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+ //日期
+ //entryRow.Add("FDATE", item[0].ToString());
+ entryRow.Add("FDATE", "2019-5-31");
+ //成本中心编码
+ JObject FCOSTCENTERID = new JObject();
+ FCOSTCENTERID.Add("FNumber", "CBZX000016");
+
+ entryRow.Add("FCOSTCENTERID", FCOSTCENTERID);
+
+
+ //金额
+ entryRow.Add("FAMOUNT", item[1].ToString());
+
+
+
+ //产品编号
+ JObject FPRODUCTID = new JObject();
+ FPRODUCTID.Add("FNumber", item[2].ToString());
+ entryRow.Add("FPRODUCTID", FPRODUCTID);
+ i++;
+ }
+
+ // 调用Web API接口服务,保存
+ object result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString());
+
+ string t = objzjs(result);
+
+ if (strJson(t))
+ {
+ sSql = string.Format("exec hw_fxwgd '{0}'", fbillno);
+ DBServiceHelper.Execute(this.Context, sSql);
+ this.View.ShowMessage("操作成功!");
+
+ return true;
+ }
+ else
+ {
+ this.View.ShowMessage("操作失败!" + t);
+ return false;
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("程序运行遇到了未知的错误11:");
+ sb.Append("错误提示:").AppendLine(ex.Message);
+ sb.Append("错误堆栈:").AppendLine(ex.StackTrace);
+ this.View.ShowMessage(sb.ToString());
+ return false;
+ }
+ }
+ else
+ {
+ this.View.ShowMessage("无数据,请确认后再操作!");
+ return false;
+ }
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; }
+
+
+ }
+ //调用API生成费用归集单--汇威
+ public Boolean SaveBill()
+ {
+
+ string fbillno = this.View.Model.GetValue("FBillNo").ToString();
+
+ try
+ {
+ var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'");
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ int i = 0;
+ if (dr.Count > 0)
+ {
+ try
+ {
+ JObject jsonRoot = new JObject();
+
+ // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
+ jsonRoot.Add("NeedUpDateFields", new JArray(""));
+
+ // Model: 单据详细数据参数
+ JObject model = new JObject();
+ jsonRoot.Add("Model", model);
+
+ // 开始设置单据字段值
+ // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
+ // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来
+
+ // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
+ model.Add("FID", 0);
+
+ //核算体系编码
+ JObject FACCTGSYSTEMID = new JObject();
+ FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS");
+ model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID);
+
+ //核算体组织码
+ JObject FACCTGORGID = new JObject();
+ //FACCTGORGID.Add("FNumber", "107");
+ FACCTGORGID.Add("FNumber", "100");
+ model.Add("FACCTGORGID", FACCTGORGID);
+
+ //会计政策编码
+ JObject FACCTPOLICYID = new JObject();
+ //FACCTPOLICYID.Add("FNumber", "KJZC02_SYS");
+ FACCTPOLICYID.Add("FNumber", "KJZC01_SYS");
+ model.Add("FACCTPOLICYID", FACCTPOLICYID);
+
+
+ ////业务类型
+ //model.Add("FBusinessType", "CG");//标准采购
+
+
+ // 开始构建单据体参数:集合参数JArray
+
+ JArray entryRows = new JArray();
+ // 把单据体行集合,添加到model中,以单据体Key为标识
+ string entityKey = "FEntity";
+ model.Add(entityKey, entryRows);
+ // 通过循环创建单据体行:示例代码仅创建一行
+ foreach (var item in dr)
+ {
+ // 添加新行,把新行加入到单据体行集合
+ JObject entryRow = new JObject();
+ entryRows.Add(entryRow);
+
+
+ // 给新行,设置关键字段值
+ // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增
+ entryRow.Add("FEntryID", 0);
+
+ //业务组织
+ JObject FBIZORGID = new JObject();
+ //FBIZORGID.Add("FNumber", "107");
+ FBIZORGID.Add("FNumber", "100");
+ entryRow.Add("FBIZORGID", FBIZORGID);
+
+ //费用项目编码
+ JObject FEXPENSEITEMID = new JObject();
+ FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS");
+ entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID);
+
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+ //日期
+ entryRow.Add("FDATE", item[0].ToString());
+ //entryRow.Add("FDATE", "2019-5-31");
+ //成本中心编码
+ JObject FCOSTCENTERID = new JObject();
+ //FCOSTCENTERID.Add("FNumber", "CBZX000016");
+ FCOSTCENTERID.Add("FNumber", "CBZX000049");
+ entryRow.Add("FCOSTCENTERID", FCOSTCENTERID);
+
+
+ //金额
+ entryRow.Add("FAMOUNT", item[1].ToString());
+
+
+
+ //产品编号
+ JObject FPRODUCTID = new JObject();
+ FPRODUCTID.Add("FNumber", item[2].ToString());
+ entryRow.Add("FPRODUCTID", FPRODUCTID);
+ i++;
+ }
+
+ // 调用Web API接口服务,保存
+ var result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString());
+
+
+ string t = objzjs(result);
+
+ if (strJson(t))
+ {
+ sSql = string.Format("exec hw_fxwgd '{0}'", fbillno);
+ DBServiceHelper.Execute(this.Context, sSql);
+ this.View.ShowMessage("操作成功1!");
+ return true;
+ }
+ else
+ {
+ this.View.ShowMessage("操作失败!" + t);
+ return false;
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("程序运行遇到了未知的错误11:");
+ sb.Append("错误提示:").AppendLine(ex.Message);
+ sb.Append("错误堆栈:").AppendLine(ex.StackTrace);
+ this.View.ShowMessage(sb.ToString());
+ return false;
+ }
+ }
+ else
+ {
+ this.View.ShowMessage("无数据,请确认后再操作!");
+ return false;
+ }
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; }
+
+
+ }
+ //object转json
+ public string objzjs(Object obj)
+ {
+ JavaScriptSerializer js = new JavaScriptSerializer();
+ string myJson = js.Serialize(obj);
+ return myJson;
+ }
+ // 将字符串转换成Json格式显示
+ //字符串转json
+ public bool strJson(string t)
+ {
+ string jsonText = t;
+ // "{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"]}";
+
+ JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);//或者JObject jo = JObject.Parse(jsonText);
+ //string zone = jo["shenzheng"].ToString();//输出 "深圳"
+ //string zone_en = jo["shanghai"].ToString();//输出 "[{"zj1":"zj11","zj2":"zj22"},"zjs"]"
+ //string zj1 = jo["shanghai"][1].ToString();//输出 "zjs"
+ //Console.WriteLine(jo);
+
+ string tt = jo["Result"].ToString();
+ JObject jo1 = (JObject)JsonConvert.DeserializeObject(tt);
+ string t3 = jo1["ResponseStatus"].ToString();
+ JObject jo2 = (JObject)JsonConvert.DeserializeObject(t3);
+ string t4 = jo2["IsSuccess"].ToString();
+
+ if (t4.ToLower() == "true")
+ return true;
+ else
+ return false;
+ }
+
+
+ public Boolean SaveBill6()
+ {
+ string fbillno = this.View.Model.GetValue("FBillNo").ToString();
+
+ try
+ {
+ var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'");
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ int i = 0;
+ if (dr.Count > 0)
+ {
+ string cwts = "-";
+ try
+ {
+ string url = "https://5f1nococmwz67jl/K3Cloud/";
+ string dbid = "5c85f54f52a132";
+ string user = "demo";
+ string pwd = "888888";
+
+
+ url = "http://61.145.228.58:9656/k3cloud";
+
+ dbid = "5e0f100d492605";
+
+ user = "Hezhiq";
+
+ pwd = "abc123++";
+
+ ApiClient client = new ApiClient(url);
+ var loginResult = client.Login(
+ dbid,
+ user,
+ pwd,
+ 2052);
+ string result = "登录失败,请检查与站点地址、数据中心Id,用户名及密码!";
+
+ // 登陆成功,开始保存数据
+ if (loginResult == true)
+ {
+ // 开始构建Web API参数对象
+ // 参数根对象:包含Creator、NeedUpDateFields、Model这三个子参数
+ // using Newtonsoft.Json.Linq; // (需引用Newtonsoft.Json.dll)
+ JObject jsonRoot = new JObject();
+
+ // Creator: 创建用户
+ //jsonRoot.Add("Creator", "Demo");
+
+ // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
+ jsonRoot.Add("NeedUpDateFields", new JArray(""));
+
+ // Model: 单据详细数据参数
+ JObject model = new JObject();
+ jsonRoot.Add("Model", model);
+
+ // 开始设置单据字段值
+ // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
+ // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来
+
+
+ // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
+ model.Add("FID", 0);
+
+ //核算体系编码
+ JObject FACCTGSYSTEMID = new JObject();
+ FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS");
+ model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID);
+
+ //核算体组织码
+ JObject FACCTGORGID = new JObject();
+ FACCTGORGID.Add("FNumber", "107");
+ model.Add("FACCTGORGID", FACCTGORGID);
+
+ //会计政策编码
+ JObject FACCTPOLICYID = new JObject();
+ FACCTPOLICYID.Add("FNumber", "KJZC02_SYS");
+ model.Add("FACCTPOLICYID", FACCTPOLICYID);
+
+
+ ////业务类型
+ //model.Add("FBusinessType", "CG");//标准采购
+
+
+ // 开始构建单据体参数:集合参数JArray
+
+ JArray entryRows = new JArray();
+ // 把单据体行集合,添加到model中,以单据体Key为标识
+ string entityKey = "FEntity";
+ model.Add(entityKey, entryRows);
+ // 通过循环创建单据体行:示例代码仅创建一行
+ foreach (var item in dr)
+ {
+ //string k = item[0].ToString();
+ //this.Model.SetValue("F_YGNM", item[0], i);
+ //this.Model.SetValue("F_ISXYG", item[1], i);
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+
+
+
+
+ // 添加新行,把新行加入到单据体行集合
+ JObject entryRow = new JObject();
+ entryRows.Add(entryRow);
+
+
+ // 给新行,设置关键字段值
+ // 单据体主键:必须填写,系统据此判断是新增还是修改行
+ entryRow.Add("FEntryID", 0);
+
+ //业务组织
+ JObject FBIZORGID = new JObject();
+ FBIZORGID.Add("FNumber", "107");
+ entryRow.Add("FBIZORGID", FBIZORGID);
+
+ //费用项目编码
+ JObject FEXPENSEITEMID = new JObject();
+ FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS");
+ entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID);
+
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+ //日期
+ string tm9 = DateTime.Today.ToShortDateString();
+ entryRow.Add("FDATE", tm9);
+
+ //成本中心编码
+ JObject FCOSTCENTERID = new JObject();
+ FCOSTCENTERID.Add("FNumber", "CBZX000016");
+ entryRow.Add("FCOSTCENTERID", FCOSTCENTERID);
+
+
+ //金额
+ entryRow.Add("FAMOUNT", item[1].ToString());
+
+
+ //产品编号
+ JObject FPRODUCTID = new JObject();
+ FPRODUCTID.Add("FNumber", item[2].ToString());
+ entryRow.Add("FPRODUCTID", FPRODUCTID);
+ i++;
+ }
+
+ cwts = "准备执行费用归集"+jsonRoot.ToString();
+
+ // 调用Web API接口服务,保存
+ result = client.Execute(
+ "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
+ new object[] { "CB_EXPENSECOLLECTION", jsonRoot.ToString() });
+ }
+ this.View.ShowMessage("操作成功!");
+ return true;
+ }
+ catch (Exception ex)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("程序运行遇到了未知的错误56:"+cwts);
+ sb.Append("错误提示:").AppendLine(ex.Message);
+ sb.Append("错误堆栈:").AppendLine(ex.StackTrace);
+ this.View.ShowMessage(sb.ToString());
+ return false;
+ }
+ }
+ else
+ {
+ this.View.ShowMessage("无数据,请确认后再操作!");
+ return false;
+ }
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; }
+
+
+ }
+ //单据头菜单点击
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ base.BarItemClick(e);
+ if (e.BarItemKey == "tbfygj")
+ {
+ SaveBill();
+ }
+
+ }
+ }
+}
diff --git a/aoyuPlugIn/汇威/API新增单据/add_dj.cs b/aoyuPlugIn/汇威/API新增单据/add_dj.cs
new file mode 100644
index 0000000..8c3209e
--- /dev/null
+++ b/aoyuPlugIn/汇威/API新增单据/add_dj.cs
@@ -0,0 +1,150 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+
+
+using Kingdee.BOS.Core;
+
+using Kingdee.BOS.Core.Metadata.ConvertElement;
+using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn;
+using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
+
+using Kingdee.BOS.Core.Metadata.FormElement;
+
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+namespace aoyuPlugIn
+{
+ [Description("新增单据")]
+ public class add_dj: AbstractConvertPlugIn
+ {
+
+
+ /// 主单据体的字段携带完毕,与源单的关联关系创建好之后,触发此事件
+
+ public override void OnAfterCreateLink(CreateLinkEventArgs e)
+ {
+ var targetRows = e.TargetExtendedDataEntities.FindByEntityKey("FEntity");
+
+ foreach (var targetRow in targetRows)
+ {
+ // 获取每行数据,对应的源单行
+ var sourceRows = targetRow["ConvertSource"] as List;
+ }
+
+ // 预先获取一些必要的元数据,后续代码要用到:
+ // 源单第二单据体
+ Entity srcSecondEntity = e.SourceBusinessInfo.GetEntity("FEntity2");
+
+ // 目标单第一单据体
+ Entity mainEntity = e.TargetBusinessInfo.GetEntity("FEntity");
+
+ // 目标单第二单据体
+ Entity secondEntity = e.TargetBusinessInfo.GetEntity("FEntity2");
+
+ // 目标单关联子单据体
+ Entity linkEntity = null;
+ Form form = e.TargetBusinessInfo.GetForm();
+ if (form.LinkSet != null
+ && form.LinkSet.LinkEntitys != null
+ && form.LinkSet.LinkEntitys.Count != 0)
+ {
+ linkEntity = e.TargetBusinessInfo.GetEntity(
+ form.LinkSet.LinkEntitys[0].Key);
+ }
+
+ if (linkEntity == null)
+ {
+ return;
+ }
+
+ // 获取生成的全部下游单据
+ ExtendedDataEntity[] billDataEntitys = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead");
+
+ // 对下游单据,逐张单据进行处理
+ foreach (var item in billDataEntitys)
+ {
+ DynamicObject dataObject = item.DataEntity;
+
+ // 定义一个集合,用于收集本单对应的源单内码
+ HashSet srcBillIds = new HashSet();
+
+ // 开始到主单据体中,读取关联的源单内码
+ DynamicObjectCollection mainEntryRows =
+ mainEntity.DynamicProperty.GetValue(dataObject) as DynamicObjectCollection;
+ foreach (var mainEntityRow in mainEntryRows)
+ {
+ DynamicObjectCollection linkRows =
+ linkEntity.DynamicProperty.GetValue(mainEntityRow) as DynamicObjectCollection;
+ foreach (var linkRow in linkRows)
+ {
+ long srcBillId = Convert.ToInt64(linkRow["SBillId"]);
+ if (srcBillId != 0
+ && srcBillIds.Contains(srcBillId) == false)
+ {
+ srcBillIds.Add(srcBillId);
+ }
+ }
+ }
+ if (srcBillIds.Count == 0)
+ {
+ continue;
+ }
+ // 开始加载源单第二单据体上的字段
+
+ // 确定需要加载的源单字段(仅加载需要携带的字段)
+ List selector = new List();
+ selector.Add(new SelectorItemInfo("F_JD_Text"));
+ // TODO: 继续添加其他需要携带的字段,示例代码略
+ // 设置过滤条件
+ string filter = string.Format(" {0} IN ({1}) ",
+ e.SourceBusinessInfo.GetForm().PkFieldName,
+ string.Join(",", srcBillIds));
+ OQLFilter filterObj = OQLFilter.CreateHeadEntityFilter(filter);
+
+ // 读取源单
+ IViewService viewService = ServiceHelper.GetService();
+ var srcBillObjs = viewService.Load(this.Context,
+ e.SourceBusinessInfo.GetForm().Id,
+ selector,
+ filterObj);
+
+ // 开始把源单单据体数据,填写到目标单上
+ DynamicObjectCollection secondEntryRows =
+ secondEntity.DynamicProperty.GetValue(dataObject) as DynamicObjectCollection;
+ secondEntryRows.Clear(); // 删除空行
+
+ foreach (var srcBillObj in srcBillObjs)
+ {
+ DynamicObjectCollection srcEntryRows =
+ srcSecondEntity.DynamicProperty.GetValue(srcBillObj) as DynamicObjectCollection;
+
+ foreach (var srcEntryRow in srcEntryRows)
+ {
+ // 目标单添加新行,并接受源单字段值
+ DynamicObject newRow = new DynamicObject(secondEntity.DynamicObjectType);
+ secondEntryRows.Add(newRow);
+ // 填写字段值
+ newRow["F_JD_Text"] = srcEntryRow["F_JD_Text"];
+ // TODO: 逐个填写其他字段值,示例代码略
+ }
+ }
+ }
+ }
+
+ }
+}
diff --git a/aoyuPlugIn/汇威/JJ_show_yggzmx.cs b/aoyuPlugIn/汇威/JJ_show_yggzmx.cs
new file mode 100644
index 0000000..cfa80fc
--- /dev/null
+++ b/aoyuPlugIn/汇威/JJ_show_yggzmx.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.ComponentModel;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.ComponentModel;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+
+using Kingdee.BOS;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.ServiceHelper;
+
+namespace aoyuPlugIn
+{
+
+ [Description("显示员工工资明细")]
+ public class JJ_show_yggzmx : AbstractDynamicFormPlugIn
+ {
+ string _ygID = "";
+ string _month = "";
+ string _year = "";
+ string _day = "";
+ public override void AfterBindData(EventArgs e)
+ {
+ base.AfterBindData(e);
+ try
+ {
+ Int64 ygID = Convert.ToInt64(this.View.OpenParameter.GetCustomParameter("ygid"));
+ _ygID = ygID.ToString();
+ string y = this.View.OpenParameter.GetCustomParameter("FYEAR").ToString();
+ _year = y;
+ string m = this.View.OpenParameter.GetCustomParameter("FMONTH").ToString();
+ _month = m;
+ _day = this.View.OpenParameter.GetCustomParameter("FDAY").ToString();
+
+ loadData();
+
+
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("加载数据时发生错误中为:" + ex.Message); }
+ //this.View.ShowMessage(mid.ToString());
+
+ }
+ void loadData()
+ {
+ show_yg_mx();//按员工显示
+
+ }
+ //按员工显示
+ //按日期显示
+ //填写员工姓名
+ void show_yg_mx()
+ {
+ try
+ {
+ if (_day != "") return;
+ this.View.Model.SetValue("FRG", 0);
+ this.View.UpdateView("FRG");
+
+ this.View.Model.SetValue("FYGNO", _ygID);
+ this.View.UpdateView("FYGNO");
+ this.View.UpdateView("FYGNM");
+ this.View.Model.SetValue("FYEAR", _year);
+ this.View.UpdateView("FYEAR");
+ this.View.Model.SetValue("FMONTH", _month);
+ this.View.UpdateView("FMONTH");
+ }
+ catch (Exception ex) { this.View.ShowMessage("加载数据时发生错误中为:" + ex.Message); }
+ }
+ }
+}
diff --git a/aoyuPlugIn/汇威/MJ_jdhb.cs b/aoyuPlugIn/汇威/MJ_jdhb.cs
new file mode 100644
index 0000000..5dbfa57
--- /dev/null
+++ b/aoyuPlugIn/汇威/MJ_jdhb.cs
@@ -0,0 +1,54 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+
+namespace aoyuPlugIn
+{
+ [Description("模具进度汇报反写进度单")]
+ public class MJ_jdhb : AbstractBillPlugIn
+ {
+ //表单菜单事件
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ base.BarItemClick(e);
+ //this.View.ShowMessage("Hello World:" + e.BarItemKey.ToString());
+ string t = "";
+ if (e.BarItemKey == "tbSplitApprove"||e.BarItemKey== "tbApprove")//审核
+ {
+ t =this.View.Model.GetValue("FBillNo").ToString();
+ fxjdb(t, "1");
+
+ }else if (e.BarItemKey == "tbReject")//反审核
+ {
+ t = this.View.Model.GetValue("FBillNo").ToString();
+ fxjdb(t, "0");
+ }
+ }
+ //反写进度表
+ void fxjdb(string fbillno, string issh)
+ {
+ try
+ {
+ var sSql = String.Format("EXEC hw_mj_jdhbfxjdd " + fbillno + "," + issh);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ }
+ catch (Exception ex) { this.View.ShowMessage("反写进度表时发生错误为:" + ex.Message); }
+ }
+
+
+ }
+}
diff --git a/aoyuPlugIn/汇威/MJ_jdhb_lb.cs b/aoyuPlugIn/汇威/MJ_jdhb_lb.cs
new file mode 100644
index 0000000..9cd1d90
--- /dev/null
+++ b/aoyuPlugIn/汇威/MJ_jdhb_lb.cs
@@ -0,0 +1,78 @@
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.List.PlugIn;
+
+namespace aoyuPlugIn
+{
+ [Description("模具进度汇报列表反写进度单")]
+ public class MJ_jdhb_lb:AbstractListPlugIn
+ {
+ void fxjdb(string issh)
+ {
+ try
+ {
+ //string fbillno = "";
+ if(this.ListView.SelectedRowsInfo.Count >0)
+ {
+ for(int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++)
+ {
+ //取指定行单据编号
+ string fbillno = this.ListView.SelectedRowsInfo[i].BillNo;
+ string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();
+ if (issh == "1")
+ {
+ if (zt == "D" || zt == "B")
+ {
+ var sSql = String.Format("EXEC hw_mj_jdhbfxjdd " + fbillno + "," + issh);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ }
+ }
+ else
+ {
+ if (zt == "C")
+ {
+ var sSql = String.Format("EXEC hw_mj_jdhbfxjdd " + fbillno + "," + issh);
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ }
+ }
+
+
+ }
+ }
+ }
+ catch (Exception ex) { this.View.ShowMessage("反写进度表时发生错误为:" + ex.Message); }
+ }
+ //列表菜单事件
+ public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
+ {
+ base.AfterBarItemClick(e);
+
+ if (e.BarItemKey == "tbSplitApprove" || e.BarItemKey == "tbApprove")//审核
+ {
+
+ fxjdb("1");
+
+ }
+ else if (e.BarItemKey == "tbReject")//反审核
+ {
+
+ fxjdb("0");
+ }
+ }
+ }
+}
diff --git a/aoyuPlugIn/汇威/MJ_qtyf.cs b/aoyuPlugIn/汇威/MJ_qtyf.cs
new file mode 100644
index 0000000..4ce28e1
--- /dev/null
+++ b/aoyuPlugIn/汇威/MJ_qtyf.cs
@@ -0,0 +1,206 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json.Linq;
+using Kingdee.BOS.WebApi.Client;
+using Kingdee.BOS;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.Core.Bill.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+
+namespace aoyuPlugIn
+{
+ [Description("其他应付生成费用归集")]
+ public class MJ_qtyf : AbstractBillPlugIn
+ {
+ //调用API生成费用归集单
+ public Boolean SaveBill()
+ {
+ string fbillno = this.View.Model.GetValue("FBillNo").ToString();
+
+ try
+ {
+ var sSql = String.Format("EXEC hw_get_qtyf '" + fbillno + "'");
+ var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
+ int i = 0;
+ if (dr.Count > 0)
+ {
+ try
+ {
+ string url = "https://hui-wei.ik3cloud.com/K3cloud/";
+ string dbid = "5c85f54f52a132";
+ string user = "wwj01";
+ string pwd = "wwj@123456";
+
+
+ url = "http://61.145.228.58:9656/k3cloud";
+
+ dbid = "5e0f100d492605";
+
+ user = "Hezhiq";
+
+ pwd = "abc123++";
+
+ ApiClient client = new ApiClient(url);
+ var loginResult = client.Login(
+ dbid,
+ user,
+ pwd,
+ 2052);
+ string result = "登录失败,请检查与站点地址、数据中心Id,用户名及密码!";
+
+ // 登陆成功,开始保存数据
+ if (loginResult == true)
+ {
+ // 开始构建Web API参数对象
+ // 参数根对象:包含Creator、NeedUpDateFields、Model这三个子参数
+ // using Newtonsoft.Json.Linq; // (需引用Newtonsoft.Json.dll)
+ JObject jsonRoot = new JObject();
+
+ // Creator: 创建用户
+ //jsonRoot.Add("Creator", "Demo");
+
+ // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新
+ jsonRoot.Add("NeedUpDateFields", new JArray(""));
+
+ // Model: 单据详细数据参数
+ JObject model = new JObject();
+ jsonRoot.Add("Model", model);
+
+ // 开始设置单据字段值
+ // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段
+ // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来
+
+
+ // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0
+ model.Add("FID", 0);
+
+ //核算体系编码
+ JObject FACCTGSYSTEMID = new JObject();
+ FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS");
+ model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID);
+
+ //核算体组织码
+ JObject FACCTGORGID = new JObject();
+ FACCTGORGID.Add("FNumber", "107");
+ model.Add("FACCTGORGID", FACCTGORGID);
+
+ //会计政策编码
+ JObject FACCTPOLICYID = new JObject();
+ FACCTPOLICYID.Add("FNumber", "KJZC02_SYS");
+ model.Add("FACCTPOLICYID", FACCTPOLICYID);
+
+
+ ////业务类型
+ //model.Add("FBusinessType", "CG");//标准采购
+
+
+ // 开始构建单据体参数:集合参数JArray
+
+ JArray entryRows = new JArray();
+ // 把单据体行集合,添加到model中,以单据体Key为标识
+ string entityKey = "FEntity";
+ model.Add(entityKey, entryRows);
+ // 通过循环创建单据体行:示例代码仅创建一行
+ foreach (var item in dr)
+ {
+ //string k = item[0].ToString();
+ //this.Model.SetValue("F_YGNM", item[0], i);
+ //this.Model.SetValue("F_ISXYG", item[1], i);
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+
+
+
+
+ // 添加新行,把新行加入到单据体行集合
+ JObject entryRow = new JObject();
+ entryRows.Add(entryRow);
+
+
+ // 给新行,设置关键字段值
+ // 单据体主键:必须填写,系统据此判断是新增还是修改行
+ entryRow.Add("FEntryID", 0);
+
+ //业务组织
+ JObject FBIZORGID = new JObject();
+ FBIZORGID.Add("FNumber", "107");
+ entryRow.Add("FBIZORGID", FBIZORGID);
+
+ //费用项目编码
+ JObject FEXPENSEITEMID = new JObject();
+ FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS");
+ entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID);
+
+ //this.Model.SetValue("F_ISSYQ", item[2], i);
+ //日期
+ entryRow.Add("FDATE", item[1].ToString());
+
+ //成本中心编码
+ JObject FCOSTCENTERID = new JObject();
+ FCOSTCENTERID.Add("FNumber", "CBZX000016");
+ entryRow.Add("FCOSTCENTERID", FCOSTCENTERID);
+
+
+ //金额
+ entryRow.Add("FAMOUNT", item[1].ToString());
+
+
+ //产品编号
+ JObject FPRODUCTID = new JObject();
+ FPRODUCTID.Add("FNumber", item[2].ToString());
+ entryRow.Add("FPRODUCTID", FPRODUCTID);
+ i++;
+ }
+
+ // 调用Web API接口服务,保存
+ result = client.Execute(
+ "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
+ new object[] { "CB_EXPENSECOLLECTION", jsonRoot.ToString() });
+ }
+ this.View.ShowMessage("操作成功!");
+ return true;
+ }
+ catch (Exception ex)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("程序运行遇到了未知的错误:");
+ sb.Append("错误提示:").AppendLine(ex.Message);
+ sb.Append("错误堆栈:").AppendLine(ex.StackTrace);
+ this.View.ShowMessage(sb.ToString());
+ return false;
+ }
+ }
+ else
+ {
+ this.View.ShowMessage("无数据,请确认后再操作!");
+ return false;
+ }
+
+ }
+ catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; }
+
+
+ }
+ //单据头菜单点击
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ base.BarItemClick(e);
+ if (e.BarItemKey == "tbfygj")
+ {
+ SaveBill();
+ }
+
+ }
+ }
+}
diff --git a/aoyuPlugIn/汇威/MJ_xtqtrk.cs b/aoyuPlugIn/汇威/MJ_xtqtrk.cs
new file mode 100644
index 0000000..6ca7fae
--- /dev/null
+++ b/aoyuPlugIn/汇威/MJ_xtqtrk.cs
@@ -0,0 +1,553 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.K3.Core.MFG.EntityHelper;
+using Kingdee.K3.FIN.App.Core;
+using System.ComponentModel;
+using Kingdee.BOS;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core;
+using Kingdee.BOS.Core.Const;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.Operation;
+using Kingdee.BOS.Core.List;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.ConvertElement;
+using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs;
+using Kingdee.BOS.Core.Interaction;
+using Kingdee.BOS.Core.Validation;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+using Kingdee.BOS.Orm;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.App.Data;
+using System.Data;
+using System.Collections;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+
+namespace aoyuPlugIn
+{
+ //其他出库单审核时自动生成其他出库单,在审核操作的服务插件中
+ [Description("自动生成其他入库单")]//自动下推生产审核的调入调出单STK_MISCELLANEOUS
+ public class MJ_xtqtrk : AbstractOperationServicePlugIn
+ {
+ private string entityKey = "FEntity";//其他出库单单据标识
+ int rowIndex;
+ string scddfid;
+ int scddRow;
+ //public override void OnPreparePropertys(PreparePropertysEventArgs e)
+ //{
+ // base.OnPreparePropertys(e);
+ // e.FieldKeys.Add("F_QBOY_JKDH");//缴库单号
+ // e.FieldKeys.Add("F_QBOY_YDEntryID");//生产订单单据体ID
+ // e.FieldKeys.Add("F_QBOY_YDHH");//生产订单行号
+ // e.FieldKeys.Add("F_QBOY_SKYTLed");//已退量
+ // e.FieldKeys.Add("F_QBOY_SKL");//水口量
+ // e.FieldKeys.Add("F_QBOY_SKYTL");//应退量
+
+
+ //}
+
+ ///
+ /// 审核操作完成,单据状态已经更改,但是还没有提交事务时,触发此事件:
+ ///
+ ///
+ ///
+ /// 因为此事件触发时,还在事务保护中,因此适合进行数据同步;
+ /// 审核后自动下推,如果下推失败,需要放弃审核,因此,放在此事件中处理(事务中)
+ ///
+ public override void EndOperationTransaction(EndOperationTransactionArgs e)
+ {
+
+ Entity entityObj = this.BusinessInfo.GetEntity(entityKey);
+ foreach (DynamicObject d in e.DataEntitys)
+ {
+ if (d["BillEntry"] == null)
+ {
+ return;
+ }
+
+
+ DynamicObjectCollection FentryRow = d["BillEntry"] as DynamicObjectCollection;
+ //scddfid = FentryRow[0][7].ToString();//生产订单单据体ID
+ //scddRow = Convert.ToInt32(FentryRow[0][6]);//生产订单行号
+
+ //if (Convert.ToDouble(FentryRow[0][5]) + Convert.ToDouble(FentryRow[0][4]) < Convert.ToDouble(FentryRow[0][3]))
+ //{
+ // return;
+ //}
+
+ //String sSql2 = String.Format(@" select FID FROM T_PRD_MO where FBILLNO='{0}' ", FentryRow[0][2]);
+ //DynamicObjectCollection dr = DBUtils.ExecuteDynamicObject(this.Context, sSql2);
+
+
+
+
+ this.DoPush("STK_MisDelivery", "STK_MISCELLANEOUS", (from p in e.DataEntitys select Convert.ToInt64(p[0])).ToList(), e);
+ //using (IDataReader dr = DBUtils.ExecuteReader(this.Context, sSql2))
+ //{
+
+ // while (dr.Read())
+ // {
+ // var scddfid = Convert.ToInt64(dr["F_PCDN_INMD"]);
+ // //this.DoPush("k246ba461a1494a348dc7c9996f609b60", "PRD_INSTOCK",
+ // // (from p in e.DataEntitys select Convert.ToInt64(p[0])).ToList(), e);
+ // }
+ // dr.Close();
+
+
+ //}
+ }
+ }
+
+
+ //this.DoPush("k246ba461a1494a348dc7c9996f609b60", "PRD_INSTOCK",
+ // (from p in e.DataEntitys select Convert.ToInt64(p[0])).ToList(), e);
+
+
+
+ ///
+ /// 自动下推并保存
+ ///
+ /// 源单FormId
+ /// 目标单FormId
+ /// 源单内码
+ private void DoPush(string sourceFormId, string targetFormId, List sourceBillIds, EndOperationTransactionArgs e)
+ {
+ // 获取源单与目标单的转换规则
+ IConvertService convertService = ServiceHelper.GetService();
+ var rules = convertService.GetConvertRules(this.Context, sourceFormId, targetFormId);
+ if (rules == null || rules.Count == 0)
+ {
+ throw new KDBusinessException("", string.Format("未找到{0}到{1}之间,启用的转换规则,无法自动下推!", sourceFormId, targetFormId));
+ }
+ // 取勾选了默认选项的规则
+ // var rule = rules.FirstOrDefault(t => t.IsDefault);
+ // 如果无默认规则,则取第一个
+ // if (rule == null)
+ //{
+ // rule = rules[0];
+ // }
+ //门店至运营中心,或运营中心至门店
+
+ //if (true && rules.Count > 0)
+ if (true && rules.Count > 1)
+ {
+ //var rule = rules[0];
+ var rule = rules[1];
+ // 开始构建下推参数:
+ // 待下推的源单数据行
+ List srcSelectedRows = new List();
+
+
+ foreach (var billId in sourceBillIds)
+ {// 把待下推的源单内码,逐个创建ListSelectedRow对象,添加到集合中
+ srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), string.Empty, 0, sourceFormId));
+
+
+ // 特别说明:上述代码,是整单下推;
+ // 如果需要指定待下推的单据体行,请参照下句代码,在ListSelectedRow中,指定EntryEntityKey以及EntryId
+ //srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), entityId, 0, sourceFormId) { EntryEntityKey = "FEntity" });
+ }
+
+
+
+
+
+
+ // 指定目标单单据类型:情况比较复杂,没有合适的案例做参照,示例代码暂略,直接留空,会下推到默认的单据类型
+ string targetBillTypeId = string.Empty;
+ // 指定目标单据主业务组织:情况更加复杂,需要涉及到业务委托关系,缺少合适案例,示例代码暂略
+ // 建议在转换规则中,配置好主业务组织字段的映射关系:运行时,由系统根据映射关系,自动从上游单据取主业务组织,避免由插件指定
+ long targetOrgId = 0;
+ // 自定义参数字典:把一些自定义参数,传递到转换插件中;转换插件再根据这些参数,进行特定处理
+ Dictionary custParams = new Dictionary();
+ // 组装下推参数对象
+ PushArgs pushArgs = new PushArgs(rule, srcSelectedRows.ToArray())
+ {
+ TargetBillTypeId = targetBillTypeId,
+ TargetOrgId = targetOrgId,
+ CustomParams = custParams
+ };
+
+ OperateOption option = OperateOption.Create();
+ option.SetVariableValue(BOSConst.CST_ConvertValidatePermission, true);
+ // 调用下推服务,生成下游单据数据包
+ ConvertOperationResult convResult = convertService.Push(this.Context, pushArgs, OperateOption.Create());
+
+ // 开始处理下推结果:
+ // 获取下推生成的下游单据数据包
+ DynamicObject[] destObjs = (from p in convResult.TargetDataEntities select p.DataEntity).ToArray();
+ if (destObjs.Length == 0)
+ {
+ // 未下推成功目标单,抛出错误,中断审核
+ throw new KDBusinessException("", string.Format("由{0}自动下推{1},没有成功生成数据包,自动下推失败!", sourceFormId, targetFormId));
+ }
+
+ // 对下游单据数据包,进行适当的修订,以避免关键字段为空,自动保存失败
+ // 示例代码略
+ // 读取目标单据元数据
+ IMetaDataService metaService = ServiceHelper.GetService();
+ FormMetadata destFormMetadata = metaService.Load(this.Context, targetFormId) as FormMetadata;
+ // 构建保存操作参数:设置操作选项值,忽略交互提示
+ OperateOption saveOption = OperateOption.Create();
+ // 忽略全部需要交互性质的提示,直接保存;
+ saveOption.SetIgnoreWarning(true); // 忽略交互提示
+ saveOption.SetInteractionFlag(this.Option.GetInteractionFlag()); // 如果有交互,传入用户选择的交互结果
+ // using Kingdee.BOS.Core.Interaction;
+ saveOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag());
+
+ // 上一步操作成功的目标单
+ List