概要の説明
GcCalendarCellの休業日の設定は、HolidayStylesプロパティが参照するHolidayStyleCollectionを初めとする下図のオブジェクト(着色された5つ)を使って行います。
休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日を設定する」を参照してください。
Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日を設定する」を参照してください。
Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日の設定
休業日は、次の手順で設定します。
- 通常の休日と同じように、HolidayStyleオブジェクトを生成します。
- HolidayStyleオブジェクトのNameプロパティを設定します。
- セルのWeekdaysプロパティを経由して参照されるDayOfWeekStyleオブジェクトのSubStyleプロパティを使って、休業日の日付スタイル(文字色、背景色、太字、下線)を設定します。
- HolidayCollectionコレクションのWeekdaysプロパティが参照するWeekdaysオブジェクトのプロパティ(Sunday〜Saturday)を使うことで、休業日にする曜日を指定します。
- 指定したプロパティ(たとえばWednesday)が参照するDayOfWeekHolidayPolicy構造体のWeekFlagsプロパティで、休業日にする週(例:第2週と第3週)を指定します。
- HolidayStyleオブジェクトをHolidayStyleCollectionコレクションに登録します。
- セルのActiveHolidayStylesプロパティを使って、登録したHolidayStyleオブジェクトを有効にします。
サンプルコード
次のサンプルコードは、第2と第4の土曜日を休業日に設定します。
Imports GrapeCity.Win.MultiRow Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak ' 休日スタイルを生成します。 Dim aHS As PlusPakCell.HolidayStyle = New PlusPakCell.HolidayStyle() ' 休日スタイルの名称を設定します。 aHS.Name = "休業日" ' 第2と第4土曜日を休業日に設定します。 aHS.Holidays.Weekdays.Saturday = New GrapeCity.Win.Calendar.DayOfWeekHolidayPolicy( GrapeCity.Win.Calendar.WeekFlags.SecondWeek Or GrapeCity.Win.Calendar.WeekFlags.FourthWeek, GrapeCity.Win.Calendar.HolidayOverride.None) Dim GcCalendarCell1 = New PlusPak.GcCalendarCell() ' 休業日の表示スタイルを設定します。 GcCalendarCell1.Weekdays.Saturday.SubStyle = New PlusPakCell.SubStyle(Color.WhiteSmoke, Color.Red, True, False) GcCalendarCell1.Weekdays.Saturday.WeekFlags = GrapeCity.Win.Calendar.WeekFlags.SecondWeek Or GrapeCity.Win.Calendar.WeekFlags.FourthWeek ' 設定が完了した休日スタイルを登録します。 GcCalendarCell1.HolidayStyles.Add("休業日", aHS) ' 登録した休日スタイルをGcCalendarCellに反映させます。 GcCalendarCell1.ActiveHolidayStyles = New String() {"休業日"} GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcCalendarCell1}) GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow; using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak; // 休日スタイルを生成します。 PlusPakCell.HolidayStyle aHS = new PlusPakCell.HolidayStyle(); // 休日スタイルの名称を設定します。 aHS.Name = "休業日"; // 第2と第4土曜日を休業日に設定します。 aHS.Holidays.Weekdays.Saturday = new GrapeCity.Win.Calendar.DayOfWeekHolidayPolicy( GrapeCity.Win.Calendar.WeekFlags.SecondWeek | GrapeCity.Win.Calendar.WeekFlags.FourthWeek, GrapeCity.Win.Calendar.HolidayOverride.None); PlusPakCell.GcCalendarCell gcCalendarCell1 = new PlusPakCell.GcCalendarCell(); // 休業日の表示スタイルを設定します。 gcCalendarCell1.Weekdays.Saturday.SubStyle = new PlusPakCell.SubStyle(Color.WhiteSmoke, Color.Red, true, false); gcCalendarCell1.Weekdays.Saturday.WeekFlags = GrapeCity.Win.Calendar.WeekFlags.SecondWeek | GrapeCity.Win.Calendar.WeekFlags.FourthWeek; // 設定が完了した休日スタイルを登録します。 gcCalendarCell1.HolidayStyles.Add("休業日", aHS); // 登録した休日スタイルをGcCalendarCellに反映させます。 gcCalendarCell1.ActiveHolidayStyles = new string[] { "休業日" }; gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcCalendarCell1 }); gcMultiRow1.RowCount = 10;