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");
+
+ }
+ }
+ }
+}