Ejemplo n.º 1
0
        public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport()
        {
            實際使用報表_季 rpt = new 實際使用報表_季();

            rpt.Site = this.Site;
            return(rpt);
        }
Ejemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(naviTextBox2.Text))
            {
                MessageBox.Show("申請月份未填 !!", "提示訊息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            _起始日  = naviTextBox1.Text;
            _BGYM = naviTextBox2.Text;

            if (_狀態 != "特別")
            {
                if (radioButton1.Checked)
                {
                    _組別細項 = "A";
                }
                else if (radioButton5.Checked)
                {
                    _組別細項 = "B";
                }
                else if (radioButton6.Checked)
                {
                    _組別細項 = "C";
                }
                else if (radioButton7.Checked)
                {
                    _組別細項 = "D";
                }
                else if (radioButton8.Checked)
                {
                    _組別細項 = "E";
                }
                else if (radioButton2.Checked)
                {
                    _組別細項 = "F";
                }
                else if (radioButton9.Checked)
                {
                    _組別細項 = "I";
                }

                else if (radioButton3.Checked)
                {
                    if (string.IsNullOrEmpty(naviTextBox1.Text.Trim()))
                    {
                        MessageBox.Show("起始月份未填 !!", "提示訊息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    _組別細項 = "G";
                }
                else if (radioButton4.Checked)
                {
                    if (string.IsNullOrEmpty(naviTextBox1.Text.Trim()))
                    {
                        MessageBox.Show("起始月份未填 !!", "提示訊息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    _組別細項 = "H";
                }

                if (checkBox4.Checked)
                {
                    _特別科目 = "Y";
                }


                DataTable 月份欄位 = new DataTable();
                月份欄位.Columns.Add("月份1", typeof(String));
                月份欄位.Columns.Add("月份2", typeof(String));
                月份欄位.Columns.Add("月份3", typeof(String));
                月份欄位.Columns.Add("月份4", typeof(String));
                月份欄位.Columns.Add("月份5", typeof(String));
                月份欄位.Columns.Add("月份6", typeof(String));
                月份欄位.Columns.Add("月份7", typeof(String));
                月份欄位.Columns.Add("月份8", typeof(String));
                月份欄位.Columns.Add("月份9", typeof(String));
                月份欄位.Columns.Add("月份10", typeof(String));
                月份欄位.Columns.Add("月份11", typeof(String));
                月份欄位.Columns.Add("月份12", typeof(String));

                string 特別 = "";
                if (_特別科目 == "Y")
                {
                    特別 = "★";
                }

                if (_組別細項 == "A")
                {
                    Ad = new SqlDataAdapter("PUR2007NET_群組列印_大群", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Dt_實際使用.Clear();
                    Ad.Fill(Dt_實際使用);


                    預算申請表NEW Reporter1 = new 預算申請表NEW();
                    //Reporter1.SetDataSource(Dt_明細);
                    Reporter1.Database.Tables[0].SetDataSource(Dt_實際使用);

                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    Reporter1.ParameterFields["第一群"].CurrentValues.AddValue(第一群);
                    Reporter1.ParameterFields["第二群"].CurrentValues.AddValue(第二群);
                    Reporter1.ParameterFields["第三群"].CurrentValues.AddValue(第三群);
                    Reporter1.ParameterFields["第四群"].CurrentValues.AddValue(第四群);
                    Reporter1.ParameterFields["第五群"].CurrentValues.AddValue(第五群);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "B")
                {
                    Ad = new SqlDataAdapter("PUR2007NET_群組列印_大群", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Dt_實際使用.Clear();
                    Ad.Fill(Dt_實際使用);

                    // 前一個月
                    string 前一個月 = string.Empty;
                    if (_BGYM.Substring(4, 2) == "01")
                    {
                        前一個月 = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "12";
                    }

                    else
                    {
                        前一個月 = _BGYM.Substring(0, 4) + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }

                    if (前一個月.Length == 5)
                    {
                        前一個月 = _BGYM.Substring(0, 4) + "0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }


                    Ad = new SqlDataAdapter("PUR_預算使用統計", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value   = 前一個月;
                    Ad.SelectCommand.Parameters.Add("@OPTION", SqlDbType.VarChar).Value = "";
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value  = _特別科目;
                    Dt_預算使用統計.Clear();
                    Ad.Fill(Dt_預算使用統計);

                    DataTable Dt_實際使用1 = Dt_實際使用.Copy();
                    Dt_實際使用1.Columns.Add("Total", typeof(decimal));
                    Dt_實際使用1.Columns.Add("上月合計", typeof(decimal));

                    // 科目11、12丟入上個月實際
                    foreach (DataRow oRow in Dt_實際使用1.Rows)
                    {
                        foreach (DataRow oRows in Dt_預算使用統計.Tables[0].Rows)
                        {
                            if (oRow["BUGNO"].ToString() == oRows["BUGNO"].ToString())
                            {
                                oRow["Total"] = Convert.ToDecimal(oRows["合計"].ToString());
                                oRow["上月合計"]  = Convert.ToDecimal(oRows["上月合計"].ToString());
                            }
                        }
                    }

                    Dt_實際使用1.AcceptChanges();


                    // 科目11、12、15A、54丟入上個月實際
                    DataTable Dt_實際使用2 = Dt_預算使用統計.Tables[0].Copy();

                    // 結束月份加一個月
                    string AA = _BGYM.Substring(4, 2);
                    if (AA == "01")
                    {
                        AA = "12";
                    }
                    else
                    {
                        if ((Convert.ToInt32(AA) - 1).ToString().Length < 2)
                        {
                            AA = "0" + (Convert.ToInt32(AA) - 1).ToString();
                        }
                        else
                        {
                            AA = (Convert.ToInt32(AA) - 1).ToString();
                        }
                    }

                    string BB = _BGYM.Substring(4, 2);

                    if (BB == "01")
                    {
                        BB = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "年" + "12月";
                    }
                    else
                    {
                        if ((Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString().Length < 2)
                        {
                            BB = _BGYM.Substring(0, 4) + "年0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                        else
                        {
                            BB = _BGYM.Substring(0, 4) + "年" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                    }

                    DateTime 前月 = Convert.ToDateTime(_BGYM.Substring(0, 4) + "/" + _BGYM.Substring(4, 2) + "/01");
                    前月 = 前月.AddMonths(-2);

                    string CC = 前月.ToString("MM" + "月");


                    預算實際申請表 Reporter1 = new 預算實際申請表();
                    //Reporter1.SetDataSource(Dt_明細);
                    Reporter1.Database.Tables[0].SetDataSource(Dt_實際使用1);
                    //Reporter1.Database.Tables[1].SetDataSource(Dt_實際使用1);
                    //Reporter1.Database.Tables[2].SetDataSource(Dt_實際使用2);
                    //Reporter1.Database.Tables[3].SetDataSource(Dt_預算使用統計.Tables[6]);
                    //Reporter1.Database.Tables[4].SetDataSource(Dt_實際使用比較);

                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["月份2"].CurrentValues.AddValue(CC);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    Reporter1.ParameterFields["第一群"].CurrentValues.AddValue(第一群);
                    Reporter1.ParameterFields["第二群"].CurrentValues.AddValue(第二群);
                    Reporter1.ParameterFields["第三群"].CurrentValues.AddValue(第三群);
                    Reporter1.ParameterFields["第四群"].CurrentValues.AddValue(第四群);
                    Reporter1.ParameterFields["第五群"].CurrentValues.AddValue(第五群);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "C")
                {
                    // 前一個月
                    string 前一個月 = string.Empty;
                    if (_BGYM.Substring(4, 2) == "01")
                    {
                        前一個月 = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "12";
                    }

                    else
                    {
                        前一個月 = _BGYM.Substring(0, 4) + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }

                    if (前一個月.Length == 5)
                    {
                        前一個月 = _BGYM.Substring(0, 4) + "0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }


                    Ad = new SqlDataAdapter("PUR_預算使用統計", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value   = 前一個月;
                    Ad.SelectCommand.Parameters.Add("@OPTION", SqlDbType.VarChar).Value = "";
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value  = _特別科目;
                    Dt_預算使用統計.Clear();
                    Ad.Fill(Dt_預算使用統計);

                    // 科目11、12、15A、54丟入上個月實際
                    DataTable Dt_實際使用2 = Dt_預算使用統計.Tables[0].Copy();

                    // 結束月份加一個月
                    string AA = _BGYM.Substring(4, 2);
                    if (AA == "01")
                    {
                        AA = "12";
                    }
                    else
                    {
                        if ((Convert.ToInt32(AA) - 1).ToString().Length < 2)
                        {
                            AA = "0" + (Convert.ToInt32(AA) - 1).ToString();
                        }
                        else
                        {
                            AA = (Convert.ToInt32(AA) - 1).ToString();
                        }
                    }

                    string BB = _BGYM.Substring(4, 2);
                    if (BB == "01")
                    {
                        BB = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "年" + "12月";
                    }
                    else
                    {
                        if ((Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString().Length < 2)
                        {
                            BB = _BGYM.Substring(0, 4) + "年0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                        else
                        {
                            BB = _BGYM.Substring(0, 4) + "年" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                    }

                    實際申請表 Reporter1 = new 實際申請表();
                    Reporter1.Database.Tables[0].SetDataSource(Dt_實際使用2);

                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["月份2"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "D")
                {
                    // 前一個月
                    string 前一個月 = string.Empty;
                    if (_BGYM.Substring(4, 2) == "01")
                    {
                        前一個月 = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "12";
                    }

                    else
                    {
                        前一個月 = _BGYM.Substring(0, 4) + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }

                    if (前一個月.Length == 5)
                    {
                        前一個月 = _BGYM.Substring(0, 4) + "0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }


                    Ad = new SqlDataAdapter("PUR_預算使用統計", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value   = 前一個月;
                    Ad.SelectCommand.Parameters.Add("@OPTION", SqlDbType.VarChar).Value = "";
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value  = _特別科目;
                    Dt_預算使用統計.Clear();
                    Ad.Fill(Dt_預算使用統計);

                    // 結束月份加一個月
                    string AA = _BGYM.Substring(4, 2);
                    if (AA == "01")
                    {
                        AA = "12";
                    }
                    else
                    {
                        if ((Convert.ToInt32(AA) - 1).ToString().Length < 2)
                        {
                            AA = "0" + (Convert.ToInt32(AA) - 1).ToString();
                        }
                        else
                        {
                            AA = (Convert.ToInt32(AA) - 1).ToString();
                        }
                    }

                    string BB = _BGYM.Substring(4, 2);
                    if (BB == "01")
                    {
                        BB = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "年" + "12月";
                    }
                    else
                    {
                        if ((Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString().Length < 2)
                        {
                            BB = _BGYM.Substring(0, 4) + "年0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                        else
                        {
                            BB = _BGYM.Substring(0, 4) + "年" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                    }

                    總經理排序 Reporter1 = new 總經理排序();
                    Reporter1.Database.Tables[0].SetDataSource(Dt_預算使用統計.Tables[6]);

                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["月份2"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "E")
                {
                    Ad = new SqlDataAdapter("PUR2007NET_群組列印_大群", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Dt_實際使用.Clear();
                    Ad.Fill(Dt_實際使用);

                    Ad = new SqlDataAdapter("PUR2007NET_群組列印_大群_T", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Dt_實際使用比較.Clear();
                    Ad.Fill(Dt_實際使用比較);

                    string BB = _BGYM.Substring(4, 2);
                    if (BB == "01")
                    {
                        BB = "12月";
                    }
                    else
                    {
                        if ((Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString().Length < 2)
                        {
                            BB = (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                        else
                        {
                            BB = (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                    }


                    預算比較 Reporter1 = new 預算比較();
                    Reporter1.Database.Tables[0].SetDataSource(Dt_實際使用);
                    Reporter1.Database.Tables[1].SetDataSource(Dt_實際使用比較);

                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(BB);

                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "F")
                {
                    Ad = new SqlDataAdapter("PUR2007NET_群組列印_大群", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Dt_實際使用.Clear();
                    Ad.Fill(Dt_實際使用);


                    string 前一個月 = string.Empty;
                    if (_BGYM.Substring(4, 2) == "01")
                    {
                        前一個月 = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "12";
                    }
                    else
                    {
                        前一個月 = _BGYM.Substring(0, 4) + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }

                    if (前一個月.Length == 5)
                    {
                        前一個月 = _BGYM.Substring(0, 4) + "0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString();
                    }


                    Ad = new SqlDataAdapter("PUR_預算使用統計", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value   = 前一個月;
                    Ad.SelectCommand.Parameters.Add("@OPTION", SqlDbType.VarChar).Value = "";
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value  = _特別科目;
                    Dt_預算使用統計.Clear();
                    Ad.Fill(Dt_預算使用統計);


                    string CC = _BGYM.Substring(4, 2) + "月預算";

                    string DD = _BGYM.Substring(4, 2);
                    if (DD == "01")
                    {
                        DD = "12月實際";
                    }
                    else
                    {
                        if ((Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString().Length < 2)
                        {
                            DD = "0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月實際";
                        }
                        else
                        {
                            DD = (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月實際";
                        }
                    }

                    // 加入群組的科目明細
                    DataTable 群組資料 = Dt_預算使用統計.Tables[2].Copy();
                    群組資料.Columns.Add("第一群", typeof(decimal));
                    群組資料.Columns.Add("第二群", typeof(decimal));
                    群組資料.Columns.Add("第三群", typeof(decimal));
                    群組資料.Columns.Add("第四群", typeof(decimal));
                    群組資料.Columns.Add("第五群", typeof(decimal));
                    群組資料.Columns.Add("群組合計", typeof(decimal));

                    foreach (DataRow oRow in 群組資料.Rows)
                    {
                        foreach (DataRow oRows in Dt_實際使用.Rows)
                        {
                            if (oRow["BUGNO"].ToString() == oRows["BUGNO"].ToString())
                            {
                                oRow["第一群"]  = oRows["第一群"].ToString();
                                oRow["第二群"]  = oRows["第二群"].ToString();
                                oRow["第三群"]  = oRows["第三群"].ToString();
                                oRow["第四群"]  = oRows["第四群"].ToString();
                                oRow["第五群"]  = oRows["第五群"].ToString();
                                oRow["群組合計"] = oRows["群組合計"].ToString();
                            }
                        }
                    }
                    群組資料.AcceptChanges();

                    DataTable AA = 群組資料.Select("BUGNO = '999'").CopyToDataTable();
                    int       預算 = Convert.ToInt32(AA.Rows[0]["群組合計"].ToString());

                    A3明細總表_NEW Reporter1 = new A3明細總表_NEW();
                    //Reporter1.SetDataSource(Dt_明細);
                    Reporter1.Database.Tables[0].SetDataSource(群組資料);
                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(CC);
                    Reporter1.ParameterFields["月份2"].CurrentValues.AddValue(DD);
                    Reporter1.ParameterFields["預算"].CurrentValues.AddValue(預算);
                    Reporter1.ParameterFields["實際"].CurrentValues.AddValue(Dt_預算使用統計.Tables[3].Rows[0]["實際"]);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "G")
                {
                    // 下個月
                    string EDATE = "";
                    if (_BGYM.Substring(4, 2) == "12")
                    {
                        EDATE = (Convert.ToInt32(_BGYM.Substring(0, 4)) + 1).ToString() + "01";
                    }
                    else
                    {
                        EDATE = (Convert.ToInt32(_BGYM) + 1).ToString();
                    }


                    Ad = new SqlDataAdapter("PUR2007NET_實際預算", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@起始日", SqlDbType.VarChar).Value   = _起始日;
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = EDATE;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Ds_實際預算.Clear();
                    Ad.Fill(Ds_實際預算);


                    月份欄位.Rows.Add();

                    string 月份範圍 = "";

                    int j = 1;
                    foreach (DataRow item in Ds_實際預算.Tables[0].Rows)
                    {
                        if (j == 1)
                        {
                            月份範圍 = item["月份"].ToString().Substring(0, 4) + "年" + item["月份"].ToString().Substring(4, 2) + "月";
                        }

                        if (j == Ds_實際預算.Tables[0].Rows.Count)
                        {
                            月份範圍 += "~" + item["月份"].ToString().Substring(0, 4) + "年" + item["月份"].ToString().Substring(4, 2) + "月";
                        }

                        月份欄位.Rows[0]["月份" + j.ToString()] = item["月份"].ToString().Substring(4, 2) + "月";
                        //月份欄位.Rows[0]["預算" + j.ToString()] = item["月份"].ToString().Substring(4, 2) + "月預算";
                        j++;
                    }

                    實際使用報表_季 Reporter1 = new 實際使用報表_季();
                    //Reporter1.SetDataSource(Dt_明細);
                    Reporter1.Database.Tables[0].SetDataSource(月份欄位);
                    Reporter1.Database.Tables[1].SetDataSource(Ds_實際預算.Tables[1]);
                    Reporter1.Database.Tables[2].SetDataSource(Ds_實際預算.Tables[3]);
                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(月份範圍);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    //Reporter1.ParameterFields["月份"].CurrentValues.AddValue(pop.BGYM.Substring(0, 4) + "年" + pop.BGYM.Substring(4, 2) + "月");
                    //Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(BB);
                    //Reporter1.ParameterFields["月份2"].CurrentValues.AddValue(BB);

                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "H")
                {
                    string EDATE = "";
                    if (_BGYM.Substring(4, 2) == "12")
                    {
                        EDATE = (Convert.ToInt32(_BGYM.Substring(0, 4)) + 1).ToString() + "01";
                    }
                    else
                    {
                        EDATE = (Convert.ToInt32(_BGYM) + 1).ToString();
                    }


                    Ad = new SqlDataAdapter("PUR2007NET_群實際", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@起始日", SqlDbType.VarChar).Value   = _起始日;
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = EDATE;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Ds_實際預算.Clear();
                    Ad.Fill(Ds_實際預算);

                    月份欄位.Rows.Add();
                    string 月份範圍 = "";

                    int j = 1;
                    foreach (DataRow item in Ds_實際預算.Tables[0].Rows)
                    {
                        if (j == 1)
                        {
                            月份範圍 = item["月份"].ToString().Substring(0, 4) + "年" + item["月份"].ToString().Substring(4, 2) + "月";
                        }

                        if (j == Ds_實際預算.Tables[0].Rows.Count)
                        {
                            月份範圍 += "~" + item["月份"].ToString().Substring(0, 4) + "年" + item["月份"].ToString().Substring(4, 2) + "月";
                        }

                        月份欄位.Rows[0]["月份" + j.ToString()] = item["月份"].ToString().Substring(4, 2) + "月";
                        //月份欄位.Rows[0]["預算" + j.ToString()] = item["月份"].ToString().Substring(4, 2) + "月預算";
                        j++;
                    }

                    月份群_季 Reporter1 = new 月份群_季();
                    //Reporter1.SetDataSource(Dt_明細);
                    Reporter1.Database.Tables[0].SetDataSource(月份欄位);
                    Reporter1.Database.Tables[1].SetDataSource(Ds_實際預算.Tables[1]);
                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(月份範圍);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
                else if (_組別細項 == "I")
                {
                    Ad = new SqlDataAdapter("PUR2007NET_BUGDA", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value  = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value = _特別科目;
                    Dt_實際使用.Clear();
                    Ad.Fill(Dt_實際使用);


                    Ad = new SqlDataAdapter("PUR_預算使用統計", GonGinVariable.SqlConnectString);
                    Ad.SelectCommand.CommandType    = CommandType.StoredProcedure;
                    Ad.SelectCommand.CommandTimeout = 600;
                    Ad.SelectCommand.Parameters.Clear();
                    Ad.SelectCommand.Parameters.Add("@BGYM", SqlDbType.VarChar).Value   = _BGYM;
                    Ad.SelectCommand.Parameters.Add("@OPTION", SqlDbType.VarChar).Value = "";
                    Ad.SelectCommand.Parameters.Add("@SBGNO", SqlDbType.VarChar).Value  = _特別科目;
                    Dt_預算使用統計.Clear();
                    Ad.Fill(Dt_預算使用統計);

                    DataTable Dt_實際使用1 = Dt_實際使用.Copy();
                    Dt_實際使用1.Columns.Add("Total", typeof(decimal));
                    Dt_實際使用1.Columns.Add("上月合計", typeof(decimal));
                    Dt_實際使用1.Columns.Add("預算小計", typeof(decimal));
                    Dt_實際使用1.Columns.Add("實際小計", typeof(decimal));
                    // 科目11、12丟入上個月實際
                    foreach (DataRow oRow in Dt_實際使用1.Rows)
                    {
                        foreach (DataRow oRows in Dt_預算使用統計.Tables[0].Rows)
                        {
                            if (oRow["BUGNO"].ToString() == oRows["BUGNO"].ToString())
                            {
                                oRow["Total"] = Convert.ToDecimal(oRows["合計"].ToString());
                                if (oRow["小計"].ToString() != "0")
                                {
                                    oRow["預算小計"] = Convert.ToDecimal(oRow["小計"].ToString());
                                }
                                if (oRows["小計"].ToString() != "0")
                                {
                                    oRow["實際小計"] = Convert.ToDecimal(oRows["小計"].ToString());
                                }
                            }
                        }
                    }

                    Dt_實際使用1.AcceptChanges();


                    // 科目11、12、15A、54丟入上個月實際
                    DataTable Dt_實際使用2 = Dt_預算使用統計.Tables[0].Copy();

                    // 結束月份加一個月
                    string AA = _BGYM.Substring(4, 2);
                    if (AA == "01")
                    {
                        AA = "12";
                    }
                    else
                    {
                        if ((Convert.ToInt32(AA) - 1).ToString().Length < 2)
                        {
                            AA = "0" + (Convert.ToInt32(AA) - 1).ToString();
                        }
                        else
                        {
                            AA = (Convert.ToInt32(AA) - 1).ToString();
                        }
                    }

                    string BB = _BGYM.Substring(4, 2);

                    if (BB == "01")
                    {
                        BB = (Convert.ToInt32(_BGYM.Substring(0, 4)) - 1).ToString() + "年" + "12月";
                    }
                    else
                    {
                        if ((Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString().Length < 2)
                        {
                            BB = _BGYM.Substring(0, 4) + "年0" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                        else
                        {
                            BB = _BGYM.Substring(0, 4) + "年" + (Convert.ToInt32(_BGYM.Substring(4, 2)) - 1).ToString() + "月";
                        }
                    }

                    //DateTime 前月 = Convert.ToDateTime(_BGYM.Substring(0, 4) + "/" + _BGYM.Substring(4, 2) + "/01");
                    //前月 = 前月.AddMonths(-2);

                    //string CC = 前月.ToString("MM" + "月");


                    預算實際申請表02 Reporter1 = new 預算實際申請表02();
                    Reporter1.Database.Tables[0].SetDataSource(Dt_實際使用1);

                    Form ReportForm = new Form();
                    CrystalDecisions.Windows.Forms.CrystalReportViewer CryReport = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
                    CryReport.ReportSource = Reporter1;
                    CryReport.Dock         = DockStyle.Fill;
                    Reporter1.ParameterFields["列印人"].CurrentValues.AddValue(GonGinVariable.ApplicationUserName);
                    Reporter1.ParameterFields["CompanyName"].CurrentValues.AddValue(GonGinVariable.公司名稱);
                    Reporter1.ParameterFields["月份"].CurrentValues.AddValue(_BGYM.Substring(0, 4) + "年" + _BGYM.Substring(4, 2) + "月");
                    Reporter1.ParameterFields["月份1"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["月份2"].CurrentValues.AddValue(BB);
                    Reporter1.ParameterFields["特別"].CurrentValues.AddValue(特別);
                    Reporter1.ParameterFields["第一群"].CurrentValues.AddValue(第一群);
                    Reporter1.ParameterFields["第二群"].CurrentValues.AddValue(第二群);
                    Reporter1.ParameterFields["第三群"].CurrentValues.AddValue(第三群);
                    Reporter1.ParameterFields["第四群"].CurrentValues.AddValue(第四群);
                    Reporter1.ParameterFields["第五群"].CurrentValues.AddValue(第五群);
                    ReportForm.Controls.Add(CryReport);
                    ReportForm.WindowState = FormWindowState.Maximized;
                    ReportForm.Show();
                }
            }
            else
            {
                this.DialogResult = DialogResult.Yes;
            }
        }