Browse Source

Merge branch 'master' of bwpgit:BWPB3/B3YunKen

# Conflicts:
#	BWP.B3_YunKen.Web/PluginClass.cs
master
wushukun 8 years ago
parent
commit
080af66fdc
5 changed files with 198 additions and 3 deletions
  1. +6
    -0
      BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj
  2. +171
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/DynamicPriceReport.cs
  3. +17
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/DynamicPriceReport.xml
  4. +2
    -3
      BWP.B3_YunKen.Web/PluginClass.cs
  5. +2
    -0
      WebFolder/Config/Plugins/B3_YunKen.Plugin

+ 6
- 0
BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj View File

@ -134,6 +134,9 @@
<Compile Include="Pages\B3YunKen\Reports\CustomerStopByTaskReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\Reports\DynamicPriceReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\Reports\LogisticsAnalysisReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@ -219,6 +222,9 @@
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\Bill\PriceBill_DetailAdjust.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\Reports\DynamicPriceReport.xml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.


+ 171
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/DynamicPriceReport.cs View File

@ -0,0 +1,171 @@
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO.NamedValueTemplate;
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 Forks.EnterpriseServices.SqlDoms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
using BWP.B3Butchery.BO;
using BWP.B3ProduceUnitedInfos;
using BWP.B3UnitedInfos;
using BWP.B3UnitedInfos.BO;
using BWP.B3Sale.Utils;
using BWP.B3Sale.BO;
using BWP.B3Frameworks.BO;
namespace BWP.Web.Pages.B3YunKen.Reports
{
class DynamicPriceReport : DFBrowseGridReportPage<ProduceFinish>
{
protected override string Caption
{
get { return "变价关系表"; }
}
protected override string QueryOptionsTabName
{
get
{
return "显示字段";
}
}
protected override string AccessRoleName
{
get { return "B3_YunKen.报表分析.变价关系表"; }
}
readonly DFInfo _detailInfo = DFInfo.Get(typeof(ProduceFinish_Detail));
readonly Dictionary<string, DFInfo> _fileInfo = new Dictionary<string, DFInfo>();
readonly List<string> _sumCol = new List<string>();
protected override void AddQueryControls(VLayoutPanel vPanel)
{
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer);
//layout.Add("ID", mQueryContainer.Add(new DFTextBox(mDFInfo.Fields["ID"]), "ID"));
//layout["ID"].NotAutoAddToContainer = true;
layout.Add("AccountingUnit_ID", new SimpleLabel("会计单位"), QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountingUnit_ID"], mQueryContainer, "AccountingUnit_ID", B3FrameworksConsts.DataSources.));
layout["AccountingUnit_ID"].NotAutoAddToContainer = true;
layout.Add("StandardGoods_ID", new SimpleLabel("标准件"), QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "StandardGoods_ID", B3SaleDataSources.));
layout["StandardGoods_ID"].NotAutoAddToContainer = true;
//layout.Add("GoodsProperty_ID", new SimpleLabel("存货属性"), QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "GoodsProperty_ID", B3UnitedInfosConsts.DataSources.存货属性全部));
//layout["GoodsProperty_ID"].NotAutoAddToContainer = true;
//layout.Add("BrandItem_ID", new SimpleLabel("品牌项"), QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "BrandItem_ID", B3UnitedInfosConsts.DataSources.品牌项));
//layout["BrandItem_ID"].NotAutoAddToContainer = true;
layout.Add("ProductLine_ID", new SimpleLabel("产品线"), QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "ProductLine_ID", B3UnitedInfosConsts.DataSources.线));
layout["ProductLine_ID"].NotAutoAddToContainer = true;
layout.Add("Goods_ID", new SimpleLabel("非标准件"), QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], mQueryContainer, "Goods_ID", B3UnitedInfosConsts.DataSources.));
layout["Goods_ID"].NotAutoAddToContainer = true;
//layout.Add("Date", new SimpleLabel("生产日期"), QueryCreator.TimeRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate"));
//layout["Date"].NotAutoAddToContainer = true;
//var state = mQueryContainer.Add(B3ButcheryCustomInputCreator.一般单据状态(mDFInfo.Fields["BillState"], true, false, true, true), "BillState");
//((ChoiceBox)state).Value = 单据状态.已审核.Value.ToString() + "|";
//state.DisplayValue = "已审核;";
//state.EnableInputArgument = true;
//layout.Add("BillState", state);
//layout["BillState"].NotAutoAddToContainer = true;
var config = new AutoLayoutConfig { Cols = 2 };
config.Add("AccountingUnit_ID");
//config.Add("GoodsProperty_ID");
//config.Add("BrandItem_ID");
config.Add("ProductLine_ID");
config.Add("StandardGoods_ID");
config.Add("Goods_ID");
//config.Add("Date");
//config.Add("BillState");
layout.Config = config;
vPanel.Add(layout.CreateLayout());
}
ReportDisplayOptionHelper mDisplayHelper = new ReportDisplayOptionHelper();
protected override void AddQueryOptions(VLayoutPanel vPanel)
{
mDisplayHelper.AddOptionItem("会计单位", "accountingUnit", "Name", false);
//mDisplayHelper.AddOptionItem("部门", "bill", "Department_Name", false);
//mDisplayHelper.AddOptionItem("经办人", "bill", "Employee_Name", false);
//mDisplayHelper.AddOptionItem("客户", "bill", "Customer_Name", false);
mDisplayHelper.AddOptionItem("存货属性", "convert", "GoodsProperty_Name", false);
//mDisplayHelper.AddOptionItem("品牌项", "detail", "BrandItem_Name", false);
mDisplayHelper.AddOptionItem("产品线", "goods", "ProductLine_Name", false);
mDisplayHelper.AddOptionItem("存货编号", "convert", "Goods_Code", false);
mDisplayHelper.AddOptionItem("存货名称", "convert", "Goods_Name", false);
mDisplayHelper.AddOptionItem("主单位", "convert", "Goods_MainUnit", false);
mDisplayHelper.AddOptionItem("单价", () => {
return DQExpression.Add(DQExpression.Multiply(DQExpression.Field(JoinAlias.Create("detail"), "Price"), DQExpression.IfNull(DQExpression.Field(JoinAlias.Create("convert"), "Multiplier"), DQExpression.Value(1))), DQExpression.IfNull(DQExpression.Field(JoinAlias.Create("convert"), "Diff"), DQExpression.Value(0)));
}, true);
mDisplayHelper.AddOptionItem("标准件", "detail", "Goods_Name", false);
mDisplayHelper.AddOptionItem("标准单价", "detail", "Price", false);
AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames());
base.AddQueryOptions(vPanel);
}
private DQueryDom GetMaxPriceBillID()
{
var detail = new JoinAlias(typeof(PriceBill_AccountingUnitDetail));
var query = new DQueryDom(new JoinAlias(typeof(PriceBill)));
query.From.AddJoin(JoinType.Left,new DQDmoSource(detail),DQCondition.EQ(detail,"PriceBill_ID",query.From.RootSource.Alias,"ID"));
query.Columns.Add(DQSelectColumn.Field("AccountingUnit_ID",detail));
query.Columns.Add(DQSelectColumn.Max(query.From.RootSource.Alias,"ID"));
query.Where.Conditions.Add(DQCondition.EQ("BillState",.));
query.GroupBy.Expressions.Add(DQExpression.Field(detail,"AccountingUnit_ID"));
return query;
}
class PriceBillID
{
public long? AccountingUnit_ID { get; set; }
public long ID { get; set; }
}
protected override DQueryDom GetQueryDom()
{
var dom = base.GetQueryDom();
var bill = dom.From.RootSource.Alias;
mDisplayHelper.AddAlias("bill", JoinAlias.Create("bill"));
var detail = new JoinAlias("detail", typeof(PriceBill_Detail));
var convert = new JoinAlias("convert", typeof(StandardConvert));
var goods = new JoinAlias("goods", typeof(SaleGoods));
var priceBillID = new JoinAlias("priceBillID", typeof(PriceBillID));
var accountingUnit = new JoinAlias("accountingUnit", typeof(AccountingUnit));
mDisplayHelper.AddAlias("detail", JoinAlias.Create("detail"));
mDisplayHelper.AddAlias("convert", JoinAlias.Create("convert"));
mDisplayHelper.AddAlias("goods", JoinAlias.Create("goods"));
mDisplayHelper.AddAlias("accountingUnit", JoinAlias.Create("accountingUnit"));
dom.RegisterQueryTable(typeof(PriceBillID), new string[] { "AccountingUnit_ID","ID" }, GetMaxPriceBillID());
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(priceBillID), DQCondition.EQ(bill, "ID", priceBillID, "ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(accountingUnit), DQCondition.EQ(priceBillID, "AccountingUnit_ID", accountingUnit, "ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(bill, "ID", detail, "PriceBill_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(convert), DQCondition.EQ(detail, "SaleGoods_ID", convert, "StandardGoods_ID"));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(convert, "Goods_ID", goods, "ID"));
var goodsChb = mQueryContainer.GetControl<DFChoiceBox>("Goods_ID");
var standChb = mQueryContainer.GetControl<DFChoiceBox>("StandardGoods_ID");
var lineChb = mQueryContainer.GetControl<DFChoiceBox>("ProductLine_ID");
if (!standChb.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "SaleGoods_ID"), standChb.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
if (!goodsChb.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(convert, "Goods_ID"), goodsChb.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
if (!lineChb.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(goods, "ProductLine_ID"), lineChb.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
dom.Where.Conditions.Add(DQCondition.EQ(goods, "IsStandard",true));
dom.GroupBy.Expressions.Add(DQExpression.Field(convert, "Multiplier"));
dom.GroupBy.Expressions.Add(DQExpression.Field(convert, "Diff"));
mDisplayHelper.AddSelectColumns(dom, (name) => OptionIsSelected("选项", name), SumColumnIndexs);
return dom;
}
}
}

+ 17
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/DynamicPriceReport.xml View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<DmoClass class="BWP.B3Sale.BO.PriceBill, B3Sale" alias="bill"/>
</From>
<Where>
<And>
<QBEIn>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</QBEIn>
</And>
</Where>
</Select>

+ 2
- 3
BWP.B3_YunKen.Web/PluginClass.cs View File

@ -31,9 +31,8 @@ namespace BWP.B3_YunKen.Web
GlobalFlags.On(B3SaleConsts.Flags.IsWrappageDisplayNo);
GlobalFlags.On(B3SaleConsts.Flags.GatheringEditGatheringTime);
GlobalFlags.On(B3SaleConsts.Flags.QueryGoodsIsStandard);
GlobalFlags.On(B3SaleConsts.Flags.IsYunKen);
WpfPageFactory.RegisterPageOverlay(typeof(OrderEdit).FullName, typeof(OrderEdit_Ext).FullName);
GlobalFlags.On(B3SaleConsts.Flags.PriceBillOnlySetStandard);
GlobalFlags.On(B3SaleConsts.Flags.IsYunKen); WpfPageFactory.RegisterPageOverlay(typeof(OrderEdit).FullName, typeof(OrderEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(SaleForecastEdit).FullName, typeof(SaleForecastEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(ProductNoticeEdit).FullName, typeof(ProductNoticeEdit_Ext).FullName);


+ 2
- 0
WebFolder/Config/Plugins/B3_YunKen.Plugin View File

@ -41,6 +41,7 @@
<Function index="0" name="物流分析表" />
<Function index="1" name="完工与入库对比" />
<Function index="2" name="去运费净价表" />
<Function index="3" name="变价关系表" />
</FunctionGroup>
</Security>
@ -54,6 +55,7 @@
<Menu id="0007" name="/B3耘垦模块/报表分析/完工与入库对比" roles="B3_YunKen.报表分析.完工与入库对比" url="B3YunKen/Reports/ProduceFinishDiffReport.aspx"/>
<Menu id="0008" name="/B3耘垦模块/报表分析/去运费净价表" roles="B3_YunKen.报表分析.去运费净价表" url="B3YunKen/Reports/ToFreightNetPriceReport.aspx"/>
<Menu id="0009" name="/B3耘垦模块/定价调整" roles="B3_YunKen.定价调整.访问" url="B3YunKen/Bill/PriceBill_DetailAdjust.aspx"/>
<Menu id="0010" name="/B3耘垦模块/报表分析/变价关系表" roles="B3_YunKen.报表分析.变价关系表" url="B3YunKen/Reports/DynamicPriceReport.aspx"/>
</Menus>
</Plugin>

Loading…
Cancel
Save