Пример #1
0
        /// <summary>
        /// CRM14_2報表(列印鈕)-彙總表
        /// </summary>
        /// <param name="ParameterList">變數清單</param>
        /// <param name="ReportOutputFormat">報表格式(PDF,EXCEL)</param>
        /// <param name="EOT">匯出Excel方式</param>           
        /// <returns>回傳查詢結果</returns>
        public DataTable CRM14_2(ArrayList ParameterList,
                                 string ReportOutputFormat,
                                 ref ReportList.ExcelOtherType EOT
                                 )
        {

            #region
            CRMModel.QueryCRMTicketReport BCO = new CRMModel.QueryCRMTicketReport(ConntionDB);

            DataTable dt_Return = null, Dt = null;

            dt_Return = BCO.PrintSum(ParameterList);

            if (dt_Return != null && dt_Return.Rows.Count > 0)
            {
                #region 將資料彙總成匯總報表

                #region 建立彙總TABLE

                DataTable dt_Result = new DataTable();

                for (int i = 0; i < 9; i++)
                {
                    DataColumn dt_Colum = new DataColumn();

                    if (i == 0)
                    { dt_Colum.ColumnName = "PROC_UNIT"; }
                    else if (i == 1)
                    { dt_Colum.ColumnName = "HANDLE_OK"; }//處理完成
                    else if (i == 2)
                    { dt_Colum.ColumnName = "HANDLE_ING"; }//處理中

                    else if (i == 3)
                    { dt_Colum.ColumnName = "HANDLE_NO"; }//未處理

                    else if (i == 4)
                    { dt_Colum.ColumnName = "BEHIND_HANDLE_OK"; }//逾期處理完成
                    else if (i == 5)
                    { dt_Colum.ColumnName = "BEHIND_HANDLE_ING"; }//逾期處理中

                    else if (i == 6)
                    { dt_Colum.ColumnName = "BEHIND_HANDLE_NO"; }//逾期未處理

                    else if (i == 7)
                    { dt_Colum.ColumnName = "TOTAL_COUNT"; }//總開單數
                    else if (i == 8)
                    { dt_Colum.ColumnName = "ID"; }//ID

                    if (i == 0)
                    { dt_Colum.DataType = System.Type.GetType("System.String"); }
                    else
                    { dt_Colum.DataType = System.Type.GetType("System.Int32"); }
                    dt_Result.Columns.Add(dt_Colum);
                }

                #endregion

                #region 將資料庫查詢的資料整理寫入彙總TABLE

                foreach (DataRow dRow_Return in dt_Return.Rows)
                {
                    if (dt_Result.Select("PROC_UNIT = '" + dRow_Return["PROC_UNIT"].ToString() + "'").Length == 0)
                    {
                        DataRow d_NewRow = dt_Result.NewRow();
                        d_NewRow["PROC_UNIT"] = dRow_Return["PROC_UNIT"].ToString();
                        d_NewRow["HANDLE_OK"] = 0;
                        d_NewRow["HANDLE_ING"] = 0;
                        d_NewRow["HANDLE_NO"] = 0;
                        d_NewRow["BEHIND_HANDLE_OK"] = 0;
                        d_NewRow["BEHIND_HANDLE_ING"] = 0;
                        d_NewRow["BEHIND_HANDLE_NO"] = 0;
                        d_NewRow["TOTAL_COUNT"] = 0;

                        dt_Result.Rows.Add(d_NewRow);
                    }

                    DataRow dRow = dt_Result.Select("PROC_UNIT = '" + dRow_Return["PROC_UNIT"].ToString() + "'")[0];
                    int i_RowValue = 0;
                    int i_RowTotalCount = 0;
                    string s_RowName = string.Empty;

                    if (dRow_Return["HANDLE_STATUS"].ToString() == "1")
                    { s_RowName = "HANDLE_NO"; }
                    else if (dRow_Return["HANDLE_STATUS"].ToString() == "2")
                    { s_RowName = "HANDLE_ING"; }
                    else if (dRow_Return["HANDLE_STATUS"].ToString() == "3")
                    { s_RowName = "HANDLE_OK"; }
                    else if (dRow_Return["HANDLE_STATUS"].ToString() == "4")
                    { s_RowName = "BEHIND_HANDLE_NO"; }
                    else if (dRow_Return["HANDLE_STATUS"].ToString() == "5")
                    { s_RowName = "BEHIND_HANDLE_ING"; }
                    else if (dRow_Return["HANDLE_STATUS"].ToString() == "6")
                    { s_RowName = "BEHIND_HANDLE_OK"; }

                    i_RowValue = int.Parse(dRow[s_RowName].ToString());
                    i_RowTotalCount = int.Parse(dRow["TOTAL_COUNT"].ToString());
                    dRow[s_RowName] = i_RowValue + 1;
                    dRow["TOTAL_COUNT"] = i_RowTotalCount + 1;
                }
                DataView dv = dt_Result.DefaultView;
                dv.Sort = "PROC_UNIT";
                Dt = dv.ToTable();
                #endregion

                #endregion
            }

            if (Dt == null || Dt.Rows.Count == 0)
            {
                throw new Exception("查無資料");
            }

            return Dt;
            #endregion
        }