diff --git a/VapeEZDLL/YSCBYSJCB_FXB/YSCBYSJCB_FXB.cs b/VapeEZDLL/YSCBYSJCB_FXB/YSCBYSJCB_FXB.cs new file mode 100644 index 0000000..8774462 --- /dev/null +++ b/VapeEZDLL/YSCBYSJCB_FXB/YSCBYSJCB_FXB.cs @@ -0,0 +1,319 @@ +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.CommonFilter; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; + + +namespace VapeEZDLL.YSCBYSJCB_FXB +{ + /// + /// 销售预算成本与实际成本分析报表 + /// + [Description("销售预算成本与实际成本分析报表"), HotUpdate] + public class YSCBYSJCB_FXB : AbstractDynamicFormPlugIn + { + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + var showParameter = new DynamicFormShowParameter(); + showParameter.FormId = "NAAD_YSSJFXGLK"; + showParameter.ParentPageId = this.View.PageId; + showParameter.PageId = this.View.PageId + "_Filter"; + showParameter.OpenStyle.CacheId = this.View.PageId; + this.View.ShowForm(showParameter, action => FilterCallBack(action)); + } + + /// + /// 过滤框回调方法 + /// + /// + public void FilterCallBack(FormResult action) + { + Dictionary dicList = new Dictionary(); + if (action.ReturnData != null) + { + + string wheresql = " 1=1 "; + FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据 + DynamicObject dyObj = returnData.CustomFilter as DynamicObject; + + //获取开发日期 + var FSDate = Convert.ToString(dyObj["F_DATE"]); + if (!string.IsNullOrWhiteSpace(FSDate)) + { + wheresql += $@" and [F_012]>='{FSDate}'"; + } + //获取结束日期 + var FEDate = Convert.ToString(dyObj["F_YKQC_Date_apv"]); + if (!string.IsNullOrWhiteSpace(FEDate)) + { + wheresql += $@" and [F_012] <= '{FEDate}'"; + } + + //获取合同类型 + DynamicObject HTLX = dyObj["F_YKQC_Assistant_dvn"] as DynamicObject; + string HTLXFid = ""; + if (HTLX != null) + { + HTLXFid = Convert.ToString(HTLX["ID"]); + wheresql += $@" and [F_059] = '{HTLXFid}'"; + } + //获取购货单位 + DynamicObject CUST = dyObj["F_YKQC_Base_qtr"] as DynamicObject; + string CustFid = ""; + if (CUST != null) + { + CustFid = Convert.ToString(CUST["name"]); + wheresql += $@" and [F_005] = '{CustFid}'"; + } + //获取销售员 + DynamicObject XSY = dyObj["F_YKQC_Base_tzk"] as DynamicObject; + string XSYFid = ""; + if (XSY != null) + { + XSYFid = Convert.ToString(XSY["ID"]); + wheresql += $@" and [销售员ID] = '{XSYFid}'"; + } + //获取项目名称 + DynamicObject GCXM = dyObj["F_YKQC_Base_uky"] as DynamicObject; + string GCXMFid = ""; + if (GCXM != null) + { + GCXMFid = Convert.ToString(GCXM["NAME"]); + wheresql += $@" and [F_009] = '{GCXMFid}'"; + } + this.View.Model.DeleteEntryData("F_MBBA_Entity_qtr"); + + //获取表1 + var sql_1 = ""; + + sql_1 += string.Format($@"/*dialect*/Select * From (Select * From [ReceivablesDetailsTable] where {wheresql} + Union ALL + (Select + null,null,'合计:',null,null,null,null,null,null,null,SUM(F_010), + null,null,null,null,null,null,SUM(F_017),SUM(F_018),SUM(F_019),SUM(F_020),SUM(F_021),SUM(F_022),null + ,F_024=(SELECT SUM(F_024) FROM [ReceivablesDetailsTable] hh where {wheresql}) + ,SUM(F_025), + null + ,F_027=(SELECT SUM(F_027) FROM [ReceivablesDetailsTable] hh where {wheresql}) + ,null,null,null,null,null,null,null,null + ,F_036=( + SELECT SUM(F_036) + FROM ( SELECT DISTINCT [销售单主键ID],hh.收款条件主键ID,F_036 + FROM [ReceivablesDetailsTable] hh where {wheresql} ) a ) + ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,0,0,0,null,0 + , null, null, null, null, null + From + (select distinct [销售单主键ID],[销售员ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 ,0 as F_024 ,F_025, + 0 as F_027,0 F_036 from + [ReceivablesDetailsTable] + where {wheresql} + ) a )) W Order by W.F_001"); + + var sql_2 = ""; + sql_2 += string.Format(@"/*dialect*/Select top 1 * From ReceivablesDetailsTable"); + + var sql_List2 = DBUtils.ExecuteDynamicObject(Context, sql_2); + + + //判断是否存在表 + if (sql_List2.Count() <= 0) + { + /*this.View.ShowMessage("FSaleOrgId :" + FSaleOrgId + "," + "FSDate:" + FSDate + "," + + "FEDate :" + FEDate + "," + "HTLXFid:" + HTLXFid + "," + "CustFid:" + CustFid + "," + + "XSYFid:" + XSYFid + "," + "GCXMFid:" + GCXMFid);*/ + string sql = string.Format(@"/*dialect*/EXEC [PR_YingShouMingXi_yuyubo]"); + var sqlList = DBUtils.ExecuteDynamicObject(Context, sql); + + if (sqlList.Count() > 0) + { + string sql_3 = ""; + const int batchSize = 1000; // 每批处理 1000 条数据 + + } + } + //Loghelp.Log("合计"); + //Loghelp.Log(sql_1); + var sql_List1 = DBUtils.ExecuteDynamicObject(Context, sql_1); + int indexi = 0; + + + + foreach (var item in sql_List1) + { + #region 隐藏单据体赋值 + + int rowindex = this.View.Model.GetEntryRowCount("F_MBBA_Entity_qtr"); + this.View.Model.CreateNewEntryRow("F_MBBA_Entity_qtr"); + //1 + this.View.Model.SetValue("F_001", item["F_001"], indexi); + //2 + this.View.Model.SetValue("F_002", item["F_002"], indexi); + //3 + this.View.Model.SetValue("F_003", item["F_003"], indexi); + //4 + this.View.Model.SetValue("F_004", item["F_004"], indexi); + //5 + this.View.Model.SetValue("F_005", item["F_005"], indexi); + //6 + this.View.Model.SetValue("F_006", item["F_006"], indexi); + //7 + this.View.Model.SetValue("F_007", item["F_007"], indexi); + //8 indexi + this.View.Model.SetValue("F_008", item["F_008"], indexi); + //9 indexi + this.View.Model.SetValue("F_009", item["F_009"], indexi); + //10 indexi + this.View.Model.SetValue("F_010", item["F_010"], indexi); + //11 indexi + this.View.Model.SetValue("F_011", item["F_011"], indexi); + //12 indexi + this.View.Model.SetValue("F_012", item["F_012"], indexi); + //13 indexi + this.View.Model.SetValue("F_013", item["F_013"], indexi); + //14 indexi + this.View.Model.SetValue("F_FaHuoRiQi", item["F_014"], indexi); + //15 indexi + this.View.Model.SetValue("F_015", item["F_015"], indexi); + //16 indexi + this.View.Model.SetValue("F_FaPiaoRiQi", item["F_016"], indexi); + //17 indexi + this.View.Model.SetValue("F_017", item["F_017"], indexi); + //18 indexi + this.View.Model.SetValue("F_018", item["F_018"], indexi); + //19 indexi + this.View.Model.SetValue("F_019", item["F_019"], indexi); + //20 indexi + this.View.Model.SetValue("F_020", item["F_020"], indexi); + //21 indexi + this.View.Model.SetValue("F_021", item["F_021"], indexi); + //22 indexi + this.View.Model.SetValue("F_022", item["F_022"], indexi); + //23 indexi + this.View.Model.SetValue("F_023", item["F_023"], indexi); + //24 indexi + this.View.Model.SetValue("F_024", item["F_024"], indexi); + //25 indexi + this.View.Model.SetValue("F_025", item["F_025"], indexi); + //26 indexi + this.View.Model.SetValue("F_026", item["F_026"], indexi); + //27 indexi + this.View.Model.SetValue("F_027", item["F_027"], indexi); + //28 indexi + this.View.Model.SetValue("F_028", item["F_028"], indexi); + //29 indexi + this.View.Model.SetValue("F_029", item["F_029"], indexi); + //30 indexi + this.View.Model.SetValue("F_030", item["F_030"], indexi); + //31 indexi + this.View.Model.SetValue("F_031", item["F_031"], indexi); + //32 indexi + this.View.Model.SetValue("F_032", item["F_032"], indexi); + //33 indexi + this.View.Model.SetValue("F_033", item["F_033"], indexi); + //34 indexi + this.View.Model.SetValue("F_034", item["F_034"], indexi); + //35 indexi + this.View.Model.SetValue("F_035", item["F_035"], indexi); + //36 indexi + this.View.Model.SetValue("F_036", item["F_036"], indexi); + //37 indexi + this.View.Model.SetValue("F_037", item["F_037"], indexi); + //38 indexi + this.View.Model.SetValue("F_038", item["F_038"], indexi); + //39 indexi + this.View.Model.SetValue("F_039", item["F_039"], indexi); + //40 indexi + this.View.Model.SetValue("F_040", item["F_040"], indexi); + //41 indexi + this.View.Model.SetValue("F_041", item["F_041"], indexi); + //42 indexi + this.View.Model.SetValue("F_042", item["F_042"], indexi); + //43 indexi + this.View.Model.SetValue("F_043", item["F_043"], indexi); + //44 indexi + this.View.Model.SetValue("F_044", item["F_044"], indexi); + //45 indexi + this.View.Model.SetValue("F_045", item["F_045"], indexi); + //46 indexi + this.View.Model.SetValue("F_046", item["F_046"], indexi); + //47 indexi + this.View.Model.SetValue("F_047", item["F_047"], indexi); + //48 indexi + this.View.Model.SetValue("F_048", item["F_048"], indexi); + //49 indexi + this.View.Model.SetValue("F_049", item["F_049"], indexi); + //50 indexi + this.View.Model.SetValue("F_050", item["F_050"], indexi); + //51 indexi + this.View.Model.SetValue("F_051", item["F_051"], indexi); + //52 indexi + this.View.Model.SetValue("F_052", item["F_052"], indexi); + //53 indexi + this.View.Model.SetValue("F_053", item["F_053"], indexi); + //54 indexi + this.View.Model.SetValue("F_054", item["F_054"], indexi); + //55 indexi + this.View.Model.SetValue("F_055", item["F_055"], indexi); + //56 indexi + this.View.Model.SetValue("F_056", item["F_056"], indexi); + //57 indexi + this.View.Model.SetValue("F_057", item["F_057"], indexi); + //58 indexi + this.View.Model.SetValue("F_058", item["F_058"], indexi); + //59 indexi + this.View.Model.SetValue("F_059", item["F_059"], indexi); + //00 indexi + this.View.Model.SetValue("F_000", item["F_000"], indexi); + //F_FID + this.View.Model.SetValue("F_FID", item["FID"], indexi); + //60 + this.View.Model.SetValue("F_060", item["F_060"], indexi); + //61 + this.View.Model.SetValue("F_061", item["F_061"], indexi); + //62 + this.View.Model.SetValue("F_062", item["F_062"], indexi); + //63 + this.View.Model.SetValue("F_063", item["F_063"], indexi); + //64 + this.View.Model.SetValue("F_064", item["F_064"], indexi); + //65 + this.View.Model.SetValue("F_065", item["F_065"], indexi); + //66 + this.View.Model.SetValue("F_066", item["F_066"], indexi); + //67 + this.View.Model.SetValue("F_067", item["F_067"], indexi); + //68 + this.View.Model.SetValue("F_068", item["F_068"], indexi); + + //【订单总额、累计发货金额、累计退货金额、累计开票金额、累计到款金额、应收款合计、未出货总额、实际已出货应收款合计、】的明细需要去重 + if (dicList.ContainsKey(item["销售单主键ID"].ToString() + "-" + item["销售员ID"].ToString())) + { + this.View.Model.SetValue("F_010", null, indexi); + this.View.Model.SetValue("F_017", null, indexi); + this.View.Model.SetValue("F_018", null, indexi); + this.View.Model.SetValue("F_019", null, indexi); + this.View.Model.SetValue("F_020", null, indexi); + this.View.Model.SetValue("F_021", null, indexi); + this.View.Model.SetValue("F_022", null, indexi); + this.View.Model.SetValue("F_025", null, indexi); + + } + else + dicList.Add(item["销售单主键ID"].ToString() + "-" + item["销售员ID"].ToString(), 0); + + indexi++; + #endregion + } + this.View.UpdateView("F_MBBA_Entity_qtr"); + + } + } + } +}