Browse Source

需求单No.137524

master
wugang 8 years ago
parent
commit
187a571a5e
5 changed files with 254 additions and 2 deletions
  1. +7
    -0
      BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj
  2. +1
    -2
      BWP.B3_YunKen.Web/Pages/B3YunKen/Dialogs/ProductionCompletionDialog.cs
  3. +204
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ProduceFinishDiffReport.cs
  4. +40
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ProduceFinishDiffReport.xml
  5. +2
    -0
      WebFolder/Config/Plugins/B3_YunKen.Plugin

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

@ -127,6 +127,9 @@
<Compile Include="Pages\B3YunKen\Reports\LogisticsAnalysisReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\Reports\ProduceFinishDiffReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\SaleForecastUpdateList_\SaleForecastUpdateEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@ -185,6 +188,10 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="Pages\B3YunKen\Dialogs\ProductionCompletionDialog.xml" />
<EmbeddedResource Include="Pages\B3YunKen\Reports\ProduceFinishDiffReport.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.


+ 1
- 2
BWP.B3_YunKen.Web/Pages/B3YunKen/Dialogs/ProductionCompletionDialog.cs View File

@ -51,7 +51,7 @@ namespace BWP.Web.Pages.B3YunKen.Dialogs
protected override void SetResultFromDFDataRow(ProductInStore_Detail dmo, DFDataRow row)
{
dmo.ID = (long)row["ID"];
dmo.ProduceFinish_Detail_ID = (long)row["ID"];
dmo.Goods_ID = (long)row["Goods_ID"];
dmo.Goods_Name = (string)row["Goods_Name"];
dmo.Goods_Spec = (string)row["Goods_Spec"];
@ -87,7 +87,6 @@ namespace BWP.Web.Pages.B3YunKen.Dialogs
dom.Columns.Add(DQSelectColumn.Field("Number",detail));
dom.Columns.Add(DQSelectColumn.Field("Price",detail));
dom.Columns.Add(DQSelectColumn.Field("Money",detail));
return dom;
}
}


+ 204
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ProduceFinishDiffReport.cs View File

@ -0,0 +1,204 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
using BWP.B3Butchery.BO;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Frameworks.Utils;
using BWP.B3ProduceUnitedInfos;
using BWP.B3Sale.BO;
using BWP.B3Sale.Utils;
using BWP.B3UnitedInfos;
using BWP.B3UnitedInfos.BO;
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 Forks.Utils;
using TSingSoft.WebControls2;
using TSingSoft.WebControls2.QBELinks;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3YunKen.Reports
{
class ProduceFinishDiffReport : DFBrowseGridReportPage<ProduceFinish>
{
protected override string AccessRoleName {
get { return "B3_YunKen.报表分析.完工与入库对比"; }
}
protected override string Caption {
get { return "完工与入库对比"; }
}
readonly B3SaleReportDisplayOptionHelper _displayOptionHelper = new B3SaleReportDisplayOptionHelper();
readonly bool _useBrandItem = GlobalFlags.get(B3UnitedInfosConsts.GlobalFlags.);
protected override string QueryOptionsTabName {
get {
return "显示选项";
}
}
private ChoiceBox _goods, _brandItem, _productLine, _goodsProperty, _goodsPropertyCatalog;
protected override DQueryDom GetQueryDom() {
var dom = base.GetQueryDom();
dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));
var bill = JoinAlias.Create("bill");
_displayOptionHelper.AddAlias("bill", bill);
var detail = new JoinAlias("detail", typeof(ProduceFinish_Detail));
_displayOptionHelper.AddAlias("detail", detail);
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(detail),
DQCondition.EQ(bill, "ID", detail, "ProduceFinish_ID"));
var inDetail = new JoinAlias("inDetail", typeof(ProductInStore_Detail));
_displayOptionHelper.AddAlias("inDetail", inDetail);
dom.From.AddJoin(JoinType.Inner, new DQDmoSource(inDetail), DQCondition.EQ(inDetail, "ProduceFinish_Detail_ID", detail, "ID"));
//var deparetment1 = dom.EJoin<Department>(aliasName: "department1");
//TreeUtil.AddTreeCondition<Department>(dom, mQueryContainer, "Department_ID", deparetment1);
var goods1 = new JoinAlias("goods", typeof(Goods));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goods1),
DQCondition.EQ(goods1, "ID", detail, "Goods_ID"));
var goodsProperty1 = new JoinAlias("goodsProperty", typeof(GoodsProperty));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsProperty1),
DQCondition.EQ(goodsProperty1, "ID", goods1, "GoodsProperty_ID"));
var goodsPropertyCatalog1 = new JoinAlias("goodsPropertyCatalog", typeof(GoodsPropertyCatalog));
dom.From.AddJoin(JoinType.Left, new DQDmoSource(goodsPropertyCatalog1),
DQCondition.EQ(goodsPropertyCatalog1, "ID", goodsProperty1, "GoodsPropertyCatalog_ID"));
//_displayOptionHelper.AddAlias("departmen1t", deparetment1);
_displayOptionHelper.AddAlias("goods", goods1);
_displayOptionHelper.AddAlias("goodsProperty", goodsProperty1);
_displayOptionHelper.AddAlias("goodsPropertyCatalog", goodsPropertyCatalog1);
//var customer = new JoinAlias(typeof(Customer));
//dom.From.AddJoin(JoinType.Left, new DQDmoSource(customer), DQCondition.EQ(bill, "Customer_ID", customer, "ID"));
//if (!_customerCatalog.IsEmpty) {
// var strs = B3SaleWebUtil.GetDeepByTreeName(_customerCatalog.DisplayValue);
// var conditions = new List<IDQExpression>();
// var values = _customerCatalog.GetValues();
// for (int index = 0; index < values.Length; index++) {
// var value = values[index];
// conditions.Add(DQCondition.EQ(customer, "CustomerCatalog_TreeDeep" + strs[index] + "ID", value));
// }
// dom.Where.Conditions.Add(DQCondition.Or(conditions));
//}
if (!_goodsProperty.IsEmpty) {
dom.Where.Conditions.EFieldInList(DQExpression.Field(detail, "GoodsProperty_ID"), _goodsProperty.GetValues());
}
if (!_goodsPropertyCatalog.IsEmpty) {
var strs = B3SaleWebUtil.GetDeepByTreeName(_goodsPropertyCatalog.DisplayValue);
var conditions = new List<IDQExpression>();
var values = _goodsPropertyCatalog.GetValues();
for (int index = 0; index < values.Length; index++) {
var value = values[index];
conditions.Add(DQCondition.EQ(goodsPropertyCatalog1, "TreeDeep" + strs[index] + "ID", value));
}
dom.Where.Conditions.Add(DQCondition.Or(conditions));
}
_displayOptionHelper.AddSelectColumns(dom, name => OptionIsSelected("显示字段", name), SumColumnIndexs);
if (!_goods.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "Goods_ID"), _goods.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
if (!_brandItem.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(detail, "BrandItem_ID"), _brandItem.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
if (!_productLine.IsEmpty) {
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(goods1, "ProductLine_ID"), _productLine.GetValues().Select(x => DQExpression.Value(x)).ToArray()));
}
dom.Where.Conditions.Add(DQCondition.EQ(bill, "BillState", .));
return dom;
}
protected override void AddQueryOptions(VLayoutPanel vPanel) {
_displayOptionHelper.AddOptionItem("生产单位", "bill", "ProductionUnit_Name");
_displayOptionHelper.AddOptionItem("经办人", "bill", "Employee_Name");
_displayOptionHelper.AddOptionItem("存货分类", "goods", "GoodsPropertyCatalog_Name");
if(_useBrandItem)
_displayOptionHelper.AddOptionItem("品牌项", "detail", "BrandItem_Name");
_displayOptionHelper.AddOptionItem("产品线", "goods", "ProductLine_Name");
_displayOptionHelper.AddOptionItem("存货编码", "goods", "Code");
_displayOptionHelper.AddOptionItem("存货名称", "goods", "Name");
_displayOptionHelper.AddOptionItem("存货规格", "goods", "Spec");
_displayOptionHelper.AddOptionItem("辅单位", "goods", "SecondUnit");
_displayOptionHelper.AddOptionItem("主单位", "goods", "MainUnit");
_displayOptionHelper.AddOptionItem("存货批号", "detail", "GoodsBatch_Name");
_displayOptionHelper.AddOptionItem("辅数量", "detail", "SecondNumber");
_displayOptionHelper.AddOptionItem("主数量", "detail", "Number");
_displayOptionHelper.AddOptionItem("入库辅数量", "inDetail", "SecondNumber");
_displayOptionHelper.AddOptionItem("入库主数量", "inDetail", "Number");
var detail = JoinAlias.Create("detail");
var inDetail = JoinAlias.Create("inDetail");
_displayOptionHelper.AddOptionItem("差异数量", () => {
return DQExpression.Field(detail, "Number").ESubtract(DQExpression.Field(inDetail, "Number"));
}, sum: true);
_displayOptionHelper.AddOptionItem("差异辅数量", () => {
return DQExpression.Field(detail, "SecondNumber").ESubtract(DQExpression.Field(inDetail, "SecondNumber"));
}, sum: true);
var showFieldsSection = mPageLayoutManager.AddSection("显示字段", "显示字段");
var showFields = _displayOptionHelper.GetAllDisplayNames().Select(displayName => new Tuple<string, string>(displayName, displayName)).ToList();
showFieldsSection.ApplyLayout(showFields, mPageLayoutManager);
AddQueryOption("显示字段", showFields.EToList(x => x.Item1), _displayOptionHelper.GetDefaultSelelectedDisplayNames());
base.AddQueryOptions(vPanel);
}
protected override void AddQueryControls(VLayoutPanel vPanel) {
base.AddQueryControls(vPanel);
var layoutManager = new LayoutManager("", mDFInfo, mQueryContainer);
//layoutManager.Add("AccountingUnit_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountingUnit_ID"], mQueryContainer, "AccountingUnit_ID", B3FrameworksConsts.DataSources.授权会计单位全部));
//layoutManager["AccountingUnit_ID"].NotAutoAddToContainer = true;
//layoutManager.Add("Department_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Department_ID"], B3FrameworksConsts.DataSources.授权部门全部));
//layoutManager.Add("Customer_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Customer_ID"], mQueryContainer, "Customer_ID", B3SaleDataSources.客户全部));
//layoutManager["Customer_ID"].NotAutoAddToContainer = true;
//layoutManager.Add("Employee_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Employee_ID"], mQueryContainer, "Employee_ID", B3FrameworksConsts.DataSources.授权员工全部));
//layoutManager["Employee_ID"].NotAutoAddToContainer = true;
layoutManager.Add("ProductionUnit_ID", new SimpleLabel("生产单位"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ProductionUnit_ID"], B3ProduceUnitedInfosDataSources.), s => long.Parse(s)), "ProductionUnit_ID"));
layoutManager["ProductionUnit_ID"].NotAutoAddToContainer = true;
layoutManager.Add("GoodsProperty_ID", new SimpleLabel("存货属性"), _goodsProperty = new ChoiceBox() { DataKind = B3UnitedInfosConsts.DataSources., Width = Unit.Empty, EnableTopItem = true, EnableMultiSelection = true, EnableMultiSelectionViewer = true, EnableInputArgument = true }, false);
layoutManager.Add("GoodsPropertyCatalog_ID", new SimpleLabel("属性分类"), _goodsPropertyCatalog = new ChoiceBox() { DataKind = B3UnitedInfosConsts.DataSources., Width = Unit.Empty, EnableTopItem = true, EnableMultiSelection = true, EnableMultiSelectionViewer = true, EnableInputArgument = true }, false);
if (_useBrandItem) {
layoutManager.Add("BrandItem_ID", new SimpleLabel("品牌项"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_brandItem = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.), s => long.Parse(s)), "BrandItem_ID"));
layoutManager["BrandItem_ID"].NotAutoAddToContainer = true;
}
layoutManager.Add("ProductLine_ID", new SimpleLabel("产品线"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_productLine = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], B3UnitedInfosConsts.DataSources.线), s => long.Parse(s)), "ProductLine_ID"));
layoutManager["ProductLine_ID"].NotAutoAddToContainer = true;
layoutManager.Add("Goods_ID", new SimpleLabel("存货"), mQueryContainer.AddLink(new ChoiceBoxMultiSelectLink(_goods = QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["ID"], B3SaleDataSources.), s => long.Parse(s)), "Goods_ID"));
layoutManager["Goods_ID"].NotAutoAddToContainer = true;
var config = new AutoLayoutConfig { Cols = 4 };
config.Add("Date");
config.Add("ProductionUnit_ID");
config.Add("GoodsProperty_ID");
config.Add("GoodsPropertyCatalog_ID");
if (_useBrandItem)
config.Add("BrandItem_ID");
config.Add("ProductLine_ID");
config.Add("Goods_ID");
layoutManager.Config = config;
vPanel.Add(layoutManager.CreateLayout());
}
}
}

+ 40
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/ProduceFinishDiffReport.xml View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<DmoClass class="BWP.B3Butchery.BO.ProduceFinish, B3Butchery" alias="bill"/>
</From>
<Where>
<And>
<!--<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<EQ>
<Field name="AccountingUnit_ID"/>
<QBE paramName="AccountingUnit_ID"/>
</EQ>
<EQ>
<Field name="Department_ID"/>
<QBE paramName="Department_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID"/>
<QBE paramName="Employee_ID"/>
</EQ>-->
<GreaterThanOrEqual>
<Field name="Date"/>
<QBE paramName="MinDate" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="Date"/>
<QBE paramName="MaxDate"/>
</LessThanOrEqual>
<QBEIn>
<Field name="ProductionUnit_ID"/>
<QBE paramName="ProductionUnit_ID"/>
</QBEIn>
</And>
</Where>
</Select>

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

@ -37,6 +37,7 @@
<FunctionGroup name="报表分析" roleSchemas="employee">
<Function index="0" name="物流分析表" />
<Function index="1" name="完工与入库对比" />
</FunctionGroup>
</Security>
@ -47,6 +48,7 @@
<Menu id="0004" name="/B3耘垦模块/产品包装物设置" roles="B3_YunKen.产品包装物设置.访问" url="B3YunKen/Bill/GoodsPackageSet.aspx" />
<Menu id="0005" name="/B3耘垦模块/生产计划/订单转生产" roles="B3_YunKen.订单转生产.访问" url="B3YunKen/ProductTask_/SaleOrderToProductNoticePage.aspx"/>
<Menu id="0006" name="/B3耘垦模块/报表分析/物流分析表" roles="B3_YunKen.报表分析.物流分析表" url="B3YunKen/Reports/LogisticsAnalysisReport.aspx"/>
<Menu id="0007" name="/B3耘垦模块/报表分析/完工与入库对比" roles="B3_YunKen.报表分析.完工与入库对比" url="B3YunKen/Reports/ProduceFinishDiffReport.aspx"/>
</Menus>
</Plugin>

Loading…
Cancel
Save