//******************************************************************* /// <summary>カレンダー選択された日付が変更された時</summary> /// <param name="sender">源</param> /// <param name="e">マウスイベント</param> //******************************************************************* private void monthCalendarDate_Select(object sender, DateRangeEventArgs e) { for (DateTime operation_date = e.Start; operation_date <= e.End; operation_date = operation_date.AddDays(1)) { decimal operating_date = ConvertUtil.ConverDate2IntYYYYMMDD(operation_date); DataRow[] rows = CalendarDetailTable.Select("operating_date='" + operating_date + "'"); // カレンダー稼働日テーブルから削除 if (rows != null && rows.Count() > 0) { rows[0].Delete(); } else { DataRow row = CalendarDetailTable.NewRow(); //ジョブネットID row["calendar_id"] = _calendarId; // 稼働日 row["operating_date"] = operating_date; // 更新日 row["update_date"] = _tmpUpdDate; CalendarDetailTable.Rows.Add(row); } } }
//******************************************************************* /// <summary>カレンダー内容変更</summary> //******************************************************************* private bool refreshMonthCalendar() { int baseYear = GetCurrentYear(); monthCalendar.Enabled = true; // 初期表示時 if (CalendarDetailTable == null) { monthCalendar.Enabled = false; return(false); } monthCalendar.SelectionRanges.Clear(); if (tbDesignatedDay.IsEnabled == true && tbDesignatedDay.Text == "") { monthCalendar.Enabled = false; return(false); } decimal[] targetDate = new decimal[14]; try { int shiftDay = Convert.ToInt16(cmbShiftDay.SelectedItem); int month = -1; int year = -1; for (int i = 0; i < targetDate.Length; i++) { if (i == 0) { year = baseYear - 1; month = 12; } else if (i == (targetDate.Length - 1)) { year = baseYear + 1; month = 1; } else { year = baseYear; month = i; } if (rbFirstDay.IsChecked == true) { targetDate[i] = ConvertUtil.ConverDate2IntYYYYMMDD(new DateTime(year, month, 1)); } else if (rbLastDay.IsChecked == true) { targetDate[i] = ConvertUtil.ConverDate2IntYYYYMMDD(new DateTime(year, month, DateTime.DaysInMonth(year, month))); } else { int designatedDay = Convert.ToInt16(tbDesignatedDay.Text); if (tbDesignatedDay.Text != null) { StringBuilder yyyymmdd = new StringBuilder(); yyyymmdd.Append(year.ToString("D4")); yyyymmdd.Append(month.ToString("D2")); yyyymmdd.Append(designatedDay.ToString("D2")); targetDate[i] = Convert.ToDecimal(yyyymmdd.ToString()); } } if (isOperatingDay(targetDate[i])) { // 稼働日移動しない SetSelectDate(ConvertUtil.ConverIntYYYYMMDD2Date(targetDate[i])); } else { // 非稼働日 /* added by YAMA 2014/12/05 V2.1.0 No28 対応 */ string stDate = Regex.Replace(targetDate[i].ToString(), @"(\d{4})(\d{2})(\d{2})", @"$1/$2/$3"); DateTime dtDate = DateTime.Parse(stDate); if (shiftDay > 0) { /* added by YAMA 2014/12/05 V2.1.0 No28 対応 */ // string condition = "operating_date > " + targetDate[i]; dtDate = dtDate.AddDays(29); // 29日加算する decimal afterDate = Convert.ToDecimal(dtDate.ToString("yyyyMMdd")); string condition = "operating_date >= " + targetDate[i] + " and operating_date <= " + afterDate; string sortExpression = "operating_date asc"; DataRow[] rows = CalendarDetailTable.Select(condition, sortExpression); /* added by YAMA 2014/12/05 V2.1.0 No28 対応 */ // if (rows.Length > 0){ if ((0 < rows.Length) && (Math.Abs(shiftDay) - 1 < rows.Length)) { DateTime shifted = ConvertUtil.ConverIntYYYYMMDD2Date(Convert.ToDecimal(rows[shiftDay - 1]["operating_date"])); SetSelectDate(shifted); } } else if (shiftDay < 0) { /* added by YAMA 2014/12/05 V2.1.0 No28 対応 */ //string condition = "operating_date < " + targetDate[i]; dtDate = dtDate.AddDays(-29); // 29日減算する decimal beforeDate = Convert.ToDecimal(dtDate.ToString("yyyyMMdd")); string condition = "operating_date <= " + targetDate[i] + " and operating_date >= " + beforeDate; string sortExpression = "operating_date desc"; DataRow[] rows = CalendarDetailTable.Select(condition, sortExpression); /* added by YAMA 2014/12/05 V2.1.0 No28 対応 */ //if (rows.Length > 0){ if ((0 < rows.Length) && (Math.Abs(shiftDay) - 1 < rows.Length)) { DateTime shifted = ConvertUtil.ConverIntYYYYMMDD2Date(Convert.ToDecimal(rows[-1 - shiftDay]["operating_date"])); SetSelectDate(shifted); } } else { string condition = "operating_date = " + targetDate[i]; DataRow[] rows = CalendarDetailTable.Select(condition); if (rows.Length > 0) { DateTime shifted = ConvertUtil.ConverIntYYYYMMDD2Date(Convert.ToDecimal(rows[0]["operating_date"])); SetSelectDate(shifted); } } } } } catch (FormatException e) { monthCalendar.Enabled = false; return(false); } catch (Exception e) { //System.Windows.MessageBox.Show(e.ToString()); monthCalendar.Enabled = false; return(false); } monthCalendar.Enabled = false; return(true); }
//******************************************************************* /// <summary>ファイル読込クリック</summary> /// <param name="sender">源</param> /// <param name="e">マウスイベント</param> //******************************************************************* private void fileRead_Click(object sender, EventArgs e) { // 開始ログ base.WriteStartLog("fileRead_Click", Consts.PROCESS_001); // 入力チェック if (!InputCheck()) { return; } string line; List <DateTime> selectedDates = new List <DateTime>(); String format_str = ((FormatComboBoxItem)formatComboBox.SelectedItem).Format; try { System.IO.StreamReader file = new System.IO.StreamReader(textBox_fileName.Text); if (!System.IO.File.Exists(textBox_fileName.Text)) { throw new FileException(Consts.SYSERR_002, null); } System.IO.DirectoryInfo dirInfoBar = new System.IO.DirectoryInfo(textBox_fileName.Text); System.IO.DirectoryInfo dirInfo = dirInfoBar.Parent; Consts.FILEREAD_PATH = dirInfo.FullName; while ((line = file.ReadLine()) != null) { try { DateTime operationDate = DateTime.ParseExact(line, format_str, System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.NoCurrentDateDefault); selectedDates.Add(operationDate); } catch (Exception ex) { CommonDialog.ShowErrorDialog(Consts.ERROR_CALENDAR_FILE_READ_001); return; } } _calendarEdit.container.CalendarDetailTable.Rows.Clear(); foreach (DateTime operationDate in selectedDates) { DataRow row = _calendarEdit.container.CalendarDetailTable.NewRow(); _calendarEdit.container.CalendarDetailTable.Rows.Add(row); row["calendar_id"] = _calendarEdit.CalendarId; row["update_date"] = _calendarEdit.UpdateDate; row["operating_date"] = ConvertUtil.ConverDate2IntYYYYMMDD(operationDate); } _calendarEdit.container.SetYearCalendarDetail(null); file.Close(); Close(); } catch (ArgumentException ex) { CommonDialog.ShowErrorDialog(Consts.ERROR_COMMON_019); } catch (NotSupportedException ex) { CommonDialog.ShowErrorDialog(Consts.ERROR_COMMON_019); } catch (DirectoryNotFoundException ex) { CommonDialog.ShowErrorDialog(Consts.ERROR_COMMON_022); } catch (FileNotFoundException ex) { CommonDialog.ShowErrorDialog(Consts.ERROR_COMMON_011); } catch (UnauthorizedAccessException ex) { CommonDialog.ShowErrorDialog(Consts.ERROR_COMMON_023); } catch (System.IO.IOException ex) { CommonDialog.ShowErrorDialogFromMessage(ex.Message); } catch (Exception ex) { CommonDialog.ShowErrorDialogFromMessage(ex.Message); } // 終了ログ base.WriteEndLog("fileRead_Click", Consts.PROCESS_001); }
//******************************************************************* /// <summary>フィルター選択時のカレンダー表示</summary> //******************************************************************* public void SetFilterCalendarDetail() { int baseYear = GetCurrentYear(); monthCalendar.Enabled = true; monthCalendar.SelectionRanges.Clear(); monthCalendar.ViewStart = new DateTime(baseYear, 1, 1); DataRow row = FilterControlTable.Rows[0]; if (row == null) { monthCalendar.Enabled = false; return; } int baseDate = Convert.ToInt16(row["base_date_flag"]); int shiftDay = Convert.ToInt16(row["shift_day"]); decimal [] targetDate = new decimal[14]; try { int month = -1; int year = -1; for (int i = 0; i < targetDate.Length; i++) { if (i == 0) { year = baseYear - 1; month = 12; } else if (i == (targetDate.Length - 1)) { year = baseYear + 1; month = 1; } else { year = baseYear; month = i; } if (baseDate == 0) { targetDate[i] = ConvertUtil.ConverDate2IntYYYYMMDD(new DateTime(year, month, 1)); } else if (baseDate == 1) { targetDate[i] = ConvertUtil.ConverDate2IntYYYYMMDD(new DateTime(year, month, DateTime.DaysInMonth(year, month))); } else if (baseDate == 2) { int designatedDay = Convert.ToInt16(row["designated_day"]); StringBuilder yyyymmdd = new StringBuilder(); yyyymmdd.Append(year.ToString("D4")); yyyymmdd.Append(month.ToString("D2")); yyyymmdd.Append(designatedDay.ToString("D2")); targetDate[i] = Convert.ToDecimal(yyyymmdd.ToString()); } else { monthCalendar.Enabled = false; return; } if (isOperatingDay(targetDate[i])) { // 稼働日移動しない SetSelectDate(ConvertUtil.ConverIntYYYYMMDD2Date(targetDate[i])); } else { // 非稼働日 if (shiftDay > 0) { string condition = "operating_date > " + targetDate[i]; string sortExpression = "operating_date asc"; DataRow[] rows = CalendarDetailTable.Select(condition, sortExpression); if (rows.Length > 0) { DateTime shifted = ConvertUtil.ConverIntYYYYMMDD2Date(Convert.ToDecimal(rows[shiftDay - 1]["operating_date"])); SetSelectDate(shifted); } } else if (shiftDay < 0) { string condition = "operating_date < " + targetDate[i]; string sortExpression = "operating_date desc"; DataRow[] rows = CalendarDetailTable.Select(condition, sortExpression); if (rows.Length > 0) { DateTime shifted = ConvertUtil.ConverIntYYYYMMDD2Date(Convert.ToDecimal(rows[-1 - shiftDay]["operating_date"])); SetSelectDate(shifted); } } else { string condition = "operating_date = " + targetDate[i]; DataRow[] rows = CalendarDetailTable.Select(condition); if (rows.Length > 0) { DateTime shifted = ConvertUtil.ConverIntYYYYMMDD2Date(Convert.ToDecimal(rows[0]["operating_date"])); SetSelectDate(shifted); } } } } } catch (Exception e) { //log error msg monthCalendar.Enabled = false; return; } monthCalendar.Enabled = false; }
//******************************************************************* /// <summary>登録ボタンクリック</summary> /// <param name="sender">源</param> /// <param name="e">マウスイベント</param> //******************************************************************* private void register_Click(object sender, RoutedEventArgs e) { // 開始ログ base.WriteStartLog("register_Click", Consts.PROCESS_001); List <DateTime> selectedDates = new List <DateTime>(); DateTime firstDate = new DateTime(Convert.ToInt32(_targetYear), 1, 1); DateTime lastDate = new DateTime(Convert.ToInt32(_targetYear), 12, 31); for (DateTime d = firstDate; d.CompareTo(lastDate) <= 0; d = d.AddDays(1)) { if ((bool)checkBox_sun.IsChecked) { if (d.DayOfWeek == DayOfWeek.Sunday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_mon.IsChecked) { if (d.DayOfWeek == DayOfWeek.Monday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_tue.IsChecked) { if (d.DayOfWeek == DayOfWeek.Tuesday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_wed.IsChecked) { if (d.DayOfWeek == DayOfWeek.Wednesday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_thu.IsChecked) { if (d.DayOfWeek == DayOfWeek.Thursday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_fri.IsChecked) { if (d.DayOfWeek == DayOfWeek.Friday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_sat.IsChecked) { if (d.DayOfWeek == DayOfWeek.Saturday) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_first.IsChecked) { if (d.Day == 1) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } if ((bool)checkBox_last.IsChecked) { if (d.Day == DateTime.DaysInMonth(d.Year, d.Month)) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } foreach (int selectedDay in listBox1.SelectedItems) { if (d.Day == selectedDay) { if (!selectedDates.Contains(d)) { selectedDates.Add(d); } } } } //ControlObjectInfo objectInfo = jobArrangerWindow.PART_Transition.currentPage.pageInfo.ObjectInfo; if ((bool)checkBox_init.IsChecked) { foreach (DateTime operationDate in selectedDates) { DataRow[] rows = _calendarEdit.container.CalendarDetailTable.Select("operating_date=" + ConvertUtil.ConverDate2IntYYYYMMDD(operationDate)); if (rows.Count() < 1) { DataRow row = _calendarEdit.container.CalendarDetailTable.NewRow(); _calendarEdit.container.CalendarDetailTable.Rows.Add(row); row["calendar_id"] = _calendarEdit.CalendarId; row["update_date"] = _calendarEdit.UpdateDate; row["operating_date"] = ConvertUtil.ConverDate2IntYYYYMMDD(operationDate); } } _calendarEdit.container.SetYearCalendarDetail(null); Hide(); } else { String from = _targetYear + "0101"; String to = _targetYear + "1231"; DataRow[] rows = _calendarEdit.container.CalendarDetailTable.Select("operating_date>='" + from + "' and operating_date<='" + to + "'"); foreach (DataRow row in rows) { row.Delete(); } foreach (DateTime operationDate in selectedDates) { DataRow row = _calendarEdit.container.CalendarDetailTable.NewRow(); _calendarEdit.container.CalendarDetailTable.Rows.Add(row); row["calendar_id"] = _calendarEdit.CalendarId; row["update_date"] = _calendarEdit.UpdateDate; row["operating_date"] = ConvertUtil.ConverDate2IntYYYYMMDD(operationDate); } _calendarEdit.container.SetYearCalendarDetail(null); Close(); // 終了ログ base.WriteEndLog("register_Click", Consts.PROCESS_001); } }