Browse Source

锁定 合计 排序

master
luanhui 8 years ago
parent
commit
141df1e582
4 changed files with 308 additions and 164 deletions
  1. +3
    -0
      B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj
  2. +63
    -0
      B3QingDaoWanFu.Web/DFGridReportPage.cs
  3. +238
    -164
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs
  4. +4
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml

+ 3
- 0
B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj View File

@ -130,6 +130,9 @@
<Compile Include="..\..\..\version\Customer_version.cs">
<Link>Customer_version.cs</Link>
</Compile>
<Compile Include="DFGridReportPage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Overlays\StatPayAnalyse_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>


+ 63
- 0
B3QingDaoWanFu.Web/DFGridReportPage.cs View File

@ -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<T> : 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;
}
}
}
}

+ 238
- 164
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs View File

@ -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<StatPay>
public class ComprehensiveReport : DFGridReportPage<StatPay>
{
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<string>();
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<Money<金额>>();
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<Money<金额>>();
@ -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<Money<金额>>();
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<Money<金额>>();
// var 皮肉比 =DQExpression.Multiply( 皮肉重量.ESafeDivide(榜前重量),DQExpression.Value(100)).ECastType<Money<金额>>();
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "皮肉比"));
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<Money<金额>>();
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<decimal?>(), "TotalWeight"));
// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "ByProductWeight"));
// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "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<decimal?>(), "ByProductWeight"));
// query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "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);
}
}


+ 4
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml View File

@ -13,6 +13,10 @@
<Field name="ID" alias="bill"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="Weigh_ID" alias="bill"/>
<QBE paramName="Weigh_ID"/>
</EQ>
<EQ>
<Field name="AccountingUnit_ID" alias="bill"/>
<QBE paramName="AccountingUnit_ID"/>


Loading…
Cancel
Save