| @ -0,0 +1,151 @@ | |||||
| using BWP.B3ClientService; | |||||
| using BWP.B3ClientService.BO; | |||||
| using BWP.B3Frameworks.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.Security; | |||||
| using System.Text; | |||||
| using System.Web.UI.HtmlControls; | |||||
| using System.Web.UI.WebControls; | |||||
| using TSingSoft.WebControls2; | |||||
| using TSingSoft.WebPluginFramework.Controls; | |||||
| using TSingSoft.WebPluginFramework.Pages; | |||||
| using TSingSoft.WebPluginFramework; | |||||
| using System.Web.UI; | |||||
| namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ | |||||
| { | |||||
| class CarcassStateAnalyse : ServerPage | |||||
| { | |||||
| protected override void OnInit(EventArgs e) | |||||
| { | |||||
| if (!User.IsInRole("B3ClientService.报表展示.白条状态分析")) | |||||
| throw new SecurityException(); | |||||
| base.OnInit(e); | |||||
| } | |||||
| DFBrowseGrid mBrowseGrid; | |||||
| protected override void InitForm(HtmlForm form) | |||||
| { | |||||
| form.EAdd(new PageTitle("白条状态看板")); | |||||
| var queryPanel = new Panel(); | |||||
| queryPanel.Style.Add(HtmlTextWriterStyle.BackgroundColor, "white"); | |||||
| queryPanel.CssClass = "QueryPanel PrintInVisible"; | |||||
| form.Controls.Add(queryPanel); | |||||
| AddQueryControl(queryPanel); | |||||
| var mZone = new TitlePanelZone(); | |||||
| form.Controls.Add(mZone); | |||||
| mZone.Add(CreateResultTab()); | |||||
| } | |||||
| ChoiceBox batchSelect; | |||||
| DFCheckBox noCodeBox; | |||||
| DateInput butcherDate; | |||||
| private void AddQueryControl(Panel queryPanel) | |||||
| { | |||||
| var hp = queryPanel.EAdd(new Panel()); | |||||
| hp.Style.Add("float", "right"); | |||||
| hp.EAdd(new SimpleLabel("屠宰日期")); | |||||
| butcherDate = hp.EAdd(new DateInput()); | |||||
| noCodeBox = hp.EAdd(new DFCheckBox() { Text = "查看无码", AutoPostBack = true }); | |||||
| noCodeBox.InputAttributes.Add("style", "width:15px;height:15px;"); | |||||
| hp.EAdd(new SimpleLabel("生产批次")); | |||||
| batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.生产批次) { EnableInputArgument = true, EnableTopItem = true, AutoPostBack = true, Width = Unit.Pixel(180) }); | |||||
| var batch = GetYesterdayBatch(); | |||||
| if (!string.IsNullOrEmpty(batch)) | |||||
| batchSelect.Fill(batch, batch); | |||||
| noCodeBox.CheckedChanged += delegate | |||||
| { | |||||
| StartQuery(); | |||||
| }; | |||||
| batchSelect.SelectedValueChanged += delegate | |||||
| { | |||||
| StartQuery(); | |||||
| }; | |||||
| } | |||||
| string GetYesterdayBatch() | |||||
| { | |||||
| var dom = new DQueryDom(new JoinAlias(typeof(ProductBatch))); | |||||
| dom.Columns.Add(DQSelectColumn.Field("Name")); | |||||
| dom.OrderBy.Expressions.Add(DQOrderByExpression.Create("Date", true)); | |||||
| dom.Where.Conditions.Add(DQCondition.LessThan("Date", DateTime.Today)); | |||||
| dom.Range = SelectRange.Top(1); | |||||
| return dom.EExecuteScalar<string>(); | |||||
| } | |||||
| private TitlePanel CreateResultTab() | |||||
| { | |||||
| var result = new TitlePanel("查询结果"); | |||||
| mBrowseGrid = result.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) }); | |||||
| mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn()); | |||||
| return result; | |||||
| } | |||||
| void StartQuery() | |||||
| { | |||||
| var sumColumns = new List<int>(); | |||||
| var main = new JoinAlias(typeof(CarcassFullInfo)); | |||||
| var livestock = new JoinAlias(typeof(Livestock)); | |||||
| var batch = new JoinAlias(typeof(ProductBatch)); | |||||
| var inGoods = new JoinAlias("iGoods", typeof(Goods)); | |||||
| var outGoods = new JoinAlias("oGoods", typeof(Goods)); | |||||
| var query = new DQueryDom(main); | |||||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID")); | |||||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID")); | |||||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); | |||||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(outGoods), DQCondition.EQ(main, "SaleGoods_ID", outGoods, "ID")); | |||||
| query.Columns.Add(DQSelectColumn.Field("BarCode")); | |||||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value<int>(1), "头数")); | |||||
| sumColumns.Add(query.Columns.Count - 1); | |||||
| var title = "屠宰信息|"; | |||||
| query.Columns.Add(DQSelectColumn.Field("ButcherDate", title + "屠宰日期")); | |||||
| query.Columns.Add(DQSelectColumn.Field("GradeTime", title + "定级时间")); | |||||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(livestock, "Name"), title + "胴体级别")); | |||||
| query.Columns.Add(DQSelectColumn.Field("GradeWeight", title + "胴体重量")); | |||||
| sumColumns.Add(query.Columns.Count - 1); | |||||
| title = "入库信息|"; | |||||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(batch, "Name"), title + "生产批次")); | |||||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name"), title + "入库白条")); | |||||
| query.Columns.Add(DQSelectColumn.Field("InStoreWeight", title + "入库重量")); | |||||
| sumColumns.Add(query.Columns.Count - 1); | |||||
| query.Columns.Add(DQSelectColumn.Field("InStoreTime", title + "入库时间")); | |||||
| title = "领用及销售|"; | |||||
| query.Columns.Add(DQSelectColumn.Field("PickType", title + "类型")); | |||||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outGoods, "Name"), title + "销售存货")); | |||||
| query.Columns.Add(DQSelectColumn.Field("PickWeight", title + "重量")); | |||||
| sumColumns.Add(query.Columns.Count - 1); | |||||
| query.Columns.Add(DQSelectColumn.Field("PickTime", title + "出库时间")); | |||||
| query.Columns.Add(DQSelectColumn.Field("PickGroupID", title + "领用组标识")); | |||||
| if (!batchSelect.IsEmpty) | |||||
| query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))); | |||||
| if (!butcherDate.IsEmpty) | |||||
| query.Where.Conditions.Add(DQCondition.EQ("ButcherDate", butcherDate.Value)); | |||||
| if (noCodeBox.Checked) | |||||
| query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("BarCode")), DQCondition.EQ("BarCode", "''"))); | |||||
| var args = new LoadArguments(query); | |||||
| foreach (var idx in sumColumns) | |||||
| args.SumColumns.Add(idx); | |||||
| mBrowseGrid.LoadArguments = args; | |||||
| mBrowseGrid.DataBind(); | |||||
| } | |||||
| protected override void OnLoad(EventArgs e) | |||||
| { | |||||
| base.OnLoad(e); | |||||
| if (!IsPostBack) | |||||
| StartQuery(); | |||||
| } | |||||
| } | |||||
| } | |||||