protected virtual void AfterExport(string startTime)
        {
            //TODO:檢查輸出筆數為0則不轉出
            //if (ids_1.rowcount() == 0) {
            //    messagebox(gs_t_err, "轉出筆數為0!", StopSign!);
            //    return;
            //}

            //TODO: export to excel
            //ids_1.SaveAs(is_save_file, Excel!, ib_title);

            //Write LOGF
            if (PbFunc.f_write_logf(gs_txn_id, "E", "轉出檔案:" + is_save_file) < 0)
            {
                return;
            }

            string finishTime = DateTime.Now.ToString("HH:mm:ss");

            MessageDisplay.Info("轉檔完成!", gs_t_result + " " + startTime + " ~ " + finishTime);
        }
Example #2
0
        /// <summary>
        /// 根據報表類型,轉出excel (其實三張報表都輸出到同一份excel)
        /// </summary>
        /// <param name="sheetNo"></param>
        /// <param name="reportType"></param>
        /// <param name="ls_rpt_name">sheet標題中文</param>
        /// <param name="rowTotalCount">空白行的筆數</param>
        /// <param name="startRowIndex">起始插入資料的row index</param>
        /// <param name="startDate">根據reportType傳入[起始年月]或[起始年月日]</param>
        /// <param name="endDate">根據reportType傳入[結束年月]或[結束年月日]</param>
        /// <returns></returns>
        protected bool wf_Export(Workbook workbook, SheetNo sheetNo, ReportType reportType,
                                 string ls_rpt_name, int rowTotalCount, int startRowIndex,
                                 DateTime startDate, DateTime endDate)
        {
            try {
                string tmpStart = (reportType == ReportType.mon ? startDate.ToString("yyyy/MM") : startDate.ToString("yyyy/MM/dd"));
                string tmpEnd   = (reportType == ReportType.mon ? endDate.ToString("yyyy/MM") : endDate.ToString("yyyy/MM/dd"));

                //1.讀取資料
                DataTable dtTemp = new DataTable();
                switch (reportType)
                {
                case ReportType.mon:
                    dtTemp = dao95140.ListMonth(startDate.ToString("yyyyMM"), endDate.ToString("yyyyMM"));
                    break;

                case ReportType.date:
                    dtTemp = dao95140.ListDateFcm(startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd"));
                    break;

                case ReportType.detail:
                    dtTemp = dao95140.ListDateAcc(startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd"));
                    break;
                }

                //1.1 check row count
                if (dtTemp.Rows.Count == 0)
                {
                    MessageDisplay.Info(string.Format("{0},{1},無任何資料!", tmpStart + "~" + tmpEnd, _ProgramID + "-" + ls_rpt_name));
                    return(false);
                }



                //2.切換Sheet
                Worksheet sheet1 = workbook.Worksheets[(int)sheetNo];

                //2.1 設定標題
                string titleDateDesc = "";
                if (startDate == endDate)
                {
                    titleDateDesc = tmpStart;
                }
                else
                {
                    titleDateDesc = tmpStart + "~" + tmpEnd;
                }
                sheet1.Cells[0, 0].Value = titleDateDesc + sheet1.Cells[0, 0].Value;

                //3.匯出資料(因為單純輸出dataTable,可直接用函數sheet.Import(DataTable,isNeedTitle,rowIndex,colIndex)
                sheet1.Import(dtTemp, false, startRowIndex, 0);

                //4.刪除空白列
                if (dtTemp.Rows.Count <= rowTotalCount)
                {
                    sheet1.Rows.Remove(startRowIndex + dtTemp.Rows.Count, rowTotalCount - dtTemp.Rows.Count);
                }

                //4.1 把指標移到[A1]
                sheet1.Range["A1"].Select();
                sheet1.ScrollToRow(0);

                return(true);
            } catch (Exception ex) {
                PbFunc.f_write_logf(_ProgramID, "error", ex.Message);
                return(false);
            }
        }