|
|
|
@ -0,0 +1,184 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Web.UI.WebControls; |
|
|
|
using BWP.B3Frameworks; |
|
|
|
using BWP.B3Frameworks.BO; |
|
|
|
using BWP.B3Frameworks.BO.NamedValueTemplate; |
|
|
|
using BWP.B3Sale.BO; |
|
|
|
using BWP.B3UnitedInfos; |
|
|
|
using BWP.Web.Layout; |
|
|
|
using BWP.Web.Utils; |
|
|
|
using BWP.Web.WebControls; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery; |
|
|
|
using Forks.EnterpriseServices.SqlDoms; |
|
|
|
using TSingSoft.WebControls2; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3YunKen.Reports |
|
|
|
{ |
|
|
|
class CustomerStopByTaskReport : DFBrowseGridReportPage<Customer> |
|
|
|
{ |
|
|
|
protected override string Caption |
|
|
|
{ |
|
|
|
get { return "客户停用表"; } |
|
|
|
} |
|
|
|
protected override string AccessRoleName |
|
|
|
{ |
|
|
|
get { return "B3_YunKen.报表.客户停用表"; } |
|
|
|
} |
|
|
|
|
|
|
|
// protected override string QueryOptionsTabName
|
|
|
|
// {
|
|
|
|
// get
|
|
|
|
// {
|
|
|
|
// return "显示字段";
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// ReportDisplayOptionHelper mDisplayHelper = new ReportDisplayOptionHelper();
|
|
|
|
|
|
|
|
protected override void AddQueryControls(VLayoutPanel vPanel) |
|
|
|
{ |
|
|
|
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer); |
|
|
|
|
|
|
|
var config = new AutoLayoutConfig { Cols = 2 }; |
|
|
|
config.Add("ID"); |
|
|
|
config.Add("Code"); |
|
|
|
config.Add("Name"); |
|
|
|
config.Add("Department_ID"); |
|
|
|
config.Add("Employee_ID"); |
|
|
|
|
|
|
|
config.Add("SaleZone_ID"); |
|
|
|
config.Add("CustomerCatalog_ID"); |
|
|
|
config.Add("AccountCustomer_ID"); |
|
|
|
|
|
|
|
layout.Config = config; |
|
|
|
|
|
|
|
vPanel.Add(layout.CreateLayout()); |
|
|
|
} |
|
|
|
|
|
|
|
private CheckBoxListWithReverseSelect _checkbox; |
|
|
|
protected override void InitQueryPanel(QueryPanel queryPanel) |
|
|
|
{ |
|
|
|
base.InitQueryPanel(queryPanel); |
|
|
|
var panel = queryPanel.CreateTab("显示字段"); |
|
|
|
|
|
|
|
_checkbox = new CheckBoxListWithReverseSelect { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal }; |
|
|
|
_checkbox.Items.Add(new ListItem("单号", "ID")); |
|
|
|
_checkbox.Items.Add(new ListItem("客户名称", "Name")); |
|
|
|
_checkbox.Items.Add(new ListItem("结账客户", "AccountCustomer_Name")); |
|
|
|
_checkbox.Items.Add(new ListItem("是否经销商", "IsDealers")); |
|
|
|
_checkbox.Items.Add(new ListItem("经销商", "经销商")); |
|
|
|
_checkbox.Items.Add(new ListItem("联系人", "联系人")); |
|
|
|
_checkbox.Items.Add(new ListItem("移动电话", "移动电话")); |
|
|
|
_checkbox.Items.Add(new ListItem("客户分类", "CustomerCatalog_Name")); |
|
|
|
_checkbox.Items.Add(new ListItem("销售地区", "SaleZone_Name")); |
|
|
|
_checkbox.Items.Add(new ListItem("销售人员", "Employee_Name")); |
|
|
|
_checkbox.Items.Add(new ListItem("信用政策", "PriceStrategy_Name")); |
|
|
|
_checkbox.Items.Add(new ListItem("上次停用时间", "上次停用时间")); |
|
|
|
_checkbox.Items.Add(new ListItem("停用原因", "停用原因")); |
|
|
|
_checkbox.Items.Add(new ListItem("最后一次发货时间", "LastGoodsOutStoreDate")); |
|
|
|
|
|
|
|
|
|
|
|
panel.EAdd(_checkbox); |
|
|
|
mQueryControls.Add("显示字段", _checkbox); |
|
|
|
mQueryControls.EnableHoldLastControlNames.Add("显示字段"); |
|
|
|
} |
|
|
|
private DQueryDom GetLastStopTime(JoinAlias bill) |
|
|
|
{ |
|
|
|
var join=new JoinAlias(typeof(EntityInternalLog)); |
|
|
|
var query=new DQueryDom(join); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(join, "EntityTypeID",DmoTypeIDAttribute.GetID(typeof(Customer)))); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(join, "EntityID", bill,"ID")); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(join, "Operate", "停用")); |
|
|
|
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID",true)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Time", join)); |
|
|
|
query.Range=SelectRange.Top(1); |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
private DQueryDom GetLinkPhone(JoinAlias bill) |
|
|
|
{ |
|
|
|
var link = new JoinAlias("linkphone", typeof(CustomerLinkMan_Detail)); |
|
|
|
var query = new DQueryDom(link); |
|
|
|
query.Range = SelectRange.Top(1); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(link, "Customer_ID", bill, "ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("CellPhone", link)); |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
private DQueryDom GetLinkName(JoinAlias bill) |
|
|
|
{ |
|
|
|
var link=new JoinAlias("linkname", typeof(CustomerLinkMan_Detail)); |
|
|
|
var query=new DQueryDom(link); |
|
|
|
query.Range=SelectRange.Top(1); |
|
|
|
query .Where.Conditions.Add(DQCondition.EQ(link, "Customer_ID", bill,"ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("LinkManName", link)); |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
protected override DQueryDom GetQueryDom() |
|
|
|
{ |
|
|
|
var query = base.GetQueryDom(); |
|
|
|
var bill = query.From.RootSource.Alias; |
|
|
|
|
|
|
|
foreach (ListItem field in _checkbox.Items) |
|
|
|
{ |
|
|
|
if (field.Selected) |
|
|
|
{ |
|
|
|
switch (field.Text) |
|
|
|
{ |
|
|
|
case "单号": |
|
|
|
case "客户名称": |
|
|
|
case "结账客户": |
|
|
|
case "是否经销商": |
|
|
|
case "客户分类": |
|
|
|
case "销售人员": |
|
|
|
case "销售地区": |
|
|
|
case "信用政策": |
|
|
|
case "最后一次发货时间": |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(field.Value), field.Text)); |
|
|
|
// query.GroupBy.Expressions.Add(DQExpression.Field( "Zone_Name"));
|
|
|
|
break; |
|
|
|
case "停用原因": |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value("3月内未发货,自动停用"),field.Text)); |
|
|
|
break; |
|
|
|
case "联系人": |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.SubQuery(GetLinkName(bill)), field.Text)); |
|
|
|
break; |
|
|
|
case "移动电话": |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.SubQuery(GetLinkPhone(bill)), field.Text)); |
|
|
|
break; |
|
|
|
|
|
|
|
case "上次停用时间": |
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.SubQuery(GetLastStopTime(bill)), field.Text)); |
|
|
|
break; |
|
|
|
case "经销商": |
|
|
|
var jxs = DQExpression.LogicCase(DQCondition.EQ("IsDealers", DQExpression.Value(true)),DQExpression.Field("Name"),DQExpression.SubQuery(GetJingXiaoShang(bill))); |
|
|
|
query.Columns.Add(DQSelectColumn.Create(jxs, field.Text)); |
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("Stopped", true)); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("StopedByCustomerTask", true)); |
|
|
|
|
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
private DQueryDom GetJingXiaoShang(JoinAlias bill) |
|
|
|
{ |
|
|
|
var dbill=new JoinAlias("dbill", typeof(Dealer)); |
|
|
|
var ddetail=new JoinAlias("ddetail", typeof(Dealer_Detail)); |
|
|
|
var query=new DQueryDom(dbill); |
|
|
|
query.From.AddJoin(JoinType.Left,new DQDmoSource(ddetail), DQCondition.EQ(dbill,"ID",ddetail, "Dealer_ID")); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(bill,"ID",ddetail, "Customer_ID")); |
|
|
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("Customer_Name",dbill)); |
|
|
|
|
|
|
|
return query; |
|
|
|
} |
|
|
|
} |
|
|
|
} |