Exemplo n.º 1
0
 /// <summary>表示期間が変更された
 /// </summary>
 /// <param name="sender">イベントの発生したオブジェクト</param>
 /// <param name="e">発生したイベント</param>
 void mainForm_OnDisplayPeriodChanged(object sender, DisplayPeriodChangedEventArgs e)
 {
     Clear();
     LoopStart = e.Start.Date;
     ViewStart = e.Start.Date;
     LoopEnd   = e.End.Date;
     Run();
 }
        /// <summary> 行数の取得
        /// </summary>
        public void NotifyDisplayPeriodChanged()
        {
            //CalenderView.CurrentCellChanged;
            // 行数の獲得
            int      row  = 0;
            TimeSpan span = EndDate - StartDate;

            row = span.Days + 1;
            this.CalenderView.RowCount = row;
            //
            if (TimeTable != null)
            {
                // 人員配置の候補作成
                ResetRequires();
                // シフトの候補作成
                ResetPatterns();
                // 列の再構成
                ResetMembers();
                // イベント発生
                if (OnDisplayPeriodChanged != null)
                {
                    DisplayPeriodChangedEventArgs e = new DisplayPeriodChangedEventArgs(StartDate, EndDate);
                    OnDisplayPeriodChanged(this, e);
                }
                if (MainForm != null)
                {
                    // 選択リストの作成
                    List <DateTime> workList = new List <DateTime>();
                    for (int i = 0; i < CalenderView.SelectedRows.Count; i++)
                    {
                        DataGridViewRow row2 = CalenderView.SelectedRows[i];
                        DateTime        date = this.GetDateFromRowIndex(row2.Index);
                        workList.Add(date);
                    }
                    // 選択されていなかったら現在行を追加する
                    if (workList.Count == 0)
                    {
                        workList.Add(CurrentRowDate);
                    }
                    else
                    {
                        workList.Sort();
                    }
                    selectedDates = workList;
                    MainForm.ViewSelectionChanged(SelectedDates);
                }
            }
            else
            {
                // タイムテーブルが設定されていない
                EndDate = StartDate;
                this.CalenderView.RowCount = 0;
            }
        }