|
|
|
@ -50,10 +50,17 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassLossAnalyse_ |
|
|
|
} |
|
|
|
|
|
|
|
ChoiceBox batchSelect; |
|
|
|
DFCheckBox summaryBox; |
|
|
|
private void AddQueryControl(Panel queryPanel) |
|
|
|
{ |
|
|
|
var hp = queryPanel.EAdd(new Panel()); |
|
|
|
hp.Style.Add("float", "right"); |
|
|
|
summaryBox = hp.EAdd(new DFCheckBox() { Text = "汇总", AutoPostBack = true }); |
|
|
|
summaryBox.InputAttributes.Add("style", "width:15px;height:15px;"); |
|
|
|
summaryBox.CheckedChanged += delegate |
|
|
|
{ |
|
|
|
StartQuery(); |
|
|
|
}; |
|
|
|
hp.EAdd(new SimpleLabel("生产批次")); |
|
|
|
batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.生产批次) { EnableInputArgument = true, EnableTopItem = true, AutoPostBack = true, Width = Unit.Pixel(180) }); |
|
|
|
var batch = GetYesterdayBatch(); |
|
|
|
@ -88,6 +95,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassLossAnalyse_ |
|
|
|
void StartQuery() |
|
|
|
{ |
|
|
|
var sumColumns = new List<int>(); |
|
|
|
var groupSumColumns = new List<int>(); |
|
|
|
|
|
|
|
var main = new JoinAlias(typeof(CarcassFullInfo)); |
|
|
|
var livestock = new JoinAlias(typeof(Livestock)); |
|
|
|
@ -95,22 +103,32 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassLossAnalyse_ |
|
|
|
var query = new DQueryDom(main); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID")); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("BarCode", "条码")); |
|
|
|
if (!summaryBox.Checked) |
|
|
|
{ |
|
|
|
query.Columns.Add(DQSelectColumn.Field("BarCode", "条码")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field("BarCode")); |
|
|
|
} |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Name", livestock, "胴体级别")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value<int>(1), "头数")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(livestock, "Name")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Value(1)).ECastType<int?>(), "头数")); |
|
|
|
sumColumns.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("GradeWeight", "胴体重量")); |
|
|
|
groupSumColumns.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("GradeWeight", "胴体重量")); |
|
|
|
sumColumns.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name") ,"存货名称")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("InStoreWeight", "入库重量")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name"), "存货名称")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(inGoods, "Name")); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("InStoreWeight", "入库重量")); |
|
|
|
sumColumns.Add(query.Columns.Count - 1); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.Field("GradeWeight"), DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0))), "损耗")); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Subtract(DQExpression.Field("GradeWeight"), DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0)))), "损耗")); |
|
|
|
sumColumns.Add(query.Columns.Count - 1); |
|
|
|
groupSumColumns.Add(query.Columns.Count - 1); |
|
|
|
if (!batchSelect.IsEmpty) |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))); |
|
|
|
var args = new LoadArguments(query); |
|
|
|
foreach (var idx in sumColumns) |
|
|
|
args.SumColumns.Add(idx); |
|
|
|
args.SumColumns.Add(idx); |
|
|
|
foreach (var idx in groupSumColumns) |
|
|
|
args.GroupSumColumns.Add(idx); |
|
|
|
mBrowseGrid.LoadArguments = args; |
|
|
|
mBrowseGrid.DataBind(); |
|
|
|
} |
|
|
|
|