diff --git a/B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj b/B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj index 44e3060..044d165 100644 --- a/B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj +++ b/B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj @@ -130,6 +130,9 @@ Customer_version.cs + + ASPXCodeBehind + ASPXCodeBehind diff --git a/B3QingDaoWanFu.Web/DFGridReportPage.cs b/B3QingDaoWanFu.Web/DFGridReportPage.cs new file mode 100644 index 0000000..be2421f --- /dev/null +++ b/B3QingDaoWanFu.Web/DFGridReportPage.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Forks.EnterpriseServices.DataForm; +using TSingSoft.WebControls2; + +namespace BWP.Web +{ + public abstract class DFGridReportPage : DFGridReportPage + { + protected DFInfo mDFInfo = DFInfo.Get(typeof(T)); + + protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form) + { + if (fromSuperScreen) + { + mQueryContainer = QueryContainer.FromResource(BasisType.FullName + ".xml", BasisType.Assembly); + mQueryControls.QueryContainer = mQueryContainer; + var queryContainerScript = new QueryContainerScript(mQueryContainer) { ID = "QueryContainer" }; + form.Controls.Add(queryContainerScript); + var vPanel = form.EAdd(new VLayoutPanel()); + AddResultControls(vPanel); + if (!string.IsNullOrEmpty(ResultHeightClientExpression)) + { + vPanel.PreRender += (sender, e) => + { + var script = "$(function(){$('#{ClientID}').css('max-height',({ResultHeightClientExpression})+'px');});" + .Replace("{ClientID}", vPanel.ClientID) + .Replace("{ResultHeightClientExpression}", ResultHeightClientExpression); + vPanel.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ResultHeightClientExpression", script, true); + }; + } + } + else + base.InitForm(form); + mDFGrid.HeaderPagerLock = true; + mDFGrid.AllowColGroup = true; + mDFGrid.AllowSorting = true; + } + + protected bool fromSuperScreen + { + get { return !string.IsNullOrEmpty(Request.QueryString["type"]); } + } + + protected override bool EnableExcelExport + { + get + { + return !fromSuperScreen; + } + } + + protected override bool EnablePrint + { + get + { + return !fromSuperScreen; + } + } + } +} diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs index 3aae36a..92155ff 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs @@ -12,80 +12,139 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using BWP.B3Frameworks.BO.MoneyTemplate; using BWP.B3ProduceUnitedInfos.BO; using Forks.EnterpriseServices.DataForm; using Forks.EnterpriseServices.SqlDoms; using TSingSoft.WebControls2; +using TSingSoft.WebControls2.DFGrids; using TSingSoft.WebPluginFramework; namespace BWP.Web.Pages.B3QingDaoWanFu.Reports { - public class ComprehensiveReport : DFBrowseGridReportPage + public class ComprehensiveReport : DFGridReportPage { protected override string Caption { get { return "收购综合报表"; } } -// protected override string QueryOptionsTabName -// { -// get -// { -// return "显示字段"; -// } -// } + // protected override string QueryOptionsTabName + // { + // get + // { + // return "显示字段"; + // } + // } protected override string AccessRoleName { get { return "B3QingDaoWanFu.报表.收购综合报表"; } } - protected override void InitBrowseGrid(DFBrowseGrid grid) + + protected override void AfterGetDFDataTable(DFDataTable table) { - base.InitBrowseGrid(grid); - grid.DataFilter = (table) => - { - decimal sum皮肉重量 = 0; - foreach (DFDataRow row in table.Rows) - { - try - { - var 肉重量 = row["皮肉重量"]; - var 皮重 = row["皮重"]; - var 皮肉重量= (Money<金额>?)(objToDecimal(肉重量) + objToDecimal(皮重)); - row["皮肉重量"] = 皮肉重量; - sum皮肉重量 += (皮肉重量??0); - - var 到厂毛重 = objToDecimal(row["到厂毛重"]); - row["皮肉比"] = Math.Round((double)(皮肉重量 / 到厂毛重 * 100), 2); - } - catch{} + ResetTable(table); + } - } + protected override bool AllDataMode { + get { return true; } + } + private void ResetTable(DFDataTable table) + { + decimal sum皮肉重量 = 0; + foreach (DFDataRow row in table.Rows) + { try { - table.SumRow["毛重单价"] = (Money<金额>?)(objToDecimal(table.SumRow["应付金额"]) / objToDecimal(table.SumRow["到厂毛重"])); - } - catch {} - try - { - table.SumRow["实付单价"] = (Money<金额>?)(objToDecimal(table.SumRow["实付金额"]) / objToDecimal(table.SumRow["到厂毛重"])); + var 肉重量 = row["皮肉重量"]; + var 皮重 = row["皮重"]; + var 皮肉重量 = (Money<金额>?)(objToDecimal(肉重量) + objToDecimal(皮重)); + row["皮肉重量"] = 皮肉重量; + sum皮肉重量 += (皮肉重量 ?? 0); + + var 到厂毛重 = objToDecimal(row["到厂毛重"]); + row["皮肉比"] = Math.Round((double)(皮肉重量 / 到厂毛重 * 100), 2); } - catch {} + catch { } - try - { - table.SumRow["实付单价"] = (Money<金额>?)(objToDecimal(table.SumRow["实付金额"]) / objToDecimal(table.SumRow["到厂毛重"])); - } - catch {} - try + } + + SetCommonDivSumTable(table, "毛重单价", "应付金额", "到厂毛重"); + SetCommonDivSumTable(table, "实付单价", "实付金额", "到厂毛重"); + SetCommonDivSumTable(table, "单头盈亏", "盈亏", "收购头数"); + SetCommonDivSumTable(table, "均重", "到厂毛重", "收购头数"); + SetCommonDivSumTable(table, "损耗比", "损耗", "原发毛重",true); + SetCommonDivSumTable(table, "皮肉比", "皮肉重量", "到厂毛重", true); + + Set占比(table); + + + +// Set占比(table,); + try + { + table.SumRow["皮肉重量"] = sum皮肉重量; + } + catch { } + } + + private void Set占比(DFDataTable table) + { + try + { + var 剥皮一级重量 = objToDecimal(table.SumRow["剥皮|一级|重量"]); + var 剥皮二级重量 = objToDecimal(table.SumRow["剥皮|二级|重量"]); + var 剥皮三级重量 = objToDecimal(table.SumRow["剥皮|三级|重量"]); + var 剥皮四级重量 = objToDecimal(table.SumRow["剥皮|四级|重量"]); + var 剥皮五级重量 = objToDecimal(table.SumRow["剥皮|五级|重量"]); + var 剥皮总重量 = 剥皮一级重量 + 剥皮二级重量 + 剥皮三级重量 + 剥皮四级重量 + 剥皮五级重量; + + var 烫褪一级重量 = objToDecimal(table.SumRow["烫褪|一级|重量"]); + var 烫褪二级重量 = objToDecimal(table.SumRow["烫褪|二级|重量"]); + var 烫褪三级重量 = objToDecimal(table.SumRow["烫褪|三级|重量"]); + var 烫褪四级重量 = objToDecimal(table.SumRow["烫褪|四级|重量"]); + var 烫褪五级重量 = objToDecimal(table.SumRow["烫褪|五级|重量"]); + var 烫褪总重量 = 烫褪一级重量 + 烫褪二级重量 + 烫褪三级重量 + 烫褪四级重量 + 烫褪五级重量; + + + table.SumRow["剥皮|一级|占比"] =Math.Round(剥皮一级重量 / 剥皮总重量*100,2); + table.SumRow["剥皮|二级|占比"] =Math.Round(剥皮二级重量 / 剥皮总重量*100,2); + table.SumRow["剥皮|三级|占比"] =Math.Round(剥皮三级重量 / 剥皮总重量*100,2); + table.SumRow["剥皮|四级|占比"] =Math.Round(剥皮四级重量 / 剥皮总重量*100,2); + table.SumRow["剥皮|五级|占比"] =Math.Round(剥皮五级重量 / 剥皮总重量*100,2); + + table.SumRow["烫褪|一级|占比"] =Math.Round(烫褪一级重量 / 烫褪总重量*100,2); + table.SumRow["烫褪|二级|占比"] =Math.Round(烫褪二级重量 / 烫褪总重量*100,2); + table.SumRow["烫褪|三级|占比"] =Math.Round(烫褪三级重量 / 烫褪总重量*100,2); + table.SumRow["烫褪|四级|占比"] =Math.Round(烫褪四级重量 / 烫褪总重量*100,2); + table.SumRow["烫褪|五级|占比"] =Math.Round(烫褪五级重量 / 烫褪总重量*100, 2); + + var 一二级重量 = 剥皮一级重量 + 剥皮二级重量 + 烫褪一级重量 + 烫褪二级重量; + var 总重量 = 剥皮总重量 + 烫褪总重量; + table.SumRow["一二级比"] =Math.Round(一二级重量 / 总重量 * 100, 2); + + + } + catch + { + } + } + + void SetCommonDivSumTable(DFDataTable table, string sumname,string chu, string chuyi,bool mul100=false) + { + try + { + var value = (Money<金额>?) (objToDecimal(table.SumRow[chu]) / objToDecimal(table.SumRow[chuyi])); + if (mul100) { - table.SumRow["皮肉重量"] = sum皮肉重量; + value = value * 100; } - catch {} - - }; + table.SumRow[sumname] = value; + } + catch { } } decimal objToDecimal(object obj) @@ -107,8 +166,11 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports input.Value = 单据状态.已审核; var config = new AutoLayoutConfig() { Cols = 2 }; + layoutManager.Add("ID", new SimpleLabel("结算单号"), QueryCreator.DFTextBox(mDFInfo.Fields["ID"])); + config.Add("AccountingUnit_ID"); config.Add("ID"); + // config.Add("Weigh_ID"); config.Add("BillState"); config.Add("Supplier_ID"); config.Add("SupplierClass_ID"); @@ -133,27 +195,17 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports _checkbox.Items.Add(new ListItem("供应商", "Supplier_Name")); _checkbox.Items.Add(new ListItem("来源地", "来源地")); _checkbox.Items.Add(new ListItem("过磅单号", "Weigh_ID")); + _checkbox.Items.Add(new ListItem("结算单号", "ID")); _checkbox.Items.Add(new ListItem("业务员", "Employee_Name")); + _checkbox.Items.Add(new ListItem("收购头数", "RealNumber")); - _checkbox.Items.Add(new ListItem("原发毛重", "ShackWeight")); - _checkbox.Items.Add(new ListItem("到厂毛重", "RealWeight")); _checkbox.Items.Add(new ListItem("均重", "均重")); _checkbox.Items.Add(new ListItem("毛猪等级", "HogGrade_Name")); - + _checkbox.Items.Add(new ListItem("原发毛重", "ShackWeight")); + _checkbox.Items.Add(new ListItem("到厂毛重", "RealWeight")); _checkbox.Items.Add(new ListItem("损耗", "损耗")); _checkbox.Items.Add(new ListItem("损耗比", "损耗比")); - - _checkbox.Items.Add(new ListItem("实付金额", "ActualMoney")); - _checkbox.Items.Add(new ListItem("应付金额", "Money")); - _checkbox.Items.Add(new ListItem("盈亏", "盈亏")); - _checkbox.Items.Add(new ListItem("单头盈亏", "单头盈亏")); - - _checkbox.Items.Add(new ListItem("毛重单价", "RawPrice")); - _checkbox.Items.Add(new ListItem("实付单价", "ActualPrice")); - _checkbox.Items.Add(new ListItem("宰前扣款", "ExceptionMoney")); - _checkbox.Items.Add(new ListItem("宰后扣款", "宰后扣款")); - _checkbox.Items.Add(new ListItem("死猪扣款", "DeadPigRewardMoney")); _checkbox.Items.Add(new ListItem("烫褪头数", "烫褪头数")); _checkbox.Items.Add(new ListItem("头数重量", "头数重量")); @@ -164,6 +216,21 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports _checkbox.Items.Add(new ListItem("一二级比", "一二级比")); _checkbox.Items.Add(new ListItem("单价金额", "单价金额")); + _checkbox.Items.Add(new ListItem("合计金额", "合计金额")); + + _checkbox.Items.Add(new ListItem("宰前扣款", "ExceptionMoney")); + _checkbox.Items.Add(new ListItem("宰后扣款", "宰后扣款")); + _checkbox.Items.Add(new ListItem("死猪扣款", "DeadPigRewardMoney")); + + _checkbox.Items.Add(new ListItem("实付金额", "ActualMoney")); + _checkbox.Items.Add(new ListItem("应付金额", "Money")); + _checkbox.Items.Add(new ListItem("实付单价", "ActualPrice")); + _checkbox.Items.Add(new ListItem("毛重单价", "RawPrice")); + + _checkbox.Items.Add(new ListItem("盈亏", "盈亏")); + _checkbox.Items.Add(new ListItem("单头盈亏", "单头盈亏")); + + panel.EAdd(_checkbox); mQueryControls.Add("显示字段", _checkbox); @@ -175,22 +242,24 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports var query = base.GetQueryDom(); var bill = JoinAlias.Create("bill"); - var weight=new JoinAlias("mainweight",typeof(WeighBill)); - query.From.AddJoin(JoinType.Left,new DQDmoSource(weight),DQCondition.EQ(bill, "Weigh_ID",weight,"ID") ); + var weight = new JoinAlias("mainweight", typeof(WeighBill)); + query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.EQ(bill, "Weigh_ID", weight, "ID")); 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.GroupBy.Expressions.Add(DQExpression.Field(bill,"Date")); + query.GroupBy.Expressions.Add(DQExpression.Field(bill, "Date")); var 榜前重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ShackWeight"))); var 收购重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "RealWeight"))); var 损耗 = DQExpression.Subtract(榜前重量, 收购重量); var 皮肉重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalWeight"))); var 盈亏 = DQExpression.Subtract(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "Money"))), DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney")))); - + + var sumColumn = new List(); + foreach (ListItem field in _checkbox.Items) { if (field.Selected) @@ -206,9 +275,10 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports case "供应商": case "业务员": case "过磅单号": + case "结算单号": case "毛猪等级": query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(field.Value), field.Text)); - query.GroupBy.Expressions.Add(DQExpression.Field( field.Value)); + query.GroupBy.Expressions.Add(DQExpression.Field(field.Value)); break; case "均重": @@ -225,34 +295,34 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports case "宰前扣款": case "死猪扣款": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, field.Value))), field.Text)); - SumColumnIndexs.Add(query.Columns.Count-1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + sumColumn.Add(field.Text); break; case "盈亏": query.Columns.Add(DQSelectColumn.Create(盈亏, "盈亏")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + sumColumn.Add(field.Text); break; case "单头盈亏": - var 收购头数 = 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, "RealNumber"))); var 单头盈亏 = 盈亏.ESafeDivide(收购头数).ECastType>(); query.Columns.Add(DQSelectColumn.Create(单头盈亏, "单头盈亏")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + // sumColumn.Add(field.Text); break; case "宰后扣款": - var 宰后扣款 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1),DQExpression.Field(unionAlias, "OtherRewardMoney"))); + var 宰后扣款 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "OtherRewardMoney"))); var 死猪扣款 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "DeadPigRewardMoney"))); var 宰后不算死猪扣款 = DQExpression.Subtract(宰后扣款, DQExpression.IfNull(死猪扣款, DQExpression.Value(0))); query.Columns.Add(DQSelectColumn.Create(宰后不算死猪扣款, "宰后扣款")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + sumColumn.Add(field.Text); break; case "损耗": query.Columns.Add(DQSelectColumn.Create(损耗, "损耗")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + sumColumn.Add(field.Text); break; case "损耗比": var 损耗比 = DQExpression.Multiply(损耗.ESafeDivide(榜前重量), DQExpression.Value(100)).ECastType>(); @@ -274,23 +344,24 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports DQExpression.Field(unionAlias, "Bo4Number")))), DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Number")))); - - var 当天总皮重= DQExpression.SubQuery(Get当天总皮重(bill)); + + var 当天总皮重 = DQExpression.SubQuery(Get当天总皮重(bill)); var 当天总毛剥头数 = DQExpression.SubQuery(Get当天总毛剥头数(bill)); var 皮均重 = DQExpression.Multiply(毛剥头数, 当天总皮重.ESafeDivide(当天总毛剥头数)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(皮均重, "皮重")); + sumColumn.Add(field.Text); break; case "皮肉重量": query.Columns.Add(DQSelectColumn.Create(皮肉重量, "皮肉重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + sumColumn.Add(field.Text); break; case "皮肉比": -// var 皮肉比 =DQExpression.Multiply( 皮肉重量.ESafeDivide(榜前重量),DQExpression.Value(100)).ECastType>(); + // var 皮肉比 =DQExpression.Multiply( 皮肉重量.ESafeDivide(榜前重量),DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "皮肉比")); break; case "一二级比": - var 一二级重量= DQExpression.Add( + var 一二级重量 = DQExpression.Add( DQExpression.Add( DQExpression.Add( DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), @@ -322,8 +393,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Number")))); query.Columns.Add(DQSelectColumn.Create(烫褪头数, "烫褪头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + + sumColumn.Add(field.Text); break; #region 头数重量 @@ -364,104 +435,104 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports 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(剥皮一级头数, "剥皮|一级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|一级|头数"); + query.Columns.Add(DQSelectColumn.Create(剥皮一级重量, "剥皮|一级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|一级|重量"); + 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"))), "剥皮|二级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|二级|头数"); + var 剥皮二级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮二级重量, "剥皮|二级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|二级|重量"); + 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"))), "剥皮|三级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|三级|头数"); + var 剥皮三级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮三级重量, "剥皮|三级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|三级|重量"); + 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"))), "剥皮|四级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|四级|头数"); + var 剥皮四级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮四级重量, "剥皮|四级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|四级|重量"); + 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, "Bo5Number"))), "剥皮|五级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|五级|头数"); + var 剥皮五级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Weight"))); query.Columns.Add(DQSelectColumn.Create(剥皮五级重量, "剥皮|五级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("剥皮|五级|重量"); + 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, "Tang1Number"))), "烫褪|一级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|一级|头数"); + var 烫褪一级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪一级重量, "烫褪|一级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|一级|重量"); + 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, "Tang2Number"))), "烫褪|二级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|二级|头数"); + var 烫褪二级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪二级重量, "烫褪|二级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|二级|重量"); + 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, "Tang3Number"))), "烫褪|三级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|三级|头数"); + var 烫褪三级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪三级重量, "烫褪|三级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|三级|重量"); + 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, "Tang4Number"))), "烫褪|四级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|四级|头数"); + var 烫褪四级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪四级重量, "烫褪|四级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|四级|重量"); + 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, "Tang5Number"))), "烫褪|五级|头数")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|五级|头数"); + var 烫褪五级重量 = DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Weight"))); query.Columns.Add(DQSelectColumn.Create(烫褪五级重量, "烫褪|五级|重量")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("烫褪|五级|重量"); + var 烫褪五级占比 = DQExpression.Multiply(烫褪五级重量.ESafeDivide(总重量), DQExpression.Value(100)).ECastType>(); query.Columns.Add(DQSelectColumn.Create(烫褪五级占比, "烫褪|五级|占比")); @@ -478,42 +549,39 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports 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"))), "金额|剥皮|一级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|剥皮|一级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo2Money"))), "金额|剥皮|二级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|剥皮|二级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo3Money"))), "金额|剥皮|三级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|剥皮|三级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo4Money"))), "金额|剥皮|四级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|剥皮|四级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Bo5Money"))), "金额|剥皮|五级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|剥皮|五级"); query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang1Money"))), "金额|烫褪|一级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|烫褪|一级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang2Money"))), "金额|烫褪|二级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|烫褪|二级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang3Money"))), "金额|烫褪|三级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|烫褪|三级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang4Money"))), "金额|烫褪|四级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|烫褪|四级"); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "Tang5Money"))), "金额|烫褪|五级")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add("金额|烫褪|五级"); break; case "合计金额": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 2), DQExpression.Field(unionAlias, "TotalMoney"))), "合计金额")); - SumColumnIndexs.Add(query.Columns.Count - 1); - GroupSumColumnIndexs.Add(query.Columns.Count - 1); + sumColumn.Add(field.Text); break; #endregion default: @@ -522,8 +590,14 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports } } - - + foreach (var c in query.Columns) + ColumnNames.Add(c.Name); + foreach (var c in sumColumn) + { + SumColumnNames.Add(c); + GroupSumColumnNamnes.Add(c); + // SubtotalGroupColumnNames.Add(c); + } return query; @@ -531,16 +605,16 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports private DQueryDom Get当天总毛剥头数(JoinAlias bill) { - var stat=new JoinAlias("bonumber",typeof(StatPay)); - var statdetail=new JoinAlias("bonumberdetail",typeof(StatPay_Butcher)); - var query=new DQueryDom(stat); - query.From.AddJoin(JoinType.Inner,new DQDmoSource(statdetail),DQCondition.EQ(stat,"ID",statdetail, "StatPay_ID") ); + var stat = new JoinAlias("bonumber", typeof(StatPay)); + var statdetail = new JoinAlias("bonumberdetail", typeof(StatPay_Butcher)); + var query = new DQueryDom(stat); + query.From.AddJoin(JoinType.Inner, new DQDmoSource(statdetail), DQCondition.EQ(stat, "ID", statdetail, "StatPay_ID")); -// query.Where.Conditions.Add(DQCondition.EQ(DQExpression.Snippet("CAST(CONVERT(varchar(10), [bill].[Date], 120 )as smalldatetime)"),DQExpression.Snippet("CAST(CONVERT(varchar(10), [bonumber].[Date], 120 )as smalldatetime)"))); + // query.Where.Conditions.Add(DQCondition.EQ(DQExpression.Snippet("CAST(CONVERT(varchar(10), [bill].[Date], 120 )as smalldatetime)"),DQExpression.Snippet("CAST(CONVERT(varchar(10), [bonumber].[Date], 120 )as smalldatetime)"))); query.Where.Conditions.Add(DQCondition.EQ(bill, "Date", stat, "Date")); - query.Where.Conditions.Add(DQCondition.EQ(statdetail, "Technics",工艺.毛剥)); - query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(stat,"BillState",单据状态.已审核)); + query.Where.Conditions.Add(DQCondition.EQ(statdetail, "Technics", 工艺.毛剥)); + query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(stat, "BillState", 单据状态.已审核)); query.Columns.Add(DQSelectColumn.Sum(statdetail, "Number")); return query; @@ -686,7 +760,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "TotalWeight")); -// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "ByProductWeight")); + // query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "ByProductWeight")); return query; } @@ -713,12 +787,12 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "ExceptionMoney")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "OtherRewardMoney")); query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL, "DeadPigRewardMoney")); - - var bo1 = 6; - var bo2 = 7; - var bo3 = 8; - var bo4 = 9; + + var bo1 = 6; + var bo2 = 7; + var bo3 = 8; + var bo4 = 9; var bo5 = 10; var tang1 = 1; @@ -769,7 +843,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports 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")); @@ -788,7 +862,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports #endregion -// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "ByProductWeight")); + // query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType(), "ByProductWeight")); //query.Where.Conditions.Add(DQCondition.EQ(bill, "ID", 445)); @@ -800,7 +874,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports public static void Register(DQueryDom root) { var butcherQuery = GetUnionDom(); - root.RegisterQueryTable(typeof(tempUnionDom), new string[] { "UnionType", "StatPay_ID", "RealNumber", "ShackWeight", "RealWeight", "ActualMoney", "Money", "RawPrice","ActualPrice", "ExceptionMoney", "OtherRewardMoney", "DeadPigRewardMoney", "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", "TotalWeight" }, butcherQuery); + root.RegisterQueryTable(typeof(tempUnionDom), new string[] { "UnionType", "StatPay_ID", "RealNumber", "ShackWeight", "RealWeight", "ActualMoney", "Money", "RawPrice", "ActualPrice", "ExceptionMoney", "OtherRewardMoney", "DeadPigRewardMoney", "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", "TotalWeight" }, butcherQuery); } } diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml index 1053b2c..7210e68 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml @@ -13,6 +13,10 @@ + + + +