Browse Source

增加收购总表

master
luanhui 8 years ago
parent
commit
04847fc505
2 changed files with 386 additions and 66 deletions
  1. +371
    -57
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs
  2. +15
    -9
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml

+ 371
- 57
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.cs View File

@ -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<Money<>>(), "均重"));
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<Money<>>();
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<Money<>>(), "收购单价"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(unionAlias, "UnionType", 1), DQExpression.Field(unionAlias, "ActualMoney").ESafeDivide(DQExpression.Field(unionAlias, "RealWeight")))).ECastType<Money<>>(), "实际单价"));
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<Money<>>() ;
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<Money<>>();
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<Money<>>();
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<int>(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<decimal?>(), "Bo1Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo1Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo2Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo2Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo3Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo3Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo4Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo4Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo5Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo5Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang1Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang1Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang2Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang2Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang3Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang3Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang4Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang4Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang5Number"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang5Weight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Price1"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Price2"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Price3"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Price4"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Price5"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo1Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo2Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo3Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo4Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Bo5Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang1Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang2Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang3Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang4Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "Tang5Money"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.NULL.ECastType<decimal?>(), "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<int>(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<decimal>? 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);
}
}
}
}

+ 15
- 9
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/ComprehensiveReport.xml View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="BWP.B3ButcherManage.BO.StatPay, B3ButcherManage" alias="bill"/>
@ -26,20 +26,26 @@
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="Store_ID" alias="bill"/>
<QBE paramName="Store_ID"/>
<Field name="BillState" alias="bill"/>
<QBE paramName="BillState"/>
</EQ>
<EQ>
<Field name="ProductBatch" alias="bill"/>
<QBE paramName="ProductBatch"/>
<Field name="SupplierClass_ID" alias="bill"/>
<QBE paramName="SupplierClass_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID" alias="bill"/>
<QBE paramName="Employee_ID"/>
<Field name="Supplier_ID" alias="bill"/>
<QBE paramName="Supplier_ID"/>
</EQ>
<EQ>
<Field name="ValuationArea_ID" alias="bill"/>
<QBE paramName="ValuationArea_ID"/>
</EQ>
<EQ>
<Field name="OtherInStoreType_ID" alias="bill"/>
<QBE paramName="OtherInStoreType_ID"/>
<Field name="PurchaseType" alias="bill"/>
<QBE paramName="PurchaseType"/>
</EQ>
<GreaterThanOrEqual>


Loading…
Cancel
Save