Ejemplo n.º 1
0
        public void F_LoadExcel()
        {
            //引用//ReferenceCode/ExcelColumn.cs的類別
            CustomerRate GetExcelDefine = new CustomerRate();

            //導入匯入table
            GetExcelDefine.RateDT();
            //上傳路徑
            String    savePath = Server.MapPath(@"~\ExcelUpLoad\Finance\CustomerRate");
            string    str頁簽名稱 = "", str三巡時間年 = "", str三巡時間月 = "", str三巡時間巡 = "";
            DataTable D_table = new DataTable("Excel");

            //建立Excel欄位
            D_table = GetExcelDefine.CustomerRateDataTable.Copy();
            DataTable D_errortable = new DataTable("Error");
            //實際顯示欄位
            int Excel欄位數 = D_table.Columns.Count - 2;
            int iyear    = 0;

            if (文件上傳FU.HasFile)
            {
                string fileName = 文件上傳FU.FileName;
                Session["FileName"] = fileName;
                savePath            = savePath + fileName;
                文件上傳FU.SaveAs(savePath);

                bool bCheckTime = true, bCheckDB = true;

                #region ErrorTable
                //                    D_errortable.Columns.Add("SheetName");
                D_errortable.Columns.Add("Error");
                //D_errortable.Columns.Add("Error");
                #endregion


                if (fileName.Substring(fileName.Length - 4, 4).ToUpper() == "XLSX")
                {
                    XSSFWorkbook workbook = new XSSFWorkbook(文件上傳FU.FileContent);  //==只能讀取 System.IO.Stream

                    for (int x = 0; x < workbook.NumberOfSheets; x++)
                    {
                        XSSFSheet u_sheet   = (XSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                        XSSFRow   headerRow = (XSSFRow)u_sheet.GetRow(3);        //-- Excel 表頭列
                        //抓第一行資料
                        IRow DateRow = (IRow)u_sheet.GetRow(0);                  //-- v.1.2.4版修改
                        //Session["Date"] = SearchTB.Text;
                        str頁簽名稱 = u_sheet.SheetName.ToString();
                        //str三巡時間 = DateRow.GetCell(3).ToString();
                        if ("三巡外匯表" == str頁簽名稱)
                        {
                            try
                            {
                                if (string.IsNullOrEmpty(DateRow.Cells[5].ToString()))
                                {
                                    bCheckTime = false;
                                }
                                str三巡時間年 = DateRow.Cells[5].ToString();
                                if (string.IsNullOrEmpty(DateRow.Cells[7].ToString()))
                                {
                                    bCheckTime = false;
                                }
                                str三巡時間月 = DateRow.Cells[7].ToString();
                                if (string.IsNullOrEmpty(DateRow.Cells[9].ToString()))
                                {
                                    bCheckTime = false;
                                }
                                str三巡時間巡 = DateRow.Cells[9].ToString();
                                int.TryParse(str三巡時間年, out iyear);
                                if (iyear > 0)
                                {
                                    iyear    = iyear + 1911;
                                    str三巡時間年 = iyear.ToString();
                                }
                                else
                                {
                                    bCheckTime = false;
                                }
                                if (bCheckTime)
                                {
                                    bCheckDB = F_CheckData(str三巡時間巡, str三巡時間年 + str三巡時間月);
                                }
                            }
                            catch (Exception)
                            {
                                //日期確認失敗
                                bCheckTime = false;
                            }
                            //執行程式
                            if (bCheckTime && bCheckDB)
                            {
                                //i=1第二列開始
                                for (int i = 1; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                                {
                                    //--不包含 Excel表頭列的 "其他資料列"
                                    IRow row = (IRow)u_sheet.GetRow(i);
                                    F_資料確認(D_table, D_errortable, str頁簽名稱, row);
                                }
                            }
                            else if (!bCheckTime)
                            {
                                F_ErrorShow("三巡日期錯誤");
                            }
                        }
                        //-- 釋放 NPOI的資源
                        u_sheet = null;
                    }
                    //-- 釋放 NPOI的資源
                    workbook = null;
                }
                else
                {
                    HSSFWorkbook workbook = new HSSFWorkbook(文件上傳FU.FileContent);  //==只能讀取 System.IO.Stream
                    for (int x = 0; x < workbook.NumberOfSheets; x++)
                    {
                        HSSFSheet u_sheet   = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                        HSSFRow   headerRow = (HSSFRow)u_sheet.GetRow(3);        //-- Excel 表頭列
                        IRow      DateRow   = (IRow)u_sheet.GetRow(2);           //-- v.1.2.4版修改
                        str頁簽名稱 = u_sheet.SheetName.ToString();

                        if ("三巡外匯表" == str頁簽名稱)
                        {
                            try
                            {
                                if (string.IsNullOrEmpty(DateRow.Cells[5].ToString()))
                                {
                                    bCheckTime = false;
                                }
                                //str三巡時間年 = DateRow.Cells[5].ToString();
                                if (string.IsNullOrEmpty(DateRow.Cells[7].ToString()))
                                {
                                    bCheckTime = false;
                                }
                                str三巡時間月 = DateRow.Cells[7].ToString();
                                if (string.IsNullOrEmpty(DateRow.Cells[9].ToString()))
                                {
                                    bCheckTime = false;
                                }
                                str三巡時間巡 = DateRow.Cells[9].ToString();
                                int.TryParse(str三巡時間年, out iyear);
                                if (iyear > 0)
                                {
                                    iyear    = iyear + 1911;
                                    str三巡時間年 = iyear.ToString();
                                }
                                else
                                {
                                    bCheckTime = false;
                                }
                                if (bCheckTime)
                                {
                                    bCheckTime = F_CheckData(str三巡時間巡, str三巡時間年 + str三巡時間月);
                                }
                            }
                            catch (Exception)
                            {
                                //日期確認失敗
                                bCheckTime = false;
                            }
                            //執行程式
                            if (bCheckTime)
                            {
                                //i=1第二列開始
                                for (int i = 1; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                                {
                                    //--不包含 Excel表頭列的 "其他資料列"
                                    IRow row = (IRow)u_sheet.GetRow(i);
                                    F_資料確認(D_table, D_errortable, str頁簽名稱, row);
                                }
                            }
                            else
                            {
                                F_ErrorShow("三巡日期錯誤");
                            }
                        }
                        //-- 釋放 NPOI的資源
                        u_sheet = null;
                    }
                    //-- 釋放 NPOI的資源
                    workbook = null;
                }
            }
            else
            {
                F_Show(false);
                F_ErrorShow("????  ...... 請先挑選檔案之後,再來上傳");
            }   // FileUpload使用的第一個 if判別式

            if (D_table.Rows.Count > 0)
            {
                Session["Excel"]    = D_table;
                Session["三巡時間年"]    = iyear.ToString();
                Session["三巡時間月"]    = str三巡時間月;
                Session["str三巡時間巡"] = str三巡時間巡;
                YearLB.Text         = iyear.ToString();
                MonthLB.Text        = str三巡時間月;
                switch (str三巡時間巡)
                {
                case "1":
                    巡LB.Text = "上巡";
                    break;

                case "2":
                    巡LB.Text = "中巡";
                    break;

                default:
                    巡LB.Text = "下巡";
                    break;
                }
                F_Show(true);
                DataGV.DataSource = D_table;
                DataGV.DataBind();
            }
            else
            {
                Session["Excel"] = null;
            }

            if (D_errortable.Rows.Count > 0)
            {
                Session["ExcelError"] = D_errortable;
            }
            else
            {
                Session["ExcelError"] = null;
                ErrorGV.DataSource    = null;
                ErrorGV.DataBind();
            }
        }
Ejemplo n.º 2
0
        //If this code does not exist in the file, add the code into the file after the following line:

        protected void CheckBT_Click(object sender, EventArgs e)
        {
            ////引用//ReferenceCode/ExcelColumn.cs的類別
            //ExcelImportTemplate GetExcelDefine = new ExcelImportTemplate();
            ////建立匯入table
            //GetExcelDefine.F_ImportTable();
            ////上傳路徑
            //// 根目錄/路徑(~/路徑)
            //String savePath = Server.MapPath(@"~\ExcelUpLoad\Sales\AMZForcast");

            //DataTable D_table = new DataTable("Excel");
            ////建立Excel欄位
            //D_table = GetExcelDefine.Dt1.Copy();
            //DataTable D_errortable = new DataTable("Error");
            ////實際顯示欄位
            //int Excel欄位數 = D_table.Columns.Count - 2;
            if ((upload_file.PostedFile != null) && (upload_file.PostedFile.ContentLength > 0))
            {
                string fileName      = System.IO.Path.GetFileName(upload_file.PostedFile.FileName);
                string LocationFiled = Server.MapPath(@"~\ExcelUpLoad\");
                string str頁簽名稱       = "";

                try
                {
                    DataTable D_table        = new DataTable("Excel");
                    DataTable D_errortable   = new DataTable("Error");
                    string    副檔名            = System.IO.Path.GetExtension(fileName);
                    DataTable DtColumnDefine = GetDBData("欄位定義");
                    if (Session["DataDefine"] != null)
                    {
                        Session.Remove("DataDeffine");
                    }
                    Session["DataDeffine"] = DtColumnDefine;
                    //指定Import Sheet Name
                    string  StrSheetNameCheck = "";
                    Boolean BCheck = false;
                    int     I資料起始欄, I資料起始列;

                    #region 基本資料欄位
                    //D_table.Columns.Add("預設資料");

                    #endregion

                    #region ErrorTable
                    //D_errortable.Columns.Add("SheetName");
                    //D_errortable.Columns.Add("Dept");
                    D_errortable.Columns.Add("Error");
                    #endregion
                    //
                    foreach (DataRow Dr in DtColumnDefine.Rows)
                    {
                        D_table.Columns.Add(Dr["資料名稱中文"].ToString());
                    }

                    if (DtColumnDefine.Rows.Count > 0)
                    {
                        StrSheetNameCheck = (string.IsNullOrEmpty(DtColumnDefine.Rows[0]["指定頁籤名稱"].ToString()))?"": DtColumnDefine.Rows[0]["指定頁籤名稱"].ToString();

                        if (!Boolean.TryParse(DtColumnDefine.Rows[0]["是否指定頁籤"].ToString(), out BCheck))
                        {
                            BCheck = false;
                        }

                        if (!int.TryParse(DtColumnDefine.Rows[0]["資料起始列"].ToString(), out I資料起始列))
                        {
                            I資料起始列 = 1;
                        }

                        if (!int.TryParse(DtColumnDefine.Rows[0]["資料起始欄"].ToString(), out I資料起始欄))
                        {
                            I資料起始欄 = 0;
                        }

                        while (File.Exists(LocationFiled + fileName))
                        {
                            fileName = fileName.Substring(0, fileName.Length - 副檔名.Length) + DateTime.Now.ToString("yyyyMMddhhmmssfff") + 副檔名;
                        }
                        upload_file.PostedFile.SaveAs(LocationFiled + fileName);

                        if (副檔名.ToUpper() == ".XLSX")
                        {
                            XSSFWorkbook workbook = new XSSFWorkbook(upload_file.PostedFile.InputStream);  //==只能讀取 System.IO.Stream
                            for (int x = 0; x < workbook.NumberOfSheets; x++)
                            {
                                //-- 0表示:第一個 worksheet工作表
                                XSSFSheet u_sheet = (XSSFSheet)workbook.GetSheetAt(x);
                                str頁簽名稱 = u_sheet.SheetName.ToString();
                                //檢查是否有要對應資料
                                if (BCheck && StrSheetNameCheck != str頁簽名稱)
                                {
                                    continue;
                                }
                                //-- Excel 表頭列
                                XSSFRow headerRow = (XSSFRow)u_sheet.GetRow(I資料起始列);
                                IRow    DateRow   = (IRow)u_sheet.GetRow(I資料起始列);
                                //-- for迴圈的「啟始值」要加一,表示不包含 Excel表頭列
                                // for (int i = (u_sheet.FirstRowNum + 1); i <= u_sheet.LastRowNum; i++)
                                //-- 每一列做迴圈
                                //i=1第二列開始
                                for (int i = I資料起始列; i <= u_sheet.LastRowNum; i++)
                                {
                                    //--不包含 Excel表頭列的 "其他資料列"
                                    IRow row = (IRow)u_sheet.GetRow(i);

                                    #region 關鍵資料沒有不執行,避免USER亂填EXCEL
                                    string Str款號 = "";
                                    try
                                    {
                                        Str款號 = row.GetCell(1).ToString();
                                    }
                                    catch (Exception)
                                    {
                                    }
                                    if (string.IsNullOrEmpty(Str款號))
                                    {
                                        continue;
                                    }
                                    #endregion
                                    F_資料確認(ref D_table, ref D_errortable, str頁簽名稱, row, DtColumnDefine, i, I資料起始欄);
                                }
                                //-- 釋放 NPOI的資源
                                u_sheet = null;
                            }
                            //-- 釋放 NPOI的資源
                            workbook = null;
                        }
                        else
                        {
                            HSSFWorkbook workbook = new HSSFWorkbook(upload_file.PostedFile.InputStream);  //==只能讀取 System.IO.Stream
                            for (int x = 0; x < workbook.NumberOfSheets; x++)
                            {
                                HSSFSheet u_sheet   = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                                HSSFRow   headerRow = (HSSFRow)u_sheet.GetRow(I資料起始列);   //-- Excel 表頭列
                                IRow      DateRow   = (IRow)u_sheet.GetRow(I資料起始列);      //-- v.1.2.4版修改
                                //檢查是否有要對應資料
                                if (BCheck && StrSheetNameCheck != str頁簽名稱)
                                {
                                    continue;
                                }
                                str頁簽名稱 = u_sheet.SheetName.ToString();
                                for (int i = I資料起始列; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                                {
                                    //--不包含 Excel表頭列的 "其他資料列"
                                    IRow row = (IRow)u_sheet.GetRow(i);

                                    #region 關鍵資料沒有不執行,避免USER亂填EXCEL
                                    string Str款號 = "";
                                    try
                                    {
                                        Str款號 = row.GetCell(1).ToString();
                                    }
                                    catch (Exception)
                                    {
                                    }
                                    if (string.IsNullOrEmpty(Str款號))
                                    {
                                        continue;
                                    }
                                    #endregion
                                    F_資料確認(ref D_table, ref D_errortable, str頁簽名稱, row, DtColumnDefine, i, I資料起始欄);
                                }
                                //-- 釋放 NPOI的資源
                                u_sheet = null;
                            }
                            //-- 釋放 NPOI的資源
                            workbook = null;
                        }
                        //--錯誤資料顯示
                        if (D_errortable.Rows.Count > 0)
                        {
                            DataView D_View3 = new DataView(D_errortable);
                            ErrorGV.DataSource = D_View3;
                            ErrorGV.DataBind();
                        }
                        if (D_table.Rows.Count > 0)
                        {
                            GridView1.DataSource = D_table;
                            GridView1.DataBind();
                            if (D_errortable.Rows.Count == 0)
                            {
                                Session["ImportExcelData"] = D_table;
                            }
                        }
                    }
                    else
                    {
                        F_ErrorShow("Please contact Mis : Import format is not defined");
                    }
                }
                catch (Exception ex)
                {
                    F_ErrorShow($"Error: {ex.Message}");
                }
            }
            else
            {
                F_ErrorShow("Please select a file to upload.");
            }
        }
Ejemplo n.º 3
0
        protected void CheckBT_Click(object sender, EventArgs e)
        {
            if ((upload_file.PostedFile != null) && (upload_file.PostedFile.ContentLength > 0))
            {
                string fileName      = System.IO.Path.GetFileName(upload_file.PostedFile.FileName);
                string LocationFiled = Server.MapPath(Str上傳路徑);
                string str頁簽名稱       = "";

                try
                {
                    DataTable         D_table      = new DataTable("Excel");
                    DataTable         D_errortable = new DataTable("Error");
                    DataTable         DtCula       = new DataTable("CulTable");
                    List <ColorClass> colorClasses = new List <ColorClass>();

                    string 副檔名 = System.IO.Path.GetExtension(fileName);
                    if (Session["DataDefine"] != null)
                    {
                        Session.Remove("DataDeffine");
                    }
                    int I資料起始列;

                    #region 基本資料欄位

                    #endregion

                    #region ErrorTable
                    //D_errortable.Columns.Add("SheetName");
                    //D_errortable.Columns.Add("Dept");
                    D_errortable.Columns.Add("Error");
                    #endregion
                    //
                    //foreach (DataRow Dr in DtColumnDefine.Rows)
                    //{
                    //    D_table.Columns.Add(Dr["資料名稱中文"].ToString());
                    //}

                    I資料起始列 = 0;

                    while (File.Exists(LocationFiled + fileName))
                    {
                        fileName = fileName.Substring(0, fileName.Length - 副檔名.Length) + DateTime.Now.ToString("yyyyMMddhhmmssfff") + 副檔名;
                    }
                    upload_file.PostedFile.SaveAs(LocationFiled + fileName);

                    if (副檔名.ToUpper() == ".XLSX")
                    {
                        XSSFWorkbook workbook = new XSSFWorkbook(upload_file.PostedFile.InputStream);  //==只能讀取 System.IO.Stream
                        for (int x = 0; x < workbook.NumberOfSheets; x++)
                        {
                            //-- 0表示:第一個 worksheet工作表
                            XSSFSheet u_sheet = (XSSFSheet)workbook.GetSheetAt(x);
                            str頁簽名稱 = u_sheet.SheetName.ToString();
                            //-- Excel 表頭列
                            XSSFRow headerRow = (XSSFRow)u_sheet.GetRow(I資料起始列);
                            IRow    DateRow   = (IRow)u_sheet.GetRow(I資料起始列);
                            //i=1第二列開始
                            for (int i = I資料起始列; i <= u_sheet.LastRowNum; i++)
                            {
                                //--不包含 Excel表頭列的 "其他資料列"
                                IRow row = (IRow)u_sheet.GetRow(i);
                                F_資料確認(ref D_table, ref D_errortable, ref DtCula, row, i, ref colorClasses);
                            }
                            //-- 釋放 NPOI的資源
                            u_sheet = null;
                        }
                        //-- 釋放 NPOI的資源
                        workbook = null;
                    }
                    else
                    {
                        HSSFWorkbook workbook = new HSSFWorkbook(upload_file.PostedFile.InputStream);  //==只能讀取 System.IO.Stream
                        for (int x = 0; x < workbook.NumberOfSheets; x++)
                        {
                            HSSFSheet u_sheet   = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                            HSSFRow   headerRow = (HSSFRow)u_sheet.GetRow(I資料起始列);   //-- Excel 表頭列
                            IRow      DateRow   = (IRow)u_sheet.GetRow(I資料起始列);      //-- v.1.2.4版修改
                            str頁簽名稱 = u_sheet.SheetName.ToString();
                            for (int i = I資料起始列; i <= u_sheet.LastRowNum; i++)       //-- 每一列做迴圈
                            {
                                //--不包含 Excel表頭列的 "其他資料列"
                                IRow row = (IRow)u_sheet.GetRow(i);

                                F_資料確認(ref D_table, ref D_errortable, ref DtCula, row, i, ref colorClasses);
                            }
                            //-- 釋放 NPOI的資源
                            u_sheet = null;
                        }
                        //-- 釋放 NPOI的資源
                        workbook = null;
                    }
                    //--錯誤資料顯示
                    if (D_errortable.Rows.Count > 0)
                    {
                        DataView D_View3 = new DataView(D_errortable);
                        ErrorGV.DataSource = D_View3;
                        ErrorGV.DataBind();
                    }
                    if (D_table.Rows.Count > 0)
                    {
                        int i顏色數量 = 0;
                        int.TryParse(匯入筆數DDL.SelectedValue, out i顏色數量);
                        var DistinctColor = ListColor.Distinct().ToList();
                        if (DistinctColor.Count() > 0 && i顏色數量 > 0)
                        {
                            using (DataTable dt = DtCula.Clone())
                            {
                                if (i顏色數量 == 4)
                                {
                                    dt.Columns.RemoveAt(3);
                                    dt.Columns.RemoveAt(2);
                                }

                                if (i顏色數量 >= 2)
                                {
                                    dt.Columns.RemoveAt(1);
                                }
                                dt.Columns[0].ColumnName = "單一顏色";
                                foreach (var item in DistinctColor)
                                {
                                    try
                                    {
                                        DataRow dr = dt.NewRow();
                                        dr[0] = item;
                                        DataView dv1 = new DataView(DtCula), dv2 = new DataView(DtCula), dv3 = new DataView(DtCula), dv4 = new DataView(DtCula);
                                        dv1.RowFilter = $" {DtCula.Columns[0].ColumnName} = '{item}'";
                                        if (i顏色數量 >= 2)
                                        {
                                            dv2.RowFilter = $" {DtCula.Columns[1].ColumnName} = '{item}'";
                                        }
                                        else
                                        {
                                            dv2.Dispose();
                                        }
                                        if (i顏色數量 == 4)
                                        {
                                            dv3.RowFilter = $" {DtCula.Columns[2].ColumnName} = '{item}'";
                                            dv4.RowFilter = $" {DtCula.Columns[3].ColumnName} = '{item}'";
                                        }
                                        else
                                        {
                                            dv3.Dispose();
                                            dv4.Dispose();
                                        }

                                        for (int i = i顏色數量; i < dt.Columns.Count + i顏色數量 - 1; i++)
                                        {
                                            try
                                            {
                                                int x = 0;
                                                if (dv1.Count > 0)
                                                {
                                                    x = F_filter單一顏色數量(dv1, i, x);
                                                }
                                                if (dv2.Count > 0)
                                                {
                                                    x = F_filter單一顏色數量(dv2, i, x);
                                                }
                                                if (dv3.Count > 0)
                                                {
                                                    x = F_filter單一顏色數量(dv3, i, x);
                                                }
                                                if (dv4.Count > 0)
                                                {
                                                    x = F_filter單一顏色數量(dv4, i, x);
                                                }
                                                dr[i - i顏色數量 + 1] = x;
                                            }
                                            catch (Exception ex2)
                                            {
                                                F_ErrorShow($"Error: {ex2.Message}");
                                            }
                                        }
                                        dt.Rows.Add(dr);
                                    }
                                    catch (Exception ex1)
                                    {
                                        F_ErrorShow($"Error: {ex1.Message}");
                                    }
                                }
                                if (dt.Rows.Count > 0)
                                {
                                    GridView3.DataSource = dt;
                                    GridView3.DataBind();


                                    using (XLWorkbook wb = new XLWorkbook())
                                    {
                                        wb.Worksheets.Add(DtCula, "AMZ_PO_Qty");
                                        wb.Worksheets.Add(dt, "AMZ_Color_Qty");
                                        Response.Clear();
                                        Response.Buffer      = true;
                                        Response.Charset     = "";
                                        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                                        Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "AMZ_PO"));
                                        using (MemoryStream MyMemoryStream = new MemoryStream())
                                        {
                                            wb.SaveAs(MyMemoryStream);
                                            MyMemoryStream.WriteTo(Response.OutputStream);
                                            Response.Flush();
                                            Response.End();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    F_ErrorShow($"Error: {ex.Message}");
                }
            }
        }
Ejemplo n.º 4
0
        //If this code does not exist in the file, add the code into the file after the following line:

        protected void CheckBT_Click(object sender, EventArgs e)
        {
            if ((upload_file.PostedFile != null) && (upload_file.PostedFile.ContentLength > 0))
            {
                string fileName      = System.IO.Path.GetFileName(upload_file.PostedFile.FileName);
                string LocationFiled = Server.MapPath(Str上傳路徑);
                string str頁簽名稱       = "";

                try
                {
                    DataTable D_table      = new DataTable("Excel");
                    DataTable D_errortable = new DataTable("Error");
                    string    副檔名          = System.IO.Path.GetExtension(fileName);

                    int I資料起始列 = 1;

                    #region 基本資料欄位
                    D_table.Columns.Add("款號");
                    D_table.Columns.Add("地區");
                    D_table.Columns.Add("顏色");
                    D_table.Columns.Add("Size");
                    DataColumn Col數量 = new DataColumn("數量");
                    Col數量.DataType = System.Type.GetType("System.Int32");
                    D_table.Columns.Add(Col數量);
                    #endregion

                    #region ErrorTable

                    D_errortable.Columns.Add("Error");
                    #endregion
                    //
                    if (副檔名.ToUpper() == ".XLSX")
                    {
                        XSSFWorkbook workbook = new XSSFWorkbook(upload_file.PostedFile.InputStream);  //==只能讀取 System.IO.Stream
                        for (int x = 0; x < workbook.NumberOfSheets; x++)
                        {
                            //-- 0表示:第一個 worksheet工作表
                            XSSFSheet u_sheet = (XSSFSheet)workbook.GetSheetAt(x);
                            str頁簽名稱 = u_sheet.SheetName.ToString();
                            //-- Excel 表頭列
                            XSSFRow headerRow = (XSSFRow)u_sheet.GetRow(I資料起始列);
                            IRow    DateRow   = (IRow)u_sheet.GetRow(0);
                            //-- for迴圈的「啟始值」要加一,表示不包含 Excel表頭列
                            // for (int i = (u_sheet.FirstRowNum + 1); i <= u_sheet.LastRowNum; i++)
                            //-- 每一列做迴圈
                            //i=1第二列開始
                            for (int i = I資料起始列; i <= u_sheet.LastRowNum; i++)
                            {
                                //--不包含 Excel表頭列的 "其他資料列"
                                IRow row = (IRow)u_sheet.GetRow(i);

                                #region 關鍵資料沒有不執行,避免USER亂填EXCEL
                                string Str款號 = "";
                                try
                                {
                                    Str款號 = row.GetCell(0).ToString();
                                }
                                catch (Exception)
                                {
                                }
                                if (string.IsNullOrEmpty(Str款號))
                                {
                                    continue;
                                }
                                #endregion
                                F_資料確認(ref D_table, ref D_errortable, str頁簽名稱, row, i, DateRow);
                            }
                            //-- 釋放 NPOI的資源
                            u_sheet = null;
                        }
                        //-- 釋放 NPOI的資源
                        workbook = null;
                    }
                    else
                    {
                        HSSFWorkbook workbook = new HSSFWorkbook(upload_file.PostedFile.InputStream);  //==只能讀取 System.IO.Stream
                        for (int x = 0; x < workbook.NumberOfSheets; x++)
                        {
                            HSSFSheet u_sheet   = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                            HSSFRow   headerRow = (HSSFRow)u_sheet.GetRow(I資料起始列);   //-- Excel 表頭列
                            IRow      DateRow   = (IRow)u_sheet.GetRow(0);           //-- v.1.2.4版修改
                            //檢查是否有要對應資料
                            str頁簽名稱 = u_sheet.SheetName.ToString();
                            for (int i = I資料起始列; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                            {
                                //--不包含 Excel表頭列的 "其他資料列"
                                IRow row = (IRow)u_sheet.GetRow(i);

                                #region 關鍵資料沒有不執行,避免USER亂填EXCEL
                                string Str款號 = "";
                                try
                                {
                                    Str款號 = row.GetCell(0).ToString();
                                }
                                catch (Exception)
                                {
                                }
                                if (string.IsNullOrEmpty(Str款號))
                                {
                                    continue;
                                }
                                #endregion
                                F_資料確認(ref D_table, ref D_errortable, str頁簽名稱, row, i, DateRow);
                            }
                            //-- 釋放 NPOI的資源
                            u_sheet = null;
                        }
                        //-- 釋放 NPOI的資源
                        workbook = null;
                    }
                    //--錯誤資料顯示
                    if (D_errortable.Rows.Count > 0)
                    {
                        DataView D_View3 = new DataView(D_errortable);
                    }
                    if (D_table.Rows.Count > 0)
                    {
                        if (D_errortable.Rows.Count == 0)
                        {
                            ReportViewer1.Visible        = true;
                            ReportViewer1.ProcessingMode = ProcessingMode.Local;

                            ReportDataSource source = new ReportDataSource("AMZ_Po", D_table);
                            ReportViewer1.LocalReport.DataSources.Clear();
                            if (SumCB.Checked)
                            {
                                ReportViewer1.LocalReport.ReportPath = @"ReportSource\Sales\ReportSales027.rdlc";
                            }
                            else
                            {
                                ReportViewer1.LocalReport.ReportPath = @"ReportSource\Sales\ReportSales027_V2.rdlc";
                            }
                            ReportViewer1.LocalReport.DisplayName = "AMZ_Po拆分";
                            ReportViewer1.LocalReport.DataSources.Add(source);

                            ReportViewer1.DataBind();
                            ReportViewer1.LocalReport.Refresh();
                            ErrorGV.Visible = false;
                        }
                        else
                        {
                            ErrorGV.DataSource = D_errortable;
                            ErrorGV.DataBind();
                            ErrorGV.Visible = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    F_ErrorShow($"Error: {ex.Message}");
                }
            }
            else
            {
                F_ErrorShow("Please select a file to upload.");
            }
        }
Ejemplo n.º 5
0
        protected void SearchBT_Click(object sender, EventArgs e)
        {
            Session.Remove("DT正確");
            Session.Remove("DT異常要處理資料");

            using (DataTable DT確認資料 = DbInit(""))
            {
                if (DT確認資料.Rows.Count > 0)
                {
                    UpDateBT.Visible = false;
                    UpdateGV.Visible = false;
                    ErrorGV.Visible  = false;
                    ErrorLB.Visible  = false;
                    using (DataTable DT正確資料 = new DataTable(), DT異常要處理資料 = new DataTable(), DT異常資料 = new DataTable())
                    {
                        DT正確資料.Columns.Add("sam_nbr");
                        DT正確資料.Columns.Add("cus_style_no");
                        DT異常資料.Columns.Add("搜尋單號");
                        DT異常資料.Columns.Add("sam_nbr");
                        DT異常資料.Columns.Add("Error");
                        DT異常要處理資料.Columns.Add("搜尋單號");
                        DT異常要處理資料.Columns.Add("sam_nbr");
                        DT異常要處理資料.Columns.Add("Error");
                        foreach (DataRow item in DT確認資料.Rows)
                        {
                            try
                            {
                                DataRow DR正確 = DT正確資料.NewRow(), DR異常 = DT異常資料.NewRow(), DR異常要處理資料 = DT異常要處理資料.NewRow();
                                //有款號有借出紀錄
                                if (!string.IsNullOrEmpty(item["cus_style_no"].ToString()) && (item["借出狀態"].ToString() == "30" || item["借出狀態"].ToString() == "40"))
                                {
                                    DR正確["sam_nbr"]      = item["sam_nbr"].ToString();
                                    DR正確["cus_style_no"] = item["cus_style_no"].ToString();
                                    DT正確資料.Rows.Add(DR正確);
                                }
                                //沒有打樣單
                                else
                                {
                                    if (string.IsNullOrEmpty(item["cus_style_no"].ToString()))
                                    {
                                        DR異常["搜尋單號"]    = item["打樣單號"].ToString();
                                        DR異常["sam_nbr"] = "";
                                        DR異常["Error"]   = "沒有打樣單資料";
                                        DT異常資料.Rows.Add(DR異常);
                                    }
                                    //有借出紀錄未歸還
                                    else
                                    {
                                        if (!string.IsNullOrEmpty(item["借出狀態"].ToString()))
                                        {
                                            DR異常要處理資料["搜尋單號"]    = item["打樣單號"].ToString();
                                            DR異常要處理資料["sam_nbr"] = item["sam_nbr"].ToString();
                                            DR異常要處理資料["Error"]   = "有借出狀態不是打樣室歸還,或TD借出,狀態:" + item["狀態"].ToString();
                                            DT異常要處理資料.Rows.Add(DR異常要處理資料);
                                        }
                                        else
                                        {
                                            DR異常["搜尋單號"]    = item["打樣單號"].ToString();
                                            DR異常["sam_nbr"] = item["sam_nbr"].ToString();
                                            DR異常["Error"]   = "版套為借出狀態未借出、已歸還或已結案";
                                            DT異常資料.Rows.Add(DR異常);
                                        }
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                Log.ErrorLog(ex, "Search Error", StrProgram);
                                F_ErrorShow(ex.ToString());
                            }
                        }
                        if (DT正確資料.Rows.Count > 0)
                        {
                            Session["DT正確"]     = DT正確資料;
                            UpDateBT.Visible    = true;
                            UpdateGV.Visible    = true;
                            UpdateGV.DataSource = DT正確資料;
                            UpdateGV.DataBind();
                        }
                        //Session["DT異常"] = (DT異常資料.Rows.Count > 0) ? DT異常資料 : null;
                        if (DT異常資料.Rows.Count > 0)
                        {
                            //Session["DT異常"] = DT異常資料;
                            ErrorGV.Visible = true;
                            ErrorLB.Visible = true;
                            //DeleteBT.Visible = true;
                            //CloseBT.Visible = true;
                            ErrorGV.DataSource = DT異常資料;
                            ErrorGV.DataBind();
                        }
                        if (DT異常要處理資料.Rows.Count > 0)
                        {
                            Session["DT異常要處理資料"]       = DT異常要處理資料;
                            ErrorContinueGV.Visible    = true;
                            ErrorContinueLB.Visible    = true;
                            DeleteBT.Visible           = true;
                            CloseBT.Visible            = true;
                            ErrorContinueGV.DataSource = DT異常要處理資料;
                            ErrorContinueGV.DataBind();
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public void F_LoadExcel()
        {
            //引用//ReferenceCode/ExcelColumn.cs的類別
            AMZForcast GetExcelDefine = new AMZForcast();

            //導入匯入table
            GetExcelDefine.ForcastDT();
            //上傳路徑
            String savePath = Server.MapPath(@"~\ExcelUpLoad\Sales\AMZForcast");

            DataTable D_table = new DataTable("Excel");

            //建立Excel欄位
            D_table = GetExcelDefine.ForcastDataTable.Copy();
            DataTable D_errortable = new DataTable("Error");
            //實際顯示欄位
            int Excel欄位數 = D_table.Columns.Count - 2;

            if (F_CheckData())
            {
                if (文件上傳FU.HasFile)
                {
                    String fileName = 文件上傳FU.FileName;
                    Session["FileName"] = fileName;
                    savePath            = savePath + fileName;
                    文件上傳FU.SaveAs(savePath);
                    string str頁簽名稱 = "";
                    //Label1.Text = "Kiểm tra tệp tin dữ liệu thành công, tên tệp tin---- " + fileName;
                    //--------------------------------------------------
                    //---- (以上是)上傳 FileUpload的部分,成功運作!
                    //--------------------------------------------------

                    #region D_table
                    //D_table.Columns.Add("SheetName");
                    //D_table.Columns.Add("閱卷序號");
                    //D_table.Columns.Add("款號");
                    //D_table.Columns.Add("組別");
                    //D_table.Columns.Add("日期");
                    //D_table.Columns.Add("工號");
                    //D_table.Columns.Add("工段");
                    //D_table.Columns.Add("數量");

                    #endregion


                    #region ErrorTable
                    //                    D_errortable.Columns.Add("SheetName");
                    D_errortable.Columns.Add("款號");
                    //D_errortable.Columns.Add("尺寸");
                    //D_errortable.Columns.Add("顏色");
                    //D_errortable.Columns.Add("訂單數量");
                    //D_errortable.Columns.Add("可用庫存量");
                    D_errortable.Columns.Add("Error");
                    #endregion


                    if (fileName.Substring(fileName.Length - 4, 4).ToUpper() == "XLSX")
                    {
                        XSSFWorkbook workbook = new XSSFWorkbook(文件上傳FU.FileContent);  //==只能讀取 System.IO.Stream

                        for (int x = 0; x < workbook.NumberOfSheets; x++)
                        {
                            XSSFSheet u_sheet   = (XSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                            XSSFRow   headerRow = (XSSFRow)u_sheet.GetRow(3);        //-- Excel 表頭列
                            IRow      DateRow   = (IRow)u_sheet.GetRow(2);           //-- v.1.2.4版修改
                            //Session["Date"] = SearchTB.Text;
                            str頁簽名稱 = u_sheet.SheetName.ToString();

                            //-- for迴圈的「啟始值」要加一,表示不包含 Excel表頭列
                            // for (int i = (u_sheet.FirstRowNum + 1); i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                            //i=1第二列開始
                            for (int i = 1; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                            {
                                //--不包含 Excel表頭列的 "其他資料列"
                                IRow row = (IRow)u_sheet.GetRow(i);
                                F_資料確認(D_table, D_errortable, str頁簽名稱, row);
                            }
                            //-- 釋放 NPOI的資源
                            u_sheet = null;
                        }
                        //-- 釋放 NPOI的資源
                        workbook = null;
                        ////--Excel資料顯示
                        //DataView D_View2 = new DataView(D_table);
                        //ExcelGV.DataSource = D_View2;
                        //ExcelGV.DataBind();


                        //--錯誤資料顯示
                        if (D_errortable.Rows.Count > 0)
                        {
                            DataView D_View3 = new DataView(D_errortable);
                            ErrorGV.DataSource = D_View3;
                            ErrorGV.DataBind();
                        }

                        //--------------------------------------------------
                        //---- (以下是)上傳 FileUpload的部分!
                        //--------------------------------------------------
                    }
                    else
                    {
                        HSSFWorkbook workbook = new HSSFWorkbook(文件上傳FU.FileContent);  //==只能讀取 System.IO.Stream
                        for (int x = 0; x < workbook.NumberOfSheets; x++)
                        {
                            HSSFSheet u_sheet   = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                            HSSFRow   headerRow = (HSSFRow)u_sheet.GetRow(3);        //-- Excel 表頭列
                            IRow      DateRow   = (IRow)u_sheet.GetRow(2);           //-- v.1.2.4版修改
                            //Session["Date"] = SearchTB.Text;
                            str頁簽名稱 = u_sheet.SheetName.ToString();

                            for (int i = 1; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                            {
                                //--不包含 Excel表頭列的 "其他資料列"
                                IRow row = (IRow)u_sheet.GetRow(i);
                                F_資料確認(D_table, D_errortable, str頁簽名稱, row);
                            }
                            //-- 釋放 NPOI的資源
                            u_sheet = null;
                        }
                        //-- 釋放 NPOI的資源
                        workbook = null;
                        ////--Excel資料顯示
                        //DataView D_View2 = new DataView(D_table);
                        //ExcelGV.DataSource = D_View2;
                        //ExcelGV.DataBind();
                        //--錯誤資料顯示
                        if (D_errortable.Rows.Count > 0)
                        {
                            DataView D_View3 = new DataView(D_errortable);
                            ErrorGV.DataSource = D_View3;
                            ErrorGV.DataBind();
                        }

                        //--------------------------------------------------
                        //---- (以下是)上傳 FileUpload的部分!
                        //--------------------------------------------------
                    }
                }
                else
                {
                    F_ErrorShow("????  ...... 請先挑選檔案之後,再來上傳");
                }   // FileUpload使用的第一個 if判別式

                if (D_table.Rows.Count > 0)
                {
                    Session["Excel"] = D_table;
                }
                else
                {
                    Session["Excel"] = null;
                }

                if (D_errortable.Rows.Count > 0)
                {
                    Session["ExcelError"] = D_errortable;
                }
                else
                {
                    Session["ExcelError"] = null;
                    ErrorGV.DataSource    = null;
                    ErrorGV.DataBind();
                }
            }
            else
            {
                //if (F_CheckData() == false)
                //    Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('當日已有匯入資料');</script>");
                //else
                //    Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('請選擇匯入日期');</script>");
            }
        }
Ejemplo n.º 7
0
        public void F_LoadExcel()
        {
            //引用//ReferenceCode/ExcelColumn.cs的類別
            AMZForcast GetExcelDefine = new AMZForcast();

            //導入匯入table
            GetExcelDefine.ForcastDT();
            //上傳路徑
            String savePath = Server.MapPath(@"~\ExcelUpLoad\Sales\AMZForcast");

            DataTable D_table = new DataTable("Excel");

            //建立Excel欄位
            D_table = GetExcelDefine.ForcastDataTable.Copy();
            DataTable D_errortable = new DataTable("Error");
            //實際顯示欄位
            int Excel欄位數 = D_table.Columns.Count - 2;

            //啟始周
            if (文件上傳FU.HasFile)
            {
                String fileName = 文件上傳FU.FileName;
                Session["FileName"] = fileName;
                savePath            = savePath + fileName;
                文件上傳FU.SaveAs(savePath);
                string str頁簽名稱 = "";
                //--------------------------------------------------
                //---- (以上是)上傳 FileUpload的部分,成功運作!
                //--------------------------------------------------


                #region ErrorTable
                D_errortable.Columns.Add("Error");
                #endregion


                if (fileName.Substring(fileName.Length - 4, 4).ToUpper() == "XLSX")
                {
                    XSSFWorkbook workbook = new XSSFWorkbook(文件上傳FU.FileContent);  //==只能讀取 System.IO.Stream

                    for (int x = 0; x < workbook.NumberOfSheets; x++)
                    {
                        XSSFSheet u_sheet   = (XSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                        XSSFRow   headerRow = (XSSFRow)u_sheet.GetRow(0);        //-- Excel 表頭列
                        IRow      DateRow   = (IRow)u_sheet.GetRow(2);           //-- v.1.2.4版修改
                        str頁簽名稱 = u_sheet.SheetName.ToString();
                        string strtime = headerRow.GetCell(1).ToString();
                        //-- for迴圈的「啟始值」要加一,表示不包含 Excel表頭列
                        // for (int i = (u_sheet.FirstRowNum + 1); i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                        //i=1第二列開始
                        for (int i = 1; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                        {
                            //--不包含 Excel表頭列的 "其他資料列"
                            IRow row = (IRow)u_sheet.GetRow(i);
                            F_資料確認(D_table, D_errortable, str頁簽名稱, row);
                        }
                        //-- 釋放 NPOI的資源
                        u_sheet = null;
                    }
                    //-- 釋放 NPOI的資源
                    workbook = null;
                    ////--Excel資料顯示
                    //DataView D_View2 = new DataView(D_table);
                    //ExcelGV.DataSource = D_View2;
                    //ExcelGV.DataBind();


                    //--錯誤資料顯示
                    if (D_errortable.Rows.Count > 0)
                    {
                        DataView D_View3 = new DataView(D_errortable);
                        ErrorGV.DataSource = D_View3;
                        ErrorGV.DataBind();
                    }

                    //--------------------------------------------------
                    //---- (以下是)上傳 FileUpload的部分!
                    //--------------------------------------------------
                }
                else
                {
                    HSSFWorkbook workbook = new HSSFWorkbook(文件上傳FU.FileContent);  //==只能讀取 System.IO.Stream
                    for (int x = 0; x < workbook.NumberOfSheets; x++)
                    {
                        HSSFSheet u_sheet   = (HSSFSheet)workbook.GetSheetAt(x); //-- 0表示:第一個 worksheet工作表
                        HSSFRow   headerRow = (HSSFRow)u_sheet.GetRow(3);        //-- Excel 表頭列
                        IRow      DateRow   = (IRow)u_sheet.GetRow(2);           //-- v.1.2.4版修改
                                                                                 //Session["Date"] = SearchTB.Text;
                        str頁簽名稱 = u_sheet.SheetName.ToString();

                        for (int i = 1; i <= u_sheet.LastRowNum; i++)   //-- 每一列做迴圈
                        {
                            //--不包含 Excel表頭列的 "其他資料列"
                            IRow row = (IRow)u_sheet.GetRow(i);
                            F_資料確認(D_table, D_errortable, str頁簽名稱, row);
                        }
                        //-- 釋放 NPOI的資源
                        u_sheet = null;
                    }
                    //-- 釋放 NPOI的資源
                    workbook = null;
                    ////--Excel資料顯示
                    //DataView D_View2 = new DataView(D_table);
                    //ExcelGV.DataSource = D_View2;
                    //ExcelGV.DataBind();
                    //--錯誤資料顯示
                    if (D_errortable.Rows.Count > 0)
                    {
                        DataView D_View3 = new DataView(D_errortable);
                        ErrorGV.DataSource = D_View3;
                        ErrorGV.DataBind();
                    }

                    //--------------------------------------------------
                    //---- (以下是)上傳 FileUpload的部分!
                    //--------------------------------------------------
                }
            }
            else
            {
                F_ErrorShow("????  ...... 請先挑選檔案之後,再來上傳");
            }   // FileUpload使用的第一個 if判別式

            if (D_table.Rows.Count > 0)
            {
                Session["Excel"] = D_table;
            }
            else
            {
                Session["Excel"] = null;
            }

            if (D_errortable.Rows.Count > 0)
            {
                Session["ExcelError"] = D_errortable;
            }
            else
            {
                Session["ExcelError"] = null;
                ErrorGV.DataSource    = null;
                ErrorGV.DataBind();
            }
        }
Ejemplo n.º 8
0
        protected void DbInit()
        {
            DataTable dt = new DataTable(), dt2 = new DataTable();

            ErrorGV.DataSource = null;
            ErrorGV.DataBind();
            SamGV.DataSource = null;
            SamGV.DataBind();
            try
            {
                using (SqlConnection Conn = new SqlConnection(strConnectString))
                {
                    SqlDataAdapter myAdapter = new SqlDataAdapter(selectsql("CheckData").ToString(), Conn);
                    myAdapter.Fill(dt);    //---- 這時候執行SQL指令。取出資料,放進 DataSet。
                }
                #region query 使用 In
                //        using (SqlConnection conn1 = new SqlConnection(strConnectString))
                //        {
                //            SqlCommand command1 = conn1.CreateCommand();
                //            SqlTransaction transaction1;
                //            conn1.Open();
                //            transaction1 = conn1.BeginTransaction("createExcelImport");
                //            try
                //            {
                //                command1.Connection = conn1;
                //                command1.Transaction = transaction1;

                //                #region 匯入
                //                string[] parameters = SamArray.Select((s, i) => "@sam_nbr" + i.ToString()).ToArray();
                //                command1.CommandText = string.Format(@"SELECT          a.receipt_date AS 發版日期,
                //                    b.cus_name AS 客戶名稱, a.cus_style_no AS 款號,
                //                    a.sam_nbr AS 打樣單號, dbo.F_DateToNull(a.samc_fin_date) AS 打版完成日期,
                //                    a.samc_remark60 AS 備註, a.plan_fin_date AS 預計完成日,
                //                    a.online_date AS 上線日期, a.samc_plan_fin_date AS 打版預計完成日,
                //                    a.plan_fin_date AS 預計完日, dbo.F_DateToNull(a.last_date) AS 需求日
                //                    ,dbo.F_DateToNull(a.samc_fin_date) 打版完成日
                //from samc_reqm a left join bas_cus_master b on a.site=b.site and a.cus_id=b.cus_id
                //                     where sam_nbr in ( {0} ) and a.site='GGF'
                //                     ", string.Join(",", parameters));
                //                command1.Parameters.Add("@samc_fin_date", SqlDbType.DateTime).Value = DateRangeTB.Text;
                //                for (int i = 0; i < SamArray.Length; i++)
                //                    command1.Parameters.AddWithValue(parameters[i], SamArray[i]);
                //                //command1.Parameters.Add("@sam_nbr", SqlDbType.DateTime).Value = DateRangeTB.Text;
                //                command1.ExecuteNonQuery();
                //                SqlDataReader dr = command1.ExecuteReader(CommandBehavior.CloseConnection);
                //                dt.Load(dr);
                //                #endregion
                //                //transaction1.Commit();
                //            }
                //            catch (Exception ex)
                //            {
                //                Log.ErrorLog(ex, "上傳失敗", StrProgram);
                //                transaction1.Rollback();
                //                throw;
                //            }
                //            finally
                //            {
                //                conn1.Close();
                //                transaction1.Dispose();
                //            }
                //        }
                #endregion
                if (dt.Rows.Count > 0)
                {
                    DataView dv = new DataView(dt);
                    dv.RowFilter       = " 打樣單狀態 = '無資料' or 打版完成日 = '無打版完成日'";
                    ErrorGV.DataSource = dv.ToTable();
                    ErrorGV.DataBind();
                    dv.RowFilter = String.Empty;
                    dv.RowFilter = " 打樣單狀態 = '有打樣單' and 打版完成日 <> '無打版完成日' ";

                    dt2          = dv.ToTable();
                    dv.RowFilter = String.Empty;
                    DataTable dt4 = new DataTable();
                    dv.RowFilter = "打版完成日 = '無打版完成日' and 打樣單狀態 = '有打樣單' ";
                    dt4          = dv.ToTable();
                    if (dt4.Rows.Count > 0)
                    {
                        SystemFunction systemFunction = new SystemFunction();
                        StringBuilder  sb             = new StringBuilder();
                        sb.Append(@"<h1><strong>樣品主副料到齊,未收到版套</strong></h1>
                                                <table style='width: 498px; height: 180px;' border='1'>
                                                <tbody>
                                                <tr style='height: 52px;'>
                                                <td style='width: 136px; height: 52px; text-align: center;'>
                                                <h1><strong>打樣單號</strong></h1>
                                                </td>
                                                <td style='width: 143px; height: 52px; text-align: center;'>
                                                <h1><strong>款號</strong></h1>
                                                </td>
                                                <td style='width: 130px; height: 52px;'>
                                                <h1 style='text-align: center;'><strong>客戶代號</strong></h1>
                                                </td>
                                                </tr>");
                        foreach (DataRow item in dt4.Rows)
                        {
                            sb.AppendFormat(@"<tr style='height: 53.4688px;'>
                                                        <td style='width: 136px; height: 53.4688px; text-align: center;'><strong>{0}</strong></td>
                                                        <td style='width: 143px; height: 53.4688px; text-align: center;'><strong>{1}</strong></td>
                                                        <td style='width: 130px; height: 53.4688px; text-align: center;'><strong>{2}</strong></td>
                                                        </tr>", item["打樣單號"].ToString(), item["款號"].ToString(), item["客戶代號"].ToString());
                        }
                        sb.Append("</tbody></ table > ");
                        systemFunction.SendMail("[email protected];[email protected];", "樣品主副料到期,未收到版套", sb.ToString());
                    }
                    if (dt2.Rows.Count > 0)
                    {
                        if (UpDate(dt2))
                        {
                            using (SqlConnection Conn = new SqlConnection(strConnectString))
                            {
                                DataTable      dt3       = new DataTable();
                                SqlDataAdapter myAdapter = new SqlDataAdapter(selectsql("Search", dt2).ToString(), Conn);
                                myAdapter.Fill(dt3);    //---- 這時候執行SQL指令。取出資料,放進 DataSet。
                                SamGV.DataSource = dt3;
                                SamGV.DataBind();
                            }
                        }
                    }
                    //TESTGV.DataBind();
                }
                else
                {
                    F_ErrorShow("搜尋不到資料");
                }
            }
            catch (Exception ex)
            {
                Log.ErrorLog(ex, "資料搜尋異常", StrProgram);
                F_ErrorShow("資料搜尋異常");
                //throw;
            }
        }
Ejemplo n.º 9
0
        protected void DbInit()
        {
            DataTable dt = new DataTable(), dt2 = new DataTable();

            try
            {
                using (SqlConnection Conn = new SqlConnection(strConnectString))
                {
                    SqlDataAdapter myAdapter = new SqlDataAdapter(selectsql("CheckData").ToString(), Conn);
                    myAdapter.Fill(dt);    //---- 這時候執行SQL指令。取出資料,放進 DataSet。
                }
                #region query 使用 In
                //        using (SqlConnection conn1 = new SqlConnection(strConnectString))
                //        {
                //            SqlCommand command1 = conn1.CreateCommand();
                //            SqlTransaction transaction1;
                //            conn1.Open();
                //            transaction1 = conn1.BeginTransaction("createExcelImport");
                //            try
                //            {
                //                command1.Connection = conn1;
                //                command1.Transaction = transaction1;

                //                #region 匯入
                //                string[] parameters = SamArray.Select((s, i) => "@sam_nbr" + i.ToString()).ToArray();
                //                command1.CommandText = string.Format(@"SELECT          a.receipt_date AS 發版日期,
                //                    b.cus_name AS 客戶名稱, a.cus_style_no AS 款號,
                //                    a.sam_nbr AS 打樣單號, dbo.F_DateToNull(a.samc_fin_date) AS 打版完成日期,
                //                    a.samc_remark60 AS 備註, a.plan_fin_date AS 預計完成日,
                //                    a.online_date AS 上線日期, a.samc_plan_fin_date AS 打版預計完成日,
                //                    a.plan_fin_date AS 預計完日, dbo.F_DateToNull(a.last_date) AS 需求日
                //                    ,dbo.F_DateToNull(a.samc_fin_date) 打版完成日
                //from samc_reqm a left join bas_cus_master b on a.site=b.site and a.cus_id=b.cus_id
                //                     where sam_nbr in ( {0} ) and a.site='GGF'
                //                     ", string.Join(",", parameters));
                //                command1.Parameters.Add("@samc_fin_date", SqlDbType.DateTime).Value = DateRangeTB.Text;
                //                for (int i = 0; i < SamArray.Length; i++)
                //                    command1.Parameters.AddWithValue(parameters[i], SamArray[i]);
                //                //command1.Parameters.Add("@sam_nbr", SqlDbType.DateTime).Value = DateRangeTB.Text;
                //                command1.ExecuteNonQuery();
                //                SqlDataReader dr = command1.ExecuteReader(CommandBehavior.CloseConnection);
                //                dt.Load(dr);
                //                #endregion
                //                //transaction1.Commit();
                //            }
                //            catch (Exception ex)
                //            {
                //                Log.ErrorLog(ex, "上傳失敗", StrProgram);
                //                transaction1.Rollback();
                //                throw;
                //            }
                //            finally
                //            {
                //                conn1.Close();
                //                transaction1.Dispose();
                //            }
                //        }
                #endregion
                if (dt.Rows.Count > 0)
                {
                    DataView dv = new DataView(dt);
                    dv.RowFilter       = " 打樣單狀態 <> '有打樣單' or 打樣處理 <> '有資料'";
                    ErrorGV.DataSource = dv.ToTable();
                    ErrorGV.DataBind();
                    dv.RowFilter = String.Empty;
                    dv.RowFilter = " 打樣單狀態 = '有打樣單' and 打樣處理 = '有資料'";

                    dt2 = dv.ToTable();
                    if (dt2.Rows.Count > 0)
                    {
                        if (UpDate(dt2))
                        {
                            using (SqlConnection Conn = new SqlConnection(strConnectString))
                            {
                                DataTable      dt3       = new DataTable();
                                SqlDataAdapter myAdapter = new SqlDataAdapter(selectsql("Search").ToString(), Conn);
                                myAdapter.Fill(dt3);    //---- 這時候執行SQL指令。取出資料,放進 DataSet。
                                SamGV.DataSource = dt3;
                                SamGV.DataBind();
                            }
                        }
                    }
                    //TESTGV.DataBind();
                }
                else
                {
                    F_ErrorShow("搜尋不到資料");
                }
            }
            catch (Exception ex)
            {
                Log.ErrorLog(ex, "資料搜尋異常", StrProgram);
                F_ErrorShow("資料搜尋異常");
                //throw;
            }
        }