From 39d8f41c876401a8c5036b2c796b16df7aa14667 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Mon, 10 Sep 2018 20:04:50 +0800 Subject: [PATCH] addExcelExport --- .../Overlays/SaleOutStoreBalance.cs | 53 ++++++++++++++++--- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/SaleOutStoreBalance.cs b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/SaleOutStoreBalance.cs index ae7c495..5b8f1ba 100644 --- a/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/SaleOutStoreBalance.cs +++ b/B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/SaleOutStoreBalance.cs @@ -28,6 +28,9 @@ using System.Web; using Newtonsoft.Json; using Forks.EnterpriseServices.BusinessInterfaces; using BWP.B3Sale.BL; +using TSingSoft.WebControls2.DFGrids; +using TSingSoft.WebPluginFramework.Controls; +using TSingSoft.WebPluginFramework.Exports; namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays { @@ -108,7 +111,9 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays var config = manager.CreateDefaultConfig(6); config.Expand = false; panel.Add(manager.CreateLayout(), new VLayoutOption(HorizontalAlign.Left)); - panel.Add(new TSButton("查询缺货", delegate { StartQuery(); }), new VLayoutOption(HorizontalAlign.Left)); + var hPanel = panel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left)); + hPanel.Add(new TSButton("查询缺货", delegate { StartQuery(false); })); + hPanel.Add(new TSButton("查询余货", delegate { StartQuery(true); })); } string dateStr @@ -149,6 +154,34 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays panel2.Visible = !byLine; avgAdjust.Visible = byLine; }; + var hPanel=titlePanel.EAdd(new HLayoutPanel()); + AddExcelExportPanel(hPanel, _browseGrid, string.Format("均衡计划导出{0:yyyyMMdd}", DateTime.Today)); + } + + static void AddExcelExportPanel(HLayoutPanel toolbar, DFBrowseGrid mBrowseGrid, string title) + { + var exporter = new Exporter(); + toolbar.Add(new TSButton("导出到Excel", delegate + { + var lastQuery = mBrowseGrid.LastQuery; + if (lastQuery == null) + throw new Exception("请先进行查询"); + var dom = new LoadArguments((DQueryDom)lastQuery.DQuery.Clone()); + foreach (var colIndex in lastQuery.SumColumns) + dom.SumColumns.Add(colIndex); + foreach (var colIndex in lastQuery.GroupSumColumns) + dom.GroupSumColumns.Add(colIndex); + dom.DQuery.Range = SelectRange.All; + string fileName = title + ".xlsx"; + exporter.Export(new QueryResultExcelExporter(fileName, GetQueryResult(dom))); + })); + toolbar.Add(exporter); + } + + private static QueryResult GetQueryResult(LoadArguments arg) + { + var data = new DFDataTableEditor().Load(arg); + return new QueryResult(data.TotalCount, data.Data.Rows, data.Data.Columns, arg.SumColumns.Any() ? data.Data.SumRow : null); } private List CreateDetails(long goodsID, long? storeID) @@ -243,9 +276,9 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays return list; } - private void StartQuery() + private void StartQuery(bool moreThan) { - _browseGrid.Query = GetQueryDom(); + _browseGrid.Query = GetQueryDom(moreThan); _browseGrid.DataBind(); _browseGrid.CurrentPageIndex = 0; if (details.Any()) @@ -262,7 +295,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays } } - private DQueryDom GetQueryDom() + private DQueryDom GetQueryDom(bool moreThan) { var temp = new JoinAlias(typeof(SaleOutStoreTemp)); var forecast = new JoinAlias(typeof(ForecastTemp)); @@ -287,7 +320,11 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays query.Columns.Add(DQSelectColumn.Field("Number")); query.Columns.Add(DQSelectColumn.Field("ProductNumber", forecast, "预估产量")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.Field("Number"), DQExpression.Field(forecast, "ProductNumber")).ECastType(), "差异数量")); - query.Where.Conditions.Add(DQCondition.GreaterThan(DQExpression.Field("Number"), DQExpression.Field(forecast, "ProductNumber"))); + if (moreThan) + query.Where.Conditions.Add(DQCondition.GreaterThan(DQExpression.Field(forecast, "ProductNumber"), DQExpression.Field("Number"))); + else + query.Where.Conditions.Add(DQCondition.GreaterThan(DQExpression.Field("Number"), DQExpression.Field(forecast, "ProductNumber"))); + return query; } @@ -455,7 +492,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays Adjust(details.Where(x => x.Number != (x.SendNumber ?? 0))); } AspUtil.Alert(this, "更新完毕"); - StartQuery(); + StartQuery(false); } void AvgAdjust() @@ -546,7 +583,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays ", unitNum); Page.ClientScript.RegisterClientScriptBlock(GetType(), "OtherPageNumber", s, false); - string script = @"var defaultGrid=document.all._gird2;"+ @"; + string script = @"var defaultGrid=document.all._gird2;" + @"; function _SumNumber() { var grid = defaultGrid.behind; @@ -603,7 +640,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays ", unitNum11); Page.ClientScript.RegisterClientScriptBlock(GetType(), "OtherPageNumber11", s11, false); - string script11 = @"var defaultGrid11=document.all._gridUp;" + @"; + string script11 = @"var defaultGrid11=document.all._gridUp;" + @"; function _SumNumberUp() { var grid = defaultGrid11.behind;