Browse Source

需求单No.138669 【客户验收分析】B3Sale.0057【去运费净价表】B3_YunKen.0011 增加多级查询

master
duanluohua 7 years ago
parent
commit
e64925ba4a
1 changed files with 150 additions and 0 deletions
  1. +150
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs

+ 150
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ToFreightNetPriceReport2.cs View File

@ -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<GoodsPropertyCatalog>();
if (maxDepth == null)
{
return;
}
var maxDepth1 = TreeUtil.GetMaxDepth<SaleCustomerCatalog>();
if (maxDepth1 == null)
{
return;
}
var maxDepth2 = TreeUtil.GetMaxDepth<SaleZone>();
if (maxDepth2 == null)
{
return;
}
var placeHolder = new PlaceHolder();
placeHolder.Controls.Add(new SimpleLabel("<br/>其他显示字段"));
placeHolder.EAddLiteral("<br/>");
#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("<br/>");
#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("<br/>");
#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()));
}


Loading…
Cancel
Save