From 04847fc505730b2c202c0f28769480e13d849b08 Mon Sep 17 00:00:00 2001 From: luanhui <1029149336@qq.com> Date: Wed, 22 Nov 2017 20:03:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=94=B6=E8=B4=AD=E6=80=BB?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reports/ComprehensiveReport.cs | 428 +++++++++++++++--- .../Reports/ComprehensiveReport.xml | 24 +- 2 files changed, 386 insertions(+), 66 deletions(-) diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs index 74ad75b..dff5137 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs @@ -13,7 +13,10 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI.WebControls; +using BWP.B3Frameworks.BO.MoneyTemplate; +using Forks.EnterpriseServices.SqlDoms; using TSingSoft.WebControls2; +using TSingSoft.WebPluginFramework; namespace BWP.Web.Pages.B3QingDaoWanFu.Reports { @@ -39,12 +42,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports { var layoutManager = new LayoutManager("Main", mDFInfo, mQueryContainer); - + DFNamedValueInput<单据状态> input; layoutManager.Add("BillState", input = QueryCreator.一般单据状态(mDFInfo.Fields["BillState"], true)); input.Value = 单据状态.已审核; - var config = new AutoLayoutConfig() { Cols = 2 }; + var config = new AutoLayoutConfig() { Cols = 2 }; config.Add("AccountingUnit_ID"); config.Add("ID"); @@ -106,90 +109,401 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports protected override DQueryDom GetQueryDom() { var query = base.GetQueryDom(); + + + //query.Where.Conditions.Add(DQCondition.EQ("ID", 445)); + var bill = JoinAlias.Create("bill"); + tempUnionDom.Register(query); + var unionAlias = new JoinAlias("tempUnionDom", typeof(tempUnionDom)); + query.From.AddJoin(JoinType.Left, new DQDmoSource(unionAlias), DQCondition.EQ(bill, "ID", unionAlias, "StatPay_ID")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("WeighTime"), "收购日期")); + query.GroupBy.Expressions.Add(DQExpression.Field("WeighTime")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("PurchaseType"), "收购类型")); + query.GroupBy.Expressions.Add(DQExpression.Field("PurchaseType")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Supplier_Name"), "供应商")); + query.GroupBy.Expressions.Add(DQExpression.Field("Supplier_Name")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Supplier_Address"), "来源地")); + query.GroupBy.Expressions.Add(DQExpression.Field("Supplier_Address")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Employee_Name"), "业务员")); + query.GroupBy.Expressions.Add(DQExpression.Field("Employee_Name")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Weigh_ID"), "过磅单号")); + query.GroupBy.Expressions.Add(DQExpression.Field("Weigh_ID")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))).ESafeDivide(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealNumber")))).ECastType>(), "均重")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealNumber"))), "收购头数")); + var 榜前重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1),DQExpression.Field(unionAlias, "ShackWeight"))); + query.Columns.Add(DQSelectColumn.Create(榜前重量, "榜前重量")); + var 收购重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1),DQExpression.Field(unionAlias, "RealWeight"))); + query.Columns.Add(DQSelectColumn.Create(收购重量, "收购重量")); + + var 损耗 = DQExpression.Subtract(榜前重量, 收购重量); + query.Columns.Add(DQSelectColumn.Create(损耗, "损耗")); + + var 损耗比 = DQExpression.Multiply(损耗.ESafeDivide(榜前重量), DQExpression.Value(100)).ECastType>(); + query.Columns.Add(DQSelectColumn.Create(损耗比, "损耗比")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney"))), "实付金额")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "Money"))), "应付金额")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RawPrice"))), "毛重单价")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ExceptionMoney"))), "宰前扣款")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney").ESafeDivide(DQExpression.Field(unionAlias, "ShackWeight")))).ECastType>(), "收购单价")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney").ESafeDivide(DQExpression.Field(unionAlias, "RealWeight")))).ECastType>(), "实际单价")); + + + var 烫褪头数 = DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang1Number"))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang2Number")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang3Number")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang4Number")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang5Number")))); + query.Columns.Add(DQSelectColumn.Create(烫褪头数, "烫褪头数")); + + + var 剥皮总重量 = DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo1Weight"))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo2Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo3Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo4Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Bo5Weight")))); + + var 烫褪总重量 = DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Add( + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang1Weight"))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang2Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang3Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang4Weight")))), + DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), + DQExpression.Field(unionAlias, "Tang5Weight")))); + + var 总重量 = DQExpression.Add(剥皮总重量, 烫褪总重量); + + + var 剥皮一级头数 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2),DQExpression.Field(unionAlias, "Bo1Number"))); + var 剥皮一级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo1Weight"))); + query.Columns.Add(DQSelectColumn.Create(剥皮一级头数, "剥皮|一级|头数")); + query.Columns.Add(DQSelectColumn.Create(剥皮一级重量, "剥皮|一级|重量")); + var 剥皮一级占比 = DQExpression.Multiply(剥皮一级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>() ; + query.Columns.Add(DQSelectColumn.Create(剥皮一级占比, "剥皮|一级|占比")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Number"))), "剥皮|二级|头数")); + var 剥皮二级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Weight"))); + query.Columns.Add(DQSelectColumn.Create(剥皮二级重量, "剥皮|二级|重量")); + var 剥皮二级占比 = DQExpression.Multiply(剥皮二级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); + query.Columns.Add(DQSelectColumn.Create(剥皮二级占比, "剥皮|二级|占比")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Number"))), "剥皮|三级|头数")); + var 剥皮三级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Weight"))); + query.Columns.Add(DQSelectColumn.Create(剥皮三级重量, "剥皮|三级|重量")); + var 剥皮三级占比 = DQExpression.Multiply(剥皮三级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); + query.Columns.Add(DQSelectColumn.Create(剥皮三级占比, "剥皮|三级|占比")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Number"))), "剥皮|四级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Weight"))), "剥皮|四级|重量")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Number"))), "剥皮|五级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Weight"))), "剥皮|五级|重量")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Number"))), "烫褪|一级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Weight"))), "烫褪|一级|重量")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Number"))), "烫褪|二级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Weight"))), "烫褪|二级|重量")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Number"))), "烫褪|三级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Weight"))), "烫褪|三级|重量")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Number"))), "烫褪|四级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Weight"))), "烫褪|四级|重量")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Number"))), "烫褪|五级|头数")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Weight"))), "烫褪|五级|重量")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price1"))), "单价|一级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price2"))), "单价|二级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price3"))), "单价|三级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price4"))), "单价|四级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Price5"))), "单价|五级")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo1Money"))), "金额|剥皮|一级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Money"))), "金额|剥皮|二级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Money"))), "金额|剥皮|三级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Money"))), "金额|剥皮|四级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Money"))), "金额|剥皮|五级")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Money"))), "金额|烫褪|一级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Money"))), "金额|烫褪|二级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Money"))), "金额|烫褪|三级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Money"))), "金额|烫褪|四级")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Money"))), "金额|烫褪|五级")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalMoney"))), "合计金额")); - //屠宰明细 - var detail = new JoinAlias(typeof(StatPay_Butcher)); - query.From.AddJoin(Forks.EnterpriseServices.SqlDoms.JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(bill, "ID", detail, "StatPay_ID")); - foreach (ListItem field in _checkbox.Items) + return query; + } + + + + class tempUnionDom + { + public int UnionType { get; set; } + public long StatPay_ID { get; set; } + + public decimal? RealNumber { get; set; } + public decimal? ShackWeight { get; set; } + public decimal? RealWeight { get; set; } + public decimal? ActualMoney { get; set; } + public decimal? Money { get; set; } + public decimal? RawPrice { get; set; } + public decimal? ExceptionMoney { get; set; } + + + public decimal? Bo1Number { get; set; } + public decimal? Bo1Weight { get; set; } + public decimal? Bo2Number { get; set; } + public decimal? Bo2Weight { get; set; } + public decimal? Bo3Number { get; set; } + public decimal? Bo3Weight { get; set; } + public decimal? Bo4Number { get; set; } + public decimal? Bo4Weight { get; set; } + public decimal? Bo5Number { get; set; } + public decimal? Bo5Weight { get; set; } + public decimal? Tang1Number { get; set; } + public decimal? Tang1Weight { get; set; } + public decimal? Tang2Number { get; set; } + public decimal? Tang2Weight { get; set; } + public decimal? Tang3Number { get; set; } + public decimal? Tang3Weight { get; set; } + public decimal? Tang4Number { get; set; } + public decimal? Tang4Weight { get; set; } + public decimal? Tang5Number { get; set; } + public decimal? Tang5Weight { get; set; } + public decimal? Price1 { get; set; } + public decimal? Price2 { get; set; } + public decimal? Price3 { get; set; } + public decimal? Price4 { get; set; } + public decimal? Price5 { get; set; } + public decimal? Bo1Money { get; set; } + public decimal? Bo2Money { get; set; } + public decimal? Bo3Money { get; set; } + public decimal? Bo4Money { get; set; } + public decimal? Bo5Money { get; set; } + public decimal? Tang1Money { get; set; } + public decimal? Tang2Money { get; set; } + public decimal? Tang3Money { get; set; } + public decimal? Tang4Money { get; set; } + public decimal? Tang5Money { get; set; } + public decimal? TotalMoney { get; set; } + static DQueryDom GetUnionDom() + { + var billDom = GetBillDom(); + var detailDom = GetDetailDom(); + billDom.UnionNext.Select = detailDom; + return billDom; + } + + static DQueryDom GetBillDom() { - if (field.Selected) - { - switch (field.Text) - { - case "会计单位": - - } - } + var query = new DQueryDom(new JoinAlias("statpay", typeof(StatPay))); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "UnionType")); + + query.Columns.Add(DQSelectColumn.Field("ID", "StatPay_ID")); + + query.Columns.Add(DQSelectColumn.Field("RealNumber", "RealNumber")); + query.Columns.Add(DQSelectColumn.Field("ShackWeight", "ShackWeight")); + query.Columns.Add(DQSelectColumn.Field("RealWeight", "RealWeight")); + query.Columns.Add(DQSelectColumn.Field("ActualMoney", "ActualMoney")); + query.Columns.Add(DQSelectColumn.Field("Money", "Money")); + query.Columns.Add(DQSelectColumn.Field("RawPrice", "RawPrice")); + query.Columns.Add(DQSelectColumn.Field("ExceptionMoney", "ExceptionMoney")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo2Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo2Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo3Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo3Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo4Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo4Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo5Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo5Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang1Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang1Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang2Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang2Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang3Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang3Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang4Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang4Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang5Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang5Weight")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Price1")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Price2")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Price3")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Price4")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Price5")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo1Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo2Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo3Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo4Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Bo5Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang1Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang2Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang3Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang4Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "Tang5Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "TotalMoney")); + + + //query.Where.Conditions.Add(DQCondition.EQ("ID", 445)); + return query; } + static DQueryDom GetDetailDom() + { + var detail = new JoinAlias("detail", typeof(StatPay_Butcher)); + var bill = new JoinAlias("bill", typeof(StatPay)); + var query = new DQueryDom(detail); + query.From.AddJoin(JoinType.Inner, new DQDmoSource(bill), DQCondition.EQ(bill, "ID", detail, "StatPay_ID")); + query.GroupBy.Expressions.Add(DQExpression.Field(detail, "StatPay_ID")); - //if (UseWeightSumRate2) - //{ - // DetailTemp.Register(query); - // var details = new JoinAlias("_temp1", typeof(DetailTemp)); - // query.From.AddJoin(JoinType.Left, new DQDmoSource(details), DQCondition.EQ(bill, "ID", details, "ID")); - // mDisplayOptionHelper.AddAlias("_temp1", details); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(2), "UnionType")); + query.Columns.Add(DQSelectColumn.Field("StatPay_ID", detail, "StatPay_ID")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "RealNumber")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ShackWeight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "RealWeight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ActualMoney")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "RawPrice")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ExceptionMoney")); + - // ButcherTemp.Register(query); - // var totaoMao = new JoinAlias("_butcherTemp", typeof(ButcherTemp)); - // query.From.AddJoin(JoinType.Left, new DQDmoSource(totaoMao), DQCondition.EQ(details, "Butcher_ID", totaoMao, "ID")); - // mDisplayOptionHelper.AddAlias("_butcherTemp", totaoMao); + var bo1 = 6; + var bo2 = 7; + var bo3 = 8; + var bo4 = 9; + var bo5 = 10; - // ByProductRecordTemp.Register(query); - // var bpr = new JoinAlias("_bpr", typeof(ByProductRecordTemp)); - // query.From.AddJoin(JoinType.Left, new DQDmoSource(bpr), DQCondition.And(DQCondition.EQ(bill, "AccountingUnit_ID", bpr, "AccountingUnit_ID"), DQCondition.EQ(totaoMao, "Date", bpr, "Date"))); - // mDisplayOptionHelper.AddAlias("_bpr", bpr); - //} + var tang1 = 1; + var tang2 = 2; + var tang3 = 3; + var tang4 = 4; + var tang5 = 5; + #region 重量头数 + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo1)), DQExpression.Field("Number"), DQExpression.Value(0))), "Bo1Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo1)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Bo1Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo2)), DQExpression.Field("Number"), DQExpression.Value(0))), "Bo2Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo2)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Bo2Weight")); - mDisplayOptionHelper.AddSelectColumns(query, (name) => OptionIsSelected("显示字段", name), SumColumnIndexs, GroupSumColumnIndexs); - return query; - } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo3)), DQExpression.Field("Number"), DQExpression.Value(0))), "Bo3Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo3)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Bo3Weight")); - } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo4)), DQExpression.Field("Number"), DQExpression.Value(0))), "Bo4Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo4)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Bo4Weight")); - class tempUnionButcher - { - public long StatPay_ID { get; set; } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo5)), DQExpression.Field("Number"), DQExpression.Value(0))), "Bo5Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo5)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Bo5Weight")); - [LogicName("级别")] - public string Livestock_Name { get; set; } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang1)), DQExpression.Field("Number"), DQExpression.Value(0))), "Tang1Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang1)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Tang1Weight")); - [LogicName("级别")] - public long? Livestock_ID { get; set; } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang2)), DQExpression.Field("Number"), DQExpression.Value(0))), "Tang2Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang2)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Tang2Weight")); - [LogicName("工艺")] - public NamedValue<工艺>? Technics { get; set; } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang3)), DQExpression.Field("Number"), DQExpression.Value(0))), "Tang3Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang3)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Tang3Weight")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang4)), DQExpression.Field("Number"), DQExpression.Value(0))), "Tang4Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang4)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Tang4Weight")); - [LogicName("头数")] - public int? Number { get; set; } + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang5)), DQExpression.Field("Number"), DQExpression.Value(0))), "Tang5Number")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang5)), DQExpression.Field("Weight"), DQExpression.Value(0))), "Tang5Weight")); - [LogicName("重量")] - public Money? Weight { get; set; } + #endregion + #region 单价金额 + //烫褪 毛剥 价格一样 + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang1)), DQExpression.Field("Price"), DQExpression.Value(0))), "Price1")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang2)), DQExpression.Field("Price"), DQExpression.Value(0))), "Price2")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang3)), DQExpression.Field("Price"), DQExpression.Value(0))), "Price3")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang4)), DQExpression.Field("Price"), DQExpression.Value(0))), "Price4")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang5)), DQExpression.Field("Price"), DQExpression.Value(0))), "Price5")); + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo1)), DQExpression.Field("Money"), DQExpression.Value(0))), "Bo1Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo2)), DQExpression.Field("Money"), DQExpression.Value(0))), "Bo2Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo3)), DQExpression.Field("Money"), DQExpression.Value(0))), "Bo3Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo4)), DQExpression.Field("Money"), DQExpression.Value(0))), "Bo4Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.毛剥), DQCondition.EQ("Livestock_ID", bo5)), DQExpression.Field("Money"), DQExpression.Value(0))), "Bo5Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang1)), DQExpression.Field("Money"), DQExpression.Value(0))), "Tang1Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang2)), DQExpression.Field("Money"), DQExpression.Value(0))), "Tang2Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang3)), DQExpression.Field("Money"), DQExpression.Value(0))), "Tang3Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang4)), DQExpression.Field("Money"), DQExpression.Value(0))), "Tang4Money")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.EQ("Technics", 工艺.烫褪), DQCondition.EQ("Livestock_ID", tang5)), DQExpression.Field("Money"), DQExpression.Value(0))), "Tang5Money")); + + + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field("Money")), "TotalMoney")); + + + #endregion - public static void Register(DQueryDom root) - { - var butcher = new JoinAlias("butcher", typeof(StatPay_Butcher)); - var butcherQuery = new DQueryDom(butcher); - butcherQuery.Columns.Add(DQSelectColumn.Field("StatPay_ID")); - butcherQuery.Columns.Add(DQSelectColumn.Field("Livestock_ID")); - butcherQuery.Columns.Add(DQSelectColumn.Field("Livestock_Name")); - butcherQuery.Columns.Add(DQSelectColumn.Field("Technics")); - butcherQuery.Columns.Add(DQSelectColumn.Field("Number")); - butcherQuery.Columns.Add(DQSelectColumn.Field("Weight")); - root.RegisterQueryTable(typeof(tempUnionButcher), new string[] { "StatPay_ID", "Livestock_ID", "Livestock_Name", "Technics", "Number", "Weight" }, butcherQuery); + + //query.Where.Conditions.Add(DQCondition.EQ(bill, "ID", 445)); + + return query; + } + + + + + public static void Register(DQueryDom root) + { + var butcherQuery = GetUnionDom(); + root.RegisterQueryTable(typeof(tempUnionDom), new string[] { "UnionType", "StatPay_ID", "RealNumber", "ShackWeight", "RealWeight", "ActualMoney", "Money", "RawPrice", "ExceptionMoney","Bo1Number", "Bo1Weight", "Bo2Number", "Bo2Weight", "Bo3Number", "Bo3Weight", "Bo4Number", "Bo4Weight", "Bo5Number", "Bo5Weight", "Tang1Number", "Tang1Weight", "Tang2Number", "Tang2Weight", "Tang3Number", "Tang3Weight", "Tang4Number", "Tang4Weight", "Tang5Number", "Tang5Weight", "Price1", "Price2", "Price3", "Price4", "Price5", "Bo1Money", "Bo2Money", "Bo3Money", "Bo4Money", "Bo5Money", "Tang1Money", "Tang2Money", "Tang3Money", "Tang4Money", "Tang5Money", "TotalMoney" }, butcherQuery); + + } } } } diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml index a383a34..1053b2c 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml @@ -1,7 +1,7 @@