From e64925ba4a78c1b8abcd966afc2b7e50ca119414 Mon Sep 17 00:00:00 2001 From: duanluohua Date: Fri, 2 Mar 2018 14:20:24 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=8D=95No.138669=20=20?= =?UTF-8?q?=E3=80=90=E5=AE=A2=E6=88=B7=E9=AA=8C=E6=94=B6=E5=88=86=E6=9E=90?= =?UTF-8?q?=E3=80=91B3Sale.0057=E3=80=90=E5=8E=BB=E8=BF=90=E8=B4=B9?= =?UTF-8?q?=E5=87=80=E4=BB=B7=E8=A1=A8=E3=80=91B3=5FYunKen.0011=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E7=BA=A7=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reports/ToFreightNetPriceReport2.cs | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) diff --git a/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs b/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs index aac7b10..483b235 100644 --- a/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs +++ b/BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs @@ -24,6 +24,7 @@ using BWP.B3Frameworks.BO.MoneyTemplate; using BWP.B3Frameworks.Utils; using BWP.B3UnitedInfos.BO; using BWP.B3SaleInterface.BO; +using System.Web.UI; namespace BWP.Web.Pages.B3YunKen.Reports { @@ -118,11 +119,127 @@ namespace BWP.Web.Pages.B3YunKen.Reports } panel.EAdd(checkbox); + AddOtherQueryOptionControls(panel); mQueryControls.Add("显示字段", checkbox); mQueryControls.EnableHoldLastControlNames.Add("显示字段"); } + CheckBox showGoodsPropertyCatalogLevel, showCumPropertyCatalogLevel, showAddressPropertyCatalogLevel; + DropDownList goodsPropertyCatalogLevel, cumPropertyCatalogLevel, addressPropertyCatalogLevel; + + bool TryGetGoodsPropertyCatalogLevel(out int level, string type) + { + level = default(int); + if (type == "goods") + { + if (showGoodsPropertyCatalogLevel == null || goodsPropertyCatalogLevel == null + || !showGoodsPropertyCatalogLevel.Checked || string.IsNullOrEmpty(goodsPropertyCatalogLevel.SelectedValue) + ) + { + return false; + } + level = int.Parse(goodsPropertyCatalogLevel.SelectedValue); + } + else if (type == "cum") + { + if (showCumPropertyCatalogLevel == null || cumPropertyCatalogLevel == null || !showCumPropertyCatalogLevel.Checked || string.IsNullOrEmpty(cumPropertyCatalogLevel.SelectedValue)) + { + return false; + } + level = int.Parse(cumPropertyCatalogLevel.SelectedValue); + } + else + { + if (showAddressPropertyCatalogLevel == null || addressPropertyCatalogLevel == null || !showAddressPropertyCatalogLevel.Checked || string.IsNullOrEmpty(addressPropertyCatalogLevel.SelectedValue)) + { + return false; + } + level = int.Parse(addressPropertyCatalogLevel.SelectedValue); + } + return true; + } + + private void AddOtherQueryOptionControls(Panel panel) + { + var maxDepth = TreeUtil.GetMaxDepth(); + if (maxDepth == null) + { + return; + } + var maxDepth1 = TreeUtil.GetMaxDepth(); + if (maxDepth1 == null) + { + return; + } + var maxDepth2 = TreeUtil.GetMaxDepth(); + if (maxDepth2 == null) + { + return; + } + + var placeHolder = new PlaceHolder(); + placeHolder.Controls.Add(new SimpleLabel("
其他显示字段")); + placeHolder.EAddLiteral("
"); + #region 属性分类等级 + + showGoodsPropertyCatalogLevel = new CheckBox() { Text = "属性分类等级" }; + placeHolder.Controls.Add(showGoodsPropertyCatalogLevel); + mQueryControls.Add("ShowGoodsPropertyCatalogLevel", showGoodsPropertyCatalogLevel); + + placeHolder.Controls.Add(new LiteralControl(" 显示到")); + + goodsPropertyCatalogLevel = new DropDownList(); + for (var i = 1; i <= maxDepth.Value; i++) + { + goodsPropertyCatalogLevel.Items.Add(new ListItem(i.ToString() + "级", i.ToString())); + } + mQueryControls.Add("GoodsPropertyCatalogLevel", goodsPropertyCatalogLevel); + goodsPropertyCatalogLevel.SelectedValue = string.Empty; + + placeHolder.Controls.Add(goodsPropertyCatalogLevel); + placeHolder.EAddLiteral("
"); + #endregion + #region 客户分类等级 + + showCumPropertyCatalogLevel = new CheckBox() { Text = "客户分类等级" }; + placeHolder.Controls.Add(showCumPropertyCatalogLevel); + mQueryControls.Add("ShowCumPropertyCatalogLevel", showCumPropertyCatalogLevel); + + placeHolder.Controls.Add(new LiteralControl(" 显示到")); + + cumPropertyCatalogLevel = new DropDownList(); + for (var i = 1; i <= maxDepth1.Value; i++) + { + cumPropertyCatalogLevel.Items.Add(new ListItem(i.ToString() + "级", i.ToString())); + } + mQueryControls.Add("CumPropertyCatalogLevel", cumPropertyCatalogLevel); + cumPropertyCatalogLevel.SelectedValue = string.Empty; + + placeHolder.Controls.Add(cumPropertyCatalogLevel); + placeHolder.EAddLiteral("
"); + #endregion + #region 销售地区等级 + + showAddressPropertyCatalogLevel = new CheckBox() { Text = "销售地区等级" }; + placeHolder.Controls.Add(showAddressPropertyCatalogLevel); + mQueryControls.Add("ShowAddressPropertyCatalogLevel", showAddressPropertyCatalogLevel); + + placeHolder.Controls.Add(new LiteralControl(" 显示到")); + + addressPropertyCatalogLevel = new DropDownList(); + for (var i = 1; i <= maxDepth2.Value; i++) + { + addressPropertyCatalogLevel.Items.Add(new ListItem(i.ToString() + "级", i.ToString())); + } + mQueryControls.Add("AddressPropertyCatalogLevel", addressPropertyCatalogLevel); + addressPropertyCatalogLevel.SelectedValue = string.Empty; + + placeHolder.Controls.Add(addressPropertyCatalogLevel); + #endregion + panel.EAdd(placeHolder); + } + protected override void AddQueryControls(VLayoutPanel vPanel) { @@ -434,6 +551,39 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); break; } } + + int selectedGoodsPropertyCatalogLevel; + if (TryGetGoodsPropertyCatalogLevel(out selectedGoodsPropertyCatalogLevel, "goods")) + { + for (var i = 1; i <= selectedGoodsPropertyCatalogLevel; i++) + { + var p = new JoinAlias("_p" + i, typeof(GoodsPropertyCatalog)); + dom.From.AddJoin(JoinType.Left, new DQDmoSource(p), DQCondition.EQ(p, "ID", catalog, "TreeDeep" + i + "ID")); + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(p, "Name"), "存货属性" + i + "级分类")); + dom.GroupBy.Expressions.Add(DQExpression.Field(p, "Name")); + } + } + if (TryGetGoodsPropertyCatalogLevel(out selectedGoodsPropertyCatalogLevel, "cum")) + { + for (var i = 1; i <= selectedGoodsPropertyCatalogLevel; i++) + { + var c = new JoinAlias("_cum" + i, typeof(SaleCustomerCatalog)); + dom.From.AddJoin(JoinType.Left, new DQDmoSource(c), DQCondition.EQ(c, "ID", customerCatalo, "TreeDeep" + i + "ID")); + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(c, "Name"), "客户" + i + "级分类")); + dom.GroupBy.Expressions.Add(DQExpression.Field(c, "Name")); + } + } + if (TryGetGoodsPropertyCatalogLevel(out selectedGoodsPropertyCatalogLevel, "zone")) + { + for (var i = 1; i <= selectedGoodsPropertyCatalogLevel; i++) + { + var z = new JoinAlias("_zone" + i, typeof(SaleZone)); + dom.From.AddJoin(JoinType.Left, new DQDmoSource(z), DQCondition.EQ(z, "ID", salzone, "TreeDeep" + i + "ID")); + dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(z, "Name"), "地区" + i + "级分类")); + dom.GroupBy.Expressions.Add(DQExpression.Field(z, "Name")); + } + } + if (!_goods.IsEmpty) { dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "SaleGoods_ID"), _goods.GetValues().Select(x => DQExpression.Value(x)).ToArray())); }