コード例 #1
0
        protected override void Initialize()
        {
            textBox2.Enabled = false;
            dbHost           = AppSetting.LoadInitialSetting("DB_IP", "127.0.0.1");
            dbUser           = AppSetting.LoadInitialSetting("DB_USER", "root");
            dbPass           = AppSetting.LoadInitialSetting("DB_PASSWORD", "123");
            dbName           = AppSetting.LoadInitialSetting("DB_NAME", "huachun");
            SQL = new MySQL(dbHost, dbUser, dbPass, dbName);

            numbers = SQL.Read1DArrayNoCondition_SQL_Data(DB_No, DB_TableName);
            names   = SQL.Read1DArrayNoCondition_SQL_Data(DB_Name, DB_TableName);
            units   = SQL.Read1DArrayNoCondition_SQL_Data("unit", DB_TableName);//unit不是共通的  所以獨立出來寫

            dataTable = new DataTable("MyNewTable");
            dataTable.Columns.Add(rowNo, typeof(String));
            dataTable.Columns.Add(rowName, typeof(String));
            dataTable.Columns.Add("單位", typeof(String));
            dataGridView1.DataSource         = dataTable;
            dataGridView1.ReadOnly           = true;
            dataGridView1.AllowUserToAddRows = false;
            dataGridView1.MultiSelect        = false;

            DataRow dataRow;

            for (int i = 0; i < numbers.Length; i++)
            {
                dataRow          = dataTable.NewRow();
                dataRow[rowNo]   = numbers[i];
                dataRow[rowName] = SQL.Read_SQL_data(DB_Name, DB_TableName, DB_No + " = '" + numbers[i] + "'");
                dataRow["單位"]    = SQL.Read_SQL_data("unit", DB_TableName, DB_No + " = '" + numbers[i] + "'");
                dataTable.Rows.Add(dataRow);
            }
        }
コード例 #2
0
        protected virtual void textBox1_TextChanged(object sender, EventArgs e)
        {
            dataTable.Clear();

            ArrayList array = new ArrayList();

            for (int i = 0; i < numbers.Length; i++)
            {
                if (numbers[i].Contains(textBox1.Text))
                {
                    array.Add(numbers[i]);
                }
            }


            DataRow dataRow;

            for (int i = 0; i < array.Count; i++)
            {
                dataRow          = dataTable.NewRow();
                dataRow[rowNo]   = array[i];
                dataRow[rowName] = SQL.Read_SQL_data(DB_Name, DB_TableName, DB_No + " = '" + array[i] + "'");
                dataTable.Rows.Add(dataRow);
            }
        }
コード例 #3
0
        private void RefreshDatagridview()
        {
            dataTable.Clear();

            string[]   dateArr = SQL.Read1DArrayNoCondition_SQL_Data("date", "holiday");
            DateTime[] dates   = new DateTime[dateArr.Length];
            for (int i = 0; i < dateArr.Length; i++)
            {
                dates[i] = Functions.TransferSQLDateToDateTime(dateArr[i]);
            }
            Array.Sort(dates);

            DataRow dataRow;

            for (int i = 0; i < dates.Length; i++)
            {
                dataRow       = dataTable.NewRow();
                dataRow["日期"] = dates[i].Year.ToString() + "/" + dates[i].Month.ToString() + "/" + dates[i].Day.ToString();
                dataRow["星期"] = Functions.ComputeDayOfWeek(dates[i]);
                dataRow["理由"] = SQL.Read_SQL_data("reason", "holiday", "date = '" + dates[i].Year.ToString() + "-" + dates[i].Month.ToString() + "-" + dates[i].Day.ToString() + "'");
                string working = SQL.Read_SQL_data("working", "holiday", "date = '" + dates[i].Year.ToString() + "-" + dates[i].Month.ToString() + "-" + dates[i].Day.ToString() + "'");
                if (working == "1")
                {
                    dataRow["放假/補班"] = "放假";
                }
                else
                {
                    dataRow["放假/補班"] = "補班";
                }
                dataTable.Rows.Add(dataRow);
            }
        }
コード例 #4
0
        public ClassExcelGenerator(string projectNo, string savePath, int type)
        {
            dbHost = AppSetting.LoadInitialSetting("DB_IP", "127.0.0.1");
            dbUser = AppSetting.LoadInitialSetting("DB_USER", "root");
            dbPass = AppSetting.LoadInitialSetting("DB_PASSWORD", "123");
            dbName = AppSetting.LoadInitialSetting("DB_NAME", "huachun");
            SQL    = new MySQL(dbHost, dbUser, dbPass, dbName);

            if (type == 0)
            {
                string computeType = SQL.Read_SQL_data("computetype", "project_info", "project_no = '" + projectNo + "'");
                g_ComputeType = computeType;

                string computeHoliday = SQL.Read_SQL_data("holiday", "project_info", "project_no = '" + projectNo + "'");
                g_ComputeHoliday = computeHoliday;


                g_ProjectNo = projectNo;
                string path  = Directory.GetCurrentDirectory();
                var    xlApp = new Excel.Application();
                xlWorkBook  = xlApp.Workbooks.Open(path + "\\晴雨暨工期表.xls");
                xlWorkSheet = xlWorkBook.Sheets[1];

                //int dateIndex = 1;
                //int month = 12;

                //xlWorkSheet.Shapes.AddPicture(@"D:\\上午雨無框.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 34 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 174 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 21, 12);
                //xlWorkSheet.Shapes.AddPicture(@"D:\\下午雨無框.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 34 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 184 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 21, 12);
                //xlWorkSheet.Shapes.AddPicture(@"D:\\補假.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 27 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 167 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 35, 35);
                //xlWorkSheet.Shapes.AddPicture(@"D:\\選舉.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 27 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 167 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 35, 35);
                //xlWorkSheet.Shapes.AddPicture(@"D:\\全日停電.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 27 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 167 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 35, 35);
                //xlWorkSheet.Shapes.AddPicture(@"D:\\下午停工.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 39 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 187 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 11, 11);
                //xlWorkSheet.Shapes.AddPicture(@"D:\\下午停電.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 35 + Convert.ToInt32(Math.Round(28.5 * (dateIndex - 1))), 180 + Convert.ToInt32(Math.Round(39.75 * (month - 1))), 21, 21);

                g_ProjectName           = SQL.Read_SQL_data("project_name", "project_info", "project_no = '" + g_ProjectNo + "'");
                xlWorkSheet.Cells[1, 1] = g_ProjectName;
                string startDate = SQL.Read_SQL_data("startdate", "project_info", "project_no = '" + g_ProjectNo + "'");
                string endDate   = SQL.Read_SQL_data("date", "dailyreport", "project_no = '" + g_ProjectNo + "' ORDER BY date DESC ");//把日報表有填的日期的最後一天當enddate

                WriteDataIntoExcel(Functions.TransferSQLDateToDateTime(startDate), Functions.TransferSQLDateToDateTime(endDate));

                //xlWorkBook.SaveAs("D:\\test" + width.ToString() + "_" + height + "_" + range + ".xls");
                xlWorkBook.SaveAs(savePath);
                xlWorkBook.Close(true);
                xlApp.Quit();

                Marshal.ReleaseComObject(xlApp);
            }
            else if (type == 1)
            {
            }
        }
コード例 #5
0
        private void btnLoginOk_Click(object sender, EventArgs e)
        {
            if (textBoxAccount.Text == string.Empty)
            {
                MessageBox.Show("請輸入使用者帳號", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (textBoxPassword.Text == string.Empty)
            {
                MessageBox.Show("請輸入使用者密碼", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                string member = SQL.Read_SQL_data("name", "member", "account = '" + textBoxAccount.Text + "' AND password = '******'");

                if (member == string.Empty)
                {
                    DialogResult result = MessageBox.Show("密碼與帳號不符", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    if (result == DialogResult.OK)
                    {
                        textBoxPassword.Text = string.Empty;
                    }
                }
                else
                {
                    DialogResult result = MessageBox.Show(member + "您好", "歡迎", MessageBoxButtons.OK);
                    if (result == DialogResult.OK)
                    {
                        this.mainForm.Login();
                        this.Close();
                    }
                }
            }
        }
コード例 #6
0
        public void LoadProjectInfo(string projectNo)
        {
            this.labelProject.Text = SQL.Read_SQL_data("project_name", "project_info", "project_no = '" + projectNo + "'");
            g_ProjectNo            = projectNo;

            this.MenuItemDailyReport.Enabled = true;
            this.MenuItemQuery.Enabled       = true;
        }
コード例 #7
0
        public string GetCondition(DateTime today)
        {
            if (restOnSaturday == true && restOnSunday == true)//週休二日且遇到星期六或星期天
            {
                if (today.DayOfWeek == DayOfWeek.Sunday)
                {
                    return("週休二日");
                }

                if (today.DayOfWeek == DayOfWeek.Saturday)
                {
                    for (int j = 0; j < arrayWorking.Count; j++)
                    {
                        if (today.Date.Equals(((DateTime)arrayWorking[j]).Date))//原本星期六不施工 但剛好遇到補班日
                        {
                            return(SQL.Read_SQL_data("reason", "holiday", "date = '" + Functions.TransferDateTimeToSQL(today) + "'"));
                        }
                    }

                    return("週休二日");
                }
            }

            if (restOnSaturday == false && restOnSunday == true)//週休一日且遇到星期天
            {
                if (today.DayOfWeek == DayOfWeek.Sunday)
                {
                    return("週休一日");
                }
            }

            if (restOnHoliday == true)//國定假日不施工
            {
                for (int j = 0; j < arrayHoliday.Count; j++)
                {
                    if (today.Date.Equals(((DateTime)arrayHoliday[j]).Date))
                    {
                        return(SQL.Read_SQL_data("reason", "holiday", "date = '" + Functions.TransferDateTimeToSQL(today) + "'"));
                    }
                }
            }


            return("");
        }
コード例 #8
0
 private void button3_Click(object sender, EventArgs e)
 {
     string dbHost      = "192.168.1.104";
     string dbUser      = "******";
     string dbPass      = "******";
     string dbName      = "huachun";
     MySQL  SQL         = new MySQL(dbHost, dbUser, dbPass, dbName);
     string computeType = SQL.Read_SQL_data("computetype", "project_info", "project_no = 'w04'");
     bool   stop        = true;
 }
コード例 #9
0
        public void LoadProjectInfo(string number)
        {
            g_ProjectNo = number;
            dataTableStatistic.Clear();


            DayCompute dayCompute = new DayCompute();
            string computeType = SQL.Read_SQL_data("computetype", "project_info", "project_no = '" + g_ProjectNo + "'");
            string countHoliday = SQL.Read_SQL_data("holiday", "project_info", "project_no = '" + g_ProjectNo + "'");


            if (computeType == "1")//限期完工  日曆天
            {
                this.label1.Text = "工期計算方式為限期完工";
            }
            else if (computeType == "2")
            {
                this.label1.Text = "工期計算方式為日曆天";
            }
            else if (computeType == "3")//工作天 無休
            {
                dayCompute.restOnSaturday = false;
                dayCompute.restOnSunday = false;
                this.label1.Text = "工期計算方式為工作工,無週休二日";
            }
            else if (computeType == "4")//工作天 周休一日
            {
                dayCompute.restOnSaturday = false;
                dayCompute.restOnSunday = true;
                this.label1.Text = "工期計算方式為工作工,週休一日";
            }
            else if (computeType == "5")//工作天 周休二日
            {
                dayCompute.restOnSaturday = true;
                dayCompute.restOnSunday = true;
                this.label1.Text = "工期計算方式為工作工,週休二日";
            }

            if (countHoliday == "1")
            {
                dayCompute.restOnHoliday = true;
                this.label1.Text += ",國定假日不施工";
            }
            else if (countHoliday == "0")
            {
                dayCompute.restOnHoliday = false;
                this.label1.Text += ",國定假日照常施工";
            }

            string rainyDayCountType = SQL.Read_SQL_data("rainyday", "project_info", "project_no = '" + g_ProjectNo + "'");
            if (rainyDayCountType == "1")
            {
                this.label3.Text += "需豪雨才不計工期";
            }
            else if (rainyDayCountType == "0")
            {
                this.label3.Text += "下雨即不計工期";
            }

            float originalTotalDuration = Convert.ToSingle(SQL.Read_SQL_data("contractduration", "project_info", "project_no = '" + g_ProjectNo + "'"));
            float originalTotalDays = Convert.ToSingle(SQL.Read_SQL_data("contractdays", "project_info", "project_no = '" + g_ProjectNo + "'"));
            DateTime originalFinishDate = Functions.TransferSQLDateToDateTime(SQL.Read_SQL_data("contract_finishdate", "project_info", "project_no = '" + g_ProjectNo + "'"));
            string[] extendDurationStartDates = SQL.Read1DArray_SQL_Data("extendstartdate", "extendduration", "project_no = '" + g_ProjectNo + "'");
            float accumulateExtendDurations = 0;

            string startDate = SQL.Read_SQL_data("startdate", "project_info", "project_no = '" + g_ProjectNo + "'");
            DTStartDate = Functions.TransferSQLDateToDateTime(startDate);
            DataRow dataRow;

            int i = 0;
            bool stop = false;
            while (!stop)
            {

                DateTime dateToday = DTStartDate.AddDays(i);

                dataRow = dataTableStatistic.NewRow();


                dataRow["日期"] = dateToday.ToString("yyyy/MM/dd");
                dataRow["開工迄今"] = (i + 1).ToString();
                dataRow["星期"] = Functions.ComputeDayOfWeek(dateToday);
                //Image img = Image.FromFile("D:\\12Small.jpg");
                //dataRow["農曆"] = imageToByteArray(img);
                dataRow["節日"] = dayCompute.GetCondition(dateToday);
                string morningWeather = SQL.Read_SQL_data("morning_weather", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(dateToday) + "'");
                dataRow["上午天氣"] = (morningWeather == string.Empty) ? "無資料" : morningWeather;
                string afternoonWeather = SQL.Read_SQL_data("afternoon_weather", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(dateToday) + "'");
                dataRow["下午天氣"] = (afternoonWeather == string.Empty) ? "無資料" : afternoonWeather;
                string morningCondition = SQL.Read_SQL_data("morning_condition", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(dateToday) + "'");
                dataRow["上午人為因素"] = (morningCondition == string.Empty) ? "無資料" : morningCondition;
                string afternoonCondition = SQL.Read_SQL_data("afternoon_condition", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(dateToday) + "'");
                dataRow["下午人為因素"] = (afternoonCondition == string.Empty) ? "無資料" : afternoonCondition;
                
                
                string nonCountingToday = SQL.Read_SQL_data("nonecounting", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(dateToday) + "'");



                if (nonCountingToday == "0.5")
                    dayCompute.AddNotWorking(dateToday, 0);
                else if (nonCountingToday == "1")
                {
                    dayCompute.AddNotWorking(dateToday, 0);
                    dayCompute.AddNotWorking(dateToday, 1);
                }

                dataRow["本日不計工期"] = dayCompute.GetWorkingDayNonCounting(dateToday);

                float nonCountingTotal = dayCompute.CountTotalNotWorkingDay(DTStartDate, dateToday);

                dataRow["累計不計工期"] = nonCountingTotal;
                dataRow["累計工期"] = i + 1 - nonCountingTotal;


                dataRow["原剩餘工期"] = originalTotalDuration - 1 - i + dayCompute.CountNotWorkingDayWithoutEverydayCondition(DTStartDate, dateToday);
                dataRow["原剩餘天數"] = originalTotalDays - 1 - i;
                dataRow["原完工日"] = originalFinishDate.ToString("yyyy/MM/dd");


                string extendDuration = SQL.Read_SQL_data("extendduration", "extendduration", "project_no = '" + g_ProjectNo + "' AND extendstartdate = '" + Functions.TransferDateTimeToSQL(dateToday) + "'");
                if (extendDuration != string.Empty)
                {
                    accumulateExtendDurations += Convert.ToSingle(extendDuration);
                    dataRow["追加工期"] = extendDuration;
                }

                float modifiedRestDuration = originalTotalDuration - 1 - i + nonCountingTotal + accumulateExtendDurations;
                dataRow["變動剩餘工期"] = modifiedRestDuration;


                DateTime modifiedFinishDate = dayCompute.CountByDuration(dateToday.AddDays(1), modifiedRestDuration);
                dataRow["變動完工日"] = modifiedFinishDate.ToString("yyyy/MM/dd");
                if (dateToday.CompareTo(modifiedFinishDate) == 0)
                    stop = true;
                dataRow["變動剩餘天數"] = modifiedFinishDate.Subtract(dateToday).Days;

                dataRow["原百分比"] = "";
                dataTableStatistic.Rows.Add(dataRow);
                i++;
            }
            //dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red;
        }
コード例 #10
0
        public virtual void LoadProjectInfo(string projectNo)
        {
            //專案編號
            this.textBoxProjectNo.Text = projectNo;
            g_ProjectNumber            = projectNo;
            if (this.textBoxProjectNo.Text != string.Empty)
            {
                EnableAll();
            }
            else
            {
                return;
            }



            //專案名稱
            this.textBoxProjectName.Text = SQL.Read_SQL_data("project_name", "project_info", "project_no ='" + projectNo + "'");
            //開工日期
            g_StartDate          = SQL.Read_SQL_data("startdate", "project_info", "project_no ='" + projectNo + "'");
            this.dateStart.Value = Functions.TransferSQLDateToDateTime(g_StartDate);
            //契約工期
            this.textBoxContractDuration.Text = SQL.Read_SQL_data("contractduration", "project_info", "project_no ='" + projectNo + "'");
            //契約天數
            this.textBoxContractDays.Text = SQL.Read_SQL_data("contractdays", "project_info", "project_no ='" + projectNo + "'");

            if (SQL.Read_SQL_data("date", "dailyreport", "project_no = '" + projectNo + "'") != string.Empty)
            {
                DateTime lastInputDate = Functions.TransferSQLDateToDateTime(SQL.Read_SQL_data("date", "dailyreport", "project_no = '" + projectNo + "' ORDER BY date DESC"));
                this.dateToday.Value = lastInputDate.AddDays(1);
            }

            LoadInfoByDate(g_ProjectNumber);

            //追加工期後總計天數
            g_ComputeType       = SQL.Read_SQL_data("computetype", "project_info", "project_no = '" + projectNo + "'");
            g_CountHoliday      = SQL.Read_SQL_data("holiday", "project_info", "project_no = '" + projectNo + "'");
            g_RainydayCountType = SQL.Read_SQL_data("rainyday", "project_info", "project_no = '" + projectNo + "'");

            if (g_ProjectNumber != null && g_ComputeType != null && g_CountHoliday != null && g_StartDate != null)
            {
                Compute(projectNo, g_ComputeType, g_CountHoliday, g_StartDate);
            }
        }
コード例 #11
0
        private void WriteDataIntoExcel(DateTime dateStart, DateTime dateEnd)
        {
            int yearStart = dateStart.Year;
            int yearEnd   = dateEnd.Year;

            for (int year = yearStart; year <= yearEnd; year++)
            {
                xlWorkBook.Sheets[xlWorkBook.Sheets.Count].Name = (year - 1911).ToString() + "年度" + g_ProjectName + "工期晴雨表";

                xlWorkSheet.Cells[5, 2] = (year - 1911).ToString() + "年";
                for (int month = 1; month <= 12; month++)
                {
                    float daysInMonth     = 0;
                    float holidaysInMonth = 0;
                    float weatherNonWorkingDaysInMonth   = 0;
                    float conditionNonWorkingDaysInMonth = 0;


                    #region
                    int dayNumbers = 0;
                    switch (month)
                    {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12:
                        dayNumbers = 31;
                        break;

                    case 2:
                        if (year == 2016 || year == 2020 || year == 2024 || year == 2028 || year == 2032 || year == 2036)
                        {
                            dayNumbers = 29;
                        }
                        else
                        {
                            dayNumbers = 28;
                        }
                        break;

                    case 4:
                    case 6:
                    case 9:
                    case 11:
                        dayNumbers = 30;
                        break;
                    }
                    #endregion


                    int weekCount = 0;
                    for (int day = 1; day <= dayNumbers; day++)
                    {
                        DateTime date = new DateTime(year, month, day);
                        #region 計算dateIndex
                        int dateIndex = 1;
                        switch (date.DayOfWeek)
                        {
                        case DayOfWeek.Sunday:
                            dateIndex = 1;
                            if (day == 1)
                            {
                                weekCount = 0;
                            }
                            else
                            {
                                weekCount++;
                            }
                            break;

                        case DayOfWeek.Monday:
                            dateIndex = 2;
                            break;

                        case DayOfWeek.Tuesday:
                            dateIndex = 3;
                            break;

                        case DayOfWeek.Wednesday:
                            dateIndex = 4;
                            break;

                        case DayOfWeek.Thursday:
                            dateIndex = 5;
                            break;

                        case DayOfWeek.Friday:
                            dateIndex = 6;
                            break;

                        case DayOfWeek.Saturday:
                            dateIndex = 7;
                            break;
                        }
                        dateIndex += weekCount * 7;
                        string holidayReason = SQL.Read_SQL_data("reason", "holiday", "date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                        if (holidayReason != string.Empty)
                        {
                            xlWorkSheet.Cells[8 + month * 2, 1 + dateIndex] = holidayReason;
                        }
                        else
                        {
                            xlWorkSheet.Cells[8 + month * 2, 1 + dateIndex] = day;
                        }
                        #endregion


                        string morningWeather     = SQL.Read_SQL_data("morning_weather", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                        string afternoonWeather   = SQL.Read_SQL_data("afternoon_weather", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                        string morningCondition   = SQL.Read_SQL_data("morning_condition", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                        string afternoonCondition = SQL.Read_SQL_data("afternoon_condition", "dailyreport", "project_no = '" + g_ProjectNo + "' AND date = '" + Functions.TransferDateTimeToSQL(date) + "'");


                        if (date.CompareTo(dateStart) >= 0 && date.CompareTo(dateEnd) <= 0)//開工日期之後才需要貼晴雨圖
                        {
                            daysInMonth += 1;

                            #region 例假日
                            if (g_ComputeType == "1")//工期計算方式為限期完工
                            {
                            }
                            else if (g_ComputeType == "2")//工期計算方式為日曆天
                            {
                            }
                            else if (g_ComputeType == "3")//工期計算方式為工作天,無週休二日
                            {
                                #region
                                if (g_ComputeHoliday == "0")//國定假日照常施工
                                {
                                    computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                }
                                else if (g_ComputeHoliday == "1")//國定假日不施工
                                {
                                    #region
                                    string working = SQL.Read_SQL_data("working", "holiday", "date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                                    if (working != string.Empty && working == "1")//遇到國定假日
                                    {
                                        computeNonWorkingDay(false, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                        holidaysInMonth += 1;
                                        PrintHoliday(month, dateIndex);
                                    }
                                    else
                                    {
                                        computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                    }
                                    #endregion
                                }
                                #endregion
                            }
                            else if (g_ComputeType == "4")//工期計算方式為工作天,週休一日
                            {
                                #region
                                if (date.DayOfWeek == DayOfWeek.Sunday)
                                {
                                    computeNonWorkingDay(false, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                    holidaysInMonth += 1;
                                    PrintHoliday(month, dateIndex);
                                }
                                else
                                {
                                    if (g_ComputeHoliday == "0")//國定假日照常施工
                                    {
                                        computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                    }
                                    else if (g_ComputeHoliday == "1")//國定假日不施工
                                    {
                                        string working = SQL.Read_SQL_data("working", "holiday", "date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                                        if (working != string.Empty && working == "1")
                                        {
                                            computeNonWorkingDay(false, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                            holidaysInMonth += 1;
                                            PrintHoliday(month, dateIndex);
                                        }
                                        else
                                        {
                                            computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                        }
                                    }
                                }
                                #endregion
                            }
                            else if (g_ComputeType == "5")//工期計算方式為工作天,週休二日
                            {
                                #region
                                if (date.DayOfWeek == DayOfWeek.Sunday)
                                {
                                    computeNonWorkingDay(false, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                    holidaysInMonth += 1;
                                    PrintHoliday(month, dateIndex);
                                }
                                else if (date.DayOfWeek == DayOfWeek.Saturday)
                                {
                                    string working = SQL.Read_SQL_data("working", "holiday", "date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                                    if (working == string.Empty || working == "1")
                                    {
                                        computeNonWorkingDay(false, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                        holidaysInMonth += 1;
                                        PrintHoliday(month, dateIndex);
                                    }
                                    else//這應該是要補班的狀況
                                    {
                                        computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                    }
                                }
                                else
                                {
                                    if (g_ComputeHoliday == "0")//國定假日照常施工
                                    {
                                        computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                    }
                                    else if (g_ComputeHoliday == "1")//國定假日不施工
                                    {
                                        string working = SQL.Read_SQL_data("working", "holiday", "date = '" + Functions.TransferDateTimeToSQL(date) + "'");
                                        if (working != string.Empty && working == "1")//遇到國定假日
                                        {
                                            computeNonWorkingDay(false, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                            holidaysInMonth += 1;
                                            PrintHoliday(month, dateIndex);
                                        }
                                        else
                                        {
                                            computeNonWorkingDay(true, month, dateIndex, morningWeather, afternoonWeather, morningCondition, afternoonCondition, ref weatherNonWorkingDaysInMonth, ref conditionNonWorkingDaysInMonth);
                                        }
                                    }
                                }
                                #endregion
                            }
                            #endregion
                        }
                    }


                    xlWorkSheet.Cells[7 + month * 2, 39] = daysInMonth;
                    xlWorkSheet.Cells[7 + month * 2, 40] = holidaysInMonth;
                    xlWorkSheet.Cells[7 + month * 2, 41] = weatherNonWorkingDaysInMonth;
                    xlWorkSheet.Cells[7 + month * 2, 42] = conditionNonWorkingDaysInMonth;
                }

                if (year != yearEnd)
                {
                    xlWorkSheet.Copy(Type.Missing, xlWorkBook.Sheets[xlWorkBook.Sheets.Count]); // copy
                }
            }
        }
コード例 #12
0
        private void comboBoxDistrict_SelectedIndexChanged(object sender, EventArgs e)
        {
            string code = SQL.Read_SQL_data("code", "city", "city = '" + comboBoxCity.SelectedItem + "' AND district = '" + comboBoxDistrict.SelectedItem + "'");

            textBoxCode3.Text = code;
        }