예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
            }
        }