You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

104 lines
3.5 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.HtmlControls;
using TSingSoft.WebPluginFramework.Controls;
using TSingSoft.WebPluginFramework.Pages;
using TSingSoft.WebControls2;
using BWP.B3Frameworks.Utils;
using System.Web.UI.WebControls;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using BWP.B3UnitedInfos.BO;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.SqlDoms;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks;
using BWP.Web.WebControls;
namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
{
class StoreDetailPage : ServerPage
{
long? ProductAvgWeightSet_ID
{
get
{
var str = Request.QueryString["ID"];
if (string.IsNullOrEmpty(str))
return null;
return long.Parse(str);
}
}
protected override void InitForm(HtmlForm form)
{
form.EAdd(new PageTitle("库存明细"));
CreateBrowseGrid(form.EAdd(new TitlePanel("库存明细")));
}
DFBrowseGrid mGrid;
private void CreateBrowseGrid(TitlePanel titlePanel)
{
mGrid = titlePanel.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100), EnableRowsGroup = true });
mGrid.Columns.Add(new DFBrowseGridAutoColumn());
}
List<int> SumColumnIndex
{
get
{
if (ViewState["sc"] == null)
ViewState["sc"] = new List<int>();
return (List<int>)ViewState["sc"];
}
}
DQueryDom GetQueryDom()
{
var main = new JoinAlias(typeof(StoreDetail));
var store = new JoinAlias(typeof(Store));
var temp = new JoinAlias(typeof(ProductAvgWeightSetTemp));
var query = new DQueryDom(main);
ProductAvgWeightSetTemp.Register(query);
query.From.AddJoin(JoinType.Left, new DQDmoSource(store), DQCondition.EQ(main, "Store_ID", store, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(main, "Goods_ID", temp, "Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name", main));
query.Columns.Add(DQSelectColumn.Field("Goods_Code", main));
query.Columns.Add(DQSelectColumn.Sum(main, "Number"));
SumColumnIndex.Add(query.Columns.Count - 1);
query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit", main));
query.Columns.Add(DQSelectColumn.Sum(main, "SecondNumber"));
SumColumnIndex.Add(query.Columns.Count - 1);
query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit", main));
query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_Name"));
query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_Code"));
query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_MainUnit"));
query.GroupBy.Expressions.Add(DQExpression.Field(main, "Goods_SecondUnit"));
query.Where.Conditions.Add(DQCondition.EQ(store, "Domain_ID", DomainContext.Current.ID));
if (ProductAvgWeightSet_ID.HasValue)
query.Where.Conditions.Add(DQCondition.EQ(temp, "ProductAvgWeightSet_ID", ProductAvgWeightSet_ID));
else
query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(temp, "ProductAvgWeightSet_ID")));
return query;
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
{
var args = new LoadArguments(GetQueryDom());
foreach (var idx in SumColumnIndex)
args.SumColumns.Add(idx);
mGrid.LoadArguments = args;
mGrid.DataBind();
}
}
}
}