protected DQueryDom GetQueryDom() { var items = GetAllItems(); main = new JoinAlias(typeof(ProductOutTemp)); var query = new DQueryDom(main); ProductOutTemp.Register(query, dateInput.Date); var frozen = new JoinAlias("tempFrozen", typeof(FrozenOutTemp)); var frozenNum = new JoinAlias("tempFrozenAllNumber", typeof(FrozeTemp)); FrozenOutTemp.Register(query, dateInput.Value); FrozenOutTemp.AddJoin(query, frozen); FrozeTemp.Register(query, dateInput.Value); FrozeTemp.AddJoin(query, frozenNum); var 速冻出库重量Exp = DQExpression.Field(frozenNum, "AllNumber"); var 产出重量Exp = DQExpression.Field(main, "Number"); var 速冻出库袋数Exp = DQExpression.Field(frozenNum, "AllSecondNumber2"); var 产出袋数Exp = DQExpression.Field(main, "SecondNumber2"); foreach (ListItem item in items) { var field = item.Value; if (field.StartsWith("_")) { field = field.Substring(4); } switch (item.Text) { case "会计单位": case "部门": case "经办人": case "产出品名": case "速冻出库品名": case "产出数量": case "产出辅数量": query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text)); query.GroupBy.Expressions.Add(DQExpression.Field(main, field)); break; case "速冻出库数量": query.Columns.Add(DQSelectColumn.Create(速冻出库重量Exp, item.Text)); query.GroupBy.Expressions.Add(速冻出库重量Exp); break; case "速冻出库辅数量": query.Columns.Add(DQSelectColumn.Create(速冻出库袋数Exp, item.Text)); query.GroupBy.Expressions.Add(速冻出库袋数Exp); break; case "包装品名": query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(frozen, field), item.Text)); query.GroupBy.Expressions.Add(DQExpression.Field(frozen, field)); break; case "包装数量": case "包装辅数量": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(frozen, field)), item.Text)); detailSumIndex.Add(query.Columns.Count - 1); break; case "速冻库差异数量": query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(产出重量Exp, 速冻出库重量Exp), item.Text)); //query.GroupBy.Expressions.Add(DQExpression.Subtract(产出重量Exp, 速冻出库重量Exp)); break; case "速冻库差异辅数量II": query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(产出袋数Exp, 速冻出库袋数Exp), item.Text)); //query.GroupBy.Expressions.Add(DQExpression.Subtract(产出袋数Exp, 速冻出库袋数Exp)); break; case "对比值": var 对比值Exp = DQExpression.Divide(速冻出库重量Exp, DQExpression.NullIfZero(产出重量Exp)); query.Columns.Add(DQSelectColumn.Create(对比值Exp, item.Text)); break; } } return(query); }
protected override DQueryDom GetQueryDom() { var main = new JoinAlias(typeof(ProductOutTemp)); var query = new DQueryDom(main); ProductOutTemp.Register(query, dateInput.Date); var frozen = new JoinAlias("tempFrozen", typeof(FrozenOutTemp)); var frozenNum = new JoinAlias("tempFrozenAllNumber", typeof(FrozeTemp)); FrozenOutTemp.Register(query, dateInput.Value); FrozenOutTemp.AddJoin(query, frozen); FrozeTemp.Register(query, dateInput.Value); FrozeTemp.AddJoin(query, frozenNum); var 速冻出库重量Exp = DQExpression.Field(frozenNum, "AllNumber"); var 速冻出库袋数Exp = DQExpression.Field(frozenNum, "AllSecondNumber2"); foreach (ListItem item in _checkbox.Items) { if (item.Selected) { var field = item.Value; if (field.StartsWith("_")) { field = field.Substring(4); } switch (item.Text) { case "会计单位": case "部门": case "经办人": case "产出单品名": case "速冻出库品名": case "产出数量": case "产出辅数量": query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(main, field), item.Text)); query.GroupBy.Expressions.Add(DQExpression.Field(main, field)); break; case "速冻出库数量": query.Columns.Add(DQSelectColumn.Create(速冻出库重量Exp, item.Text)); query.GroupBy.Expressions.Add(速冻出库重量Exp); break; case "速冻出库辅数量": query.Columns.Add(DQSelectColumn.Create(速冻出库袋数Exp, item.Text)); query.GroupBy.Expressions.Add(速冻出库袋数Exp); break; case "包装品名": query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(frozen, field), item.Text)); query.GroupBy.Expressions.Add(DQExpression.Field(frozen, field)); break; case "包装数量": case "包装辅数量": query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(frozen, field)), item.Text)); SumColumnIndexs.Add(query.Columns.Count - 1); break; case "产出单差异(重量)": var 产出重量Exp = DQExpression.Field(main, "Number"); query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(产出重量Exp, 速冻出库重量Exp), item.Text)); query.GroupBy.Expressions.Add(DQExpression.Subtract(产出重量Exp, 速冻出库重量Exp)); break; case "产出单差异(袋数)": var 产出袋数Exp = DQExpression.Field(main, "SecondNumber2"); query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(产出袋数Exp, 速冻出库袋数Exp), item.Text)); query.GroupBy.Expressions.Add(DQExpression.Subtract(产出袋数Exp, 速冻出库袋数Exp)); break; } } } if (!string.IsNullOrEmpty(auuInput.Value)) { query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(main, "AccountingUnit_Name"), auuInput.GetValues().Select(x => DQExpression.Value(x)).ToArray())); } if (!string.IsNullOrEmpty(departInput.Value)) { query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(main, "Department_Name"), departInput.GetValues().Select(x => DQExpression.Value(x)).ToArray())); } if (!string.IsNullOrEmpty(goodInput.Value)) { query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(main, "Goods_ID"), goodInput.GetValues().Select(x => DQExpression.Value(x)).ToArray())); } return(query); }