| @ -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(); | |||
| } | |||
| } | |||
| } | |||