Beispiel #1
0
        //*******************************************************************
        /// <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);
                }
            }
        }
Beispiel #2
0
        //*******************************************************************
        /// <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);
            }
        }