/// <summary> /// 產生報表 /// </summary> protected void SearchPrint() { try { //使用服務查詢 var job = new POS_Library.ShopPos.LogisticsAccount(); if (DDL_Type.SelectedValue == "1+") { LRList = job.GetPrintLogisticsForPick(zone, txt_Start.Text + time1, txt_End.Text + time2); if (LRList.Count > 0) { var aa = (from i in LRList orderby i.Account, i.Group select new { 帳號 = i.Account, 種類 = ((POS_Library.Public.Utility.LogisticsType) int.Parse(i.TypeName)).ToString(), 區域 = i.Group, 項目 = i.ProductItem, 件數 = i.ProductQuantity, 分數 = decimal.Round(i.ProductScore, 2, MidpointRounding.AwayFromZero) }).ToList(); if (CB_Sort.Checked) { aa = aa.OrderBy(x => x.區域).ToList(); } gv_logistics.DataSource = aa; var 總分數 = aa.Select(x => x.分數).Sum(); var 總筆數 = aa.Count; lbl_Count.Text = "總筆數:" + 總筆數 + ", 總分數:" + 總分數; } } else { LRList = job.GetPrintLogistics(zone, txt_Start.Text + time1, txt_End.Text + time2); if (LRList.Count > 0) { var aa = (from i in LRList where (DDL_Type.SelectedIndex == 0) ? true : ((DDL_Type.SelectedValue == "3") ? (i.TypeName == DDL_Type.SelectedValue || i.TypeName == "103") : i.TypeName == DDL_Type.SelectedValue) orderby int.Parse(i.TypeName), i.ProductScore descending select new { 帳號 = i.Account, 種類 = ((POS_Library.Public.Utility.LogisticsType) int.Parse(i.TypeName)).ToString(), 項目 = i.ProductItem, 件數 = i.ProductQuantity, 分數 = decimal.Round(i.ProductScore, 2, MidpointRounding.AwayFromZero) }).ToList(); gv_logistics.DataSource = aa; var 總分數 = decimal.Round(aa.Select(x => x.分數).Sum(), 2, MidpointRounding.AwayFromZero); var 總筆數 = aa.Count; lbl_Count.Text = "總筆數:" + 總筆數 + ", 總分數:" + 總分數; } } gv_logistics.DataBind(); } catch (Exception ex) { Response.Write("系統發生錯誤 " + ex.Message); } }
/// <summary> /// 產生報表 /// </summary> protected void SearchPrint() { try { try { //使用服務查詢 var job = new POS_Library.ShopPos.LogisticsAccount(); LPList = job.GetPrintLogistics(zone, txt_Start.Text, DateTime.Parse(txt_End.Text).AddDays(1).ToString("yyyy-MM-dd")); } catch (Exception ex) { string a = POS_Library.Public.Utility.Stack.ExceptionMsg(ex); Response.Write("系統發生錯誤 " + a); } if (LPList.Count > 0) { for (int i = 0; i < LPList.Count; i++) { DataRow dr = dt.NewRow(); dr["帳號"] = LPList[i].Account; //暫存帳號 String Account = ""; decimal score = 0; int j = i + 1; var logistics = new List <string>(); logistics.Add(((int)POS_Library.Public.Utility.LogisticsType.入庫確認).ToString()); logistics.Add(((int)POS_Library.Public.Utility.LogisticsType.入庫上架).ToString()); logistics.Add(((int)POS_Library.Public.Utility.LogisticsType.移動儲位).ToString()); logistics.Add(((int)POS_Library.Public.Utility.LogisticsType.調出驗貨確認).ToString()); logistics.Add(((int)POS_Library.Public.Utility.LogisticsType.盤點無條件上架).ToString()); logistics.Add(((int)POS_Library.Public.Utility.LogisticsType.盤點無條件打銷).ToString()); if (Account == "") { Account = LPList[i].Account; score += (!logistics.Contains(LPList[i].TypeName)) ? LPList[i].ProductScore : LPList[i].ProductQuantity; } //帳號相同時把分數加總 while (j < LPList.Count && Account == LPList[j].Account) { score += (!logistics.Contains(LPList[i].TypeName)) ? LPList[j].ProductScore : LPList[j].ProductQuantity; j++; } //加總完放入 dr["總分"] = score.ToString(); Account = ""; score = 0; j = i; dr["種類"] = ((POS_Library.Public.Utility.LogisticsType) int.Parse(LPList[i].TypeName)).ToString(); dr["項目"] = LPList[i].ProductItem; dr["件數"] = LPList[i].ProductQuantity; dr["分數"] = (!logistics.Contains(LPList[i].TypeName)) ? LPList[i].ProductScore : LPList[i].ProductQuantity; dt.Rows.Add(dr); } } gv_logistics.DataSource = dt; gv_logistics.DataBind(); } catch (Exception ex) { Response.Write("系統發生錯誤 " + ex.Message); } }