|
|
@ -24,6 +24,7 @@ using BWP.B3Frameworks.BO.MoneyTemplate; |
|
|
using BWP.B3Frameworks.Utils; |
|
|
using BWP.B3Frameworks.Utils; |
|
|
using BWP.B3UnitedInfos.BO; |
|
|
using BWP.B3UnitedInfos.BO; |
|
|
using BWP.B3SaleInterface.BO; |
|
|
using BWP.B3SaleInterface.BO; |
|
|
|
|
|
using System.Web.UI; |
|
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
{ |
|
|
{ |
|
|
@ -118,11 +119,127 @@ namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
panel.EAdd(checkbox); |
|
|
panel.EAdd(checkbox); |
|
|
|
|
|
AddOtherQueryOptionControls(panel); |
|
|
mQueryControls.Add("显示字段", checkbox); |
|
|
mQueryControls.Add("显示字段", checkbox); |
|
|
mQueryControls.EnableHoldLastControlNames.Add("显示字段"); |
|
|
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) |
|
|
protected override void AddQueryControls(VLayoutPanel vPanel) |
|
|
{ |
|
|
{ |
|
|
@ -434,6 +551,39 @@ B3SaleDataSources.经销商), s => long.Parse(s)), "CustomerDealer_ID")); |
|
|
break; |
|
|
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) { |
|
|
if (!_goods.IsEmpty) { |
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "SaleGoods_ID"), _goods.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "SaleGoods_ID"), _goods.GetValues().Select(x => DQExpression.Value(x)).ToArray())); |
|
|
} |
|
|
} |
|
|
|