using BWP.B3Frameworks;
|
|
using BWP.B3Frameworks.BO.NamedValueTemplate;
|
|
using BWP.B3Sale.BO;
|
|
using BWP.B3Sale.Utils;
|
|
using BWP.Web.Layout;
|
|
using BWP.Web.Utils;
|
|
using BWP.Web.WebControls;
|
|
using Forks.EnterpriseServices.DataForm;
|
|
using Forks.EnterpriseServices.DomainObjects2;
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web.UI.WebControls;
|
|
using TSingSoft.WebControls2;
|
|
using TSingSoft.WebControls2.QBELinks;
|
|
|
|
namespace BWP.Web.Pages.B3YunKen.Reports
|
|
{
|
|
public class LogisticsAnalysisReport : DFBrowseGridReportPage
|
|
{
|
|
|
|
protected override string AccessRoleName
|
|
{
|
|
get
|
|
{
|
|
return "B3_YunKen.报表分析.物流分析表";
|
|
}
|
|
}
|
|
|
|
protected override string Caption
|
|
{
|
|
get { return "物流分析表"; }
|
|
}
|
|
|
|
CheckBoxListWithReverseSelect checkbox;
|
|
private readonly DFInfo mDFInfo = DFInfo.Get(typeof(SaleOutStore));
|
|
|
|
protected override void InitQueryPanel(QueryPanel queryPanel)
|
|
{
|
|
base.InitQueryPanel(queryPanel);
|
|
var panel = queryPanel.CreateTab("显示字段");
|
|
|
|
checkbox = new CheckBoxListWithReverseSelect() { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal };
|
|
|
|
var list = new List<Tuple<string, string>>();
|
|
|
|
list.Add(new Tuple<string, string>("LoadTime", "发货时间"));
|
|
list.Add(new Tuple<string, string>("Customer_Name", "购货客户"));
|
|
list.Add(new Tuple<string, string>("AccountCustomer_Name", "结账客户"));
|
|
list.Add(new Tuple<string, string>("Driver_Name", "司机姓名"));
|
|
list.Add(new Tuple<string, string>("Driver_Telephone", "司机电话"));
|
|
list.Add(new Tuple<string, string>("HandcarNumber", "车牌号"));
|
|
list.Add(new Tuple<string, string>("DriverCard", "司机驾驶证号"));
|
|
list.Add(new Tuple<string, string>("Carrier_Name", "货站名称"));//承运方 Carrier_Name
|
|
list.Add(new Tuple<string, string>("LinkManTel", "货站电话"));//电话
|
|
list.Add(new Tuple<string, string>("CustomerSaleZone_Name", "地区"));//销售地区
|
|
list.Add(new Tuple<string, string>("Car_Name", "车主姓名"));
|
|
list.Add(new Tuple<string, string>("FreightUnitPrice", "运费单价"));
|
|
list.Add(new Tuple<string, string>("AccountingUnit_Name", "会计单位"));
|
|
list.Add(new Tuple<string, string>("TakeGoods_Type", "提货方式"));//配送方式
|
|
list.Add(new Tuple<string, string>("FreightBear", "运费承担方"));
|
|
list.Add(new Tuple<string, string>("FreightPayment", "运费结算方式"));//支付方式
|
|
list.Add(new Tuple<string, string>("承运次数", "承运次数"));
|
|
|
|
var section = mPageLayoutManager.AddSection("显示字段", "显示字段");
|
|
section.ApplyLayout(list, mPageLayoutManager);
|
|
foreach (var item in list)
|
|
{
|
|
section.SetDisplayName(item.Item1, item.Item2);
|
|
checkbox.Items.Add(new ListItem(item.Item2, item.Item1));
|
|
}
|
|
panel.EAdd(checkbox);
|
|
mQueryControls.Add("显示字段", checkbox);
|
|
mQueryControls.EnableHoldLastControlNames.Add("显示字段");
|
|
|
|
}
|
|
|
|
|
|
protected override void AddQueryControls(VLayoutPanel vPanel)
|
|
{
|
|
var layout = new LayoutManager("main", mDFInfo, mQueryContainer);
|
|
|
|
layout.Add("AccountingUnit_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountingUnit_ID"],
|
|
B3FrameworksConsts.DataSources.授权会计单位全部), s => long.Parse(s)), "AccountingUnit_ID"));
|
|
layout["AccountingUnit_ID"].NotAutoAddToContainer = true;
|
|
|
|
layout.Add("Carrier_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Carrier_ID"],
|
|
B3SaleDataSources.授权承运方), s => long.Parse(s)), "Carrier_ID"));
|
|
layout["Carrier_ID"].NotAutoAddToContainer = true;
|
|
|
|
layout.Add("CustomerSaleZone_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["CustomerSaleZone_ID"],
|
|
B3SaleDataSources.授权销售地区), s => long.Parse(s)), "CustomerSaleZone_ID"));
|
|
layout["CustomerSaleZone_ID"].NotAutoAddToContainer = true;
|
|
|
|
layout.Add("Customer_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Customer_ID"],
|
|
B3SaleDataSources.用户配置客户), s => long.Parse(s)), "Customer_ID"));
|
|
layout["Customer_ID"].NotAutoAddToContainer = true;
|
|
|
|
layout.Add("AccountCustomer_ID", mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountCustomer_ID"],
|
|
B3SaleDataSources.结账客户), s => long.Parse(s)), "AccountCustomer_ID"));
|
|
layout["AccountCustomer_ID"].NotAutoAddToContainer = true;
|
|
|
|
|
|
var config = layout.CreateDefaultConfig(2);
|
|
config.Expand = false;
|
|
|
|
config.Add("LoadTime");
|
|
|
|
//config.Add("AccountingUnit_ID");
|
|
|
|
config.Add("Driver_ID");
|
|
config.Add("DriverCard");
|
|
|
|
//config.Add("Carrier_ID");
|
|
//config.Add("Customer_ID");
|
|
//config.Add("CustomerSaleZone_ID");
|
|
//config.Add("AccountCustomer_ID");
|
|
|
|
config.Add("Car_ID");
|
|
config.Add("TakeGoods_Type");
|
|
config.Add("FreightBear");
|
|
config.Add("FreightPayment");
|
|
|
|
layout.Config = config;
|
|
|
|
var section = mPageLayoutManager.AddSection("查询条件", "查询条件");
|
|
section.ApplyLayout(layout, config, mPageLayoutManager, mDFInfo);
|
|
vPanel.Add(layout.CreateLayout(), new VLayoutOption(HorizontalAlign.Center));
|
|
|
|
}
|
|
|
|
|
|
|
|
protected override DQueryDom GetQueryDom()
|
|
{
|
|
var dom = base.GetQueryDom();
|
|
var main = JoinAlias.Create("main");
|
|
|
|
foreach (ListItem item in checkbox.Items)
|
|
{
|
|
if (!item.Selected) { continue; }
|
|
var field = item.Value;
|
|
switch (field)
|
|
{
|
|
|
|
case "LoadTime":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "Customer_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "AccountCustomer_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "Driver_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "Driver_Telephone":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "HandcarNumber":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "Carrier_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "LinkManTel":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "CustomerSaleZone_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "Car_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "FreightUnitPrice":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "AccountingUnit_Name":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "TakeGoods_Type":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "FreightBear":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "FreightPayment":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
|
|
case "承运次数":
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Count(DQExpression.Field(main, "ID")), item.Text));
|
|
break;
|
|
|
|
default:
|
|
dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text));
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field(main, field));
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ(main, "BillState", 单据状态.已审核));
|
|
|
|
return dom;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|