From 2f5272b06fcec687f6c1e2882aaa9262a606878a Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Tue, 24 Apr 2018 11:07:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BD=E6=9D=A1=E6=8D=9F=E8=80=97=EF=BC=8C?= =?UTF-8?q?=E7=99=BD=E6=9D=A1=E5=BA=93=E5=AD=98=E6=94=AF=E6=8C=81=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=9F=A5=E8=AF=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CarcassLossAnalyse_/CarcassLossAnalyse.cs | 32 ++++++++++--- .../CarcassStoreAnalyse.cs | 48 ++++++++++++++++++- 2 files changed, 72 insertions(+), 8 deletions(-) diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs index 8918795..10dcf17 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassLossAnalyse_/CarcassLossAnalyse.cs @@ -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(); + var groupSumColumns = new List(); 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(1), "头数")); + query.GroupBy.Expressions.Add(DQExpression.Field(livestock, "Name")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Value(1)).ECastType(), "头数")); 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(); } diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs index c8cd8d3..242bc37 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStoreAnalyse_/CarcassStoreAnalyse.cs @@ -41,6 +41,16 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStoreAnalyse_ } } + int Type + { + get + { + if (string.IsNullOrEmpty(Request.QueryString["Type"])) + return 0; + return int.Parse(Request.QueryString["Type"]); + } + } + DFBrowseGrid mBrowseGrid; protected override void InitForm(HtmlForm form) { @@ -86,6 +96,14 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStoreAnalyse_ all.Style.Add("background-color", "#3CC24C"); all.Style.Add("color", "#FFFFFF"); } + + var type = hp.EAdd(new HyperLink()); + type.Text = Type == 0 ? "明细" : "汇总"; + type.Style.Add("margin-right", "10px"); + type.Style.Add("font-size", "15px"); + type.NavigateUrl = AspUtil.UpdateUrlParam(url, "Type", (Type == 0 ? 1 : 0).ToString()); + type.Style.Add("background-color", "#3CC24C"); + type.Style.Add("color", "#FFFFFF"); } List> GetBatchNameIDs() @@ -137,11 +155,39 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStoreAnalyse_ mBrowseGrid.DataBind(); } + void SummaryQuery() + { + var main = new JoinAlias(typeof(CarcassFullInfo)); + var batch = new JoinAlias(typeof(ProductBatch)); + var inGoods = new JoinAlias("iGoods", typeof(Goods)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID")); + query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name"), "存货名称")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Value(1)).ECastType(), "头数")); + query.Columns.Add(DQSelectColumn.Sum("InStoreWeight", "重量")); + query.GroupBy.Expressions.Add(DQExpression.Field(inGoods, "Name")); + query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field("PickTime"))); + if (SelectBatch.HasValue) + query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", SelectBatch)); + var args = new LoadArguments(query); + args.SumColumns.Add(1); + args.GroupSumColumns.Add(1); + args.SumColumns.Add(2); + mBrowseGrid.LoadArguments = args; + mBrowseGrid.DataBind(); + } + protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!IsPostBack) - StartQuery(); + { + if (Type == 0) + StartQuery(); + else + SummaryQuery(); + } } } }