GcDateTimeCellやGcCalendarCellのカレンダーに月曜以外の振替休日を設定するには?

文書番号 : 40667     文書種別 : 使用方法     登録日 : 2017/07/26     最終更新日 : 2017/07/26
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
通常、日曜日が国民の祝日と重なった場合は、翌日の月曜日が振替休日となります。
しかし、ゴールデンウィークなど祝日が連続すると翌日の月曜日も祝日である場合があります。
たとえば、2014年は、5月4日のみどりの日が日曜日ですが、翌日の5日月曜日もこどもの日です。したがって、みどりの日の振替休日は翌々日の5月6日火曜日となります。

GcDateTimeCellのドロップダウンカレンダーやGcCalendarCellで、このような月曜以外の振替休日を設定するには、以下の方法があります。

振替休日の設定は、HolidayCollectionのWeekdaysプロパティを経由してDayOfWeekHolidayPolicyオブジェクトを使用しますが、DayOfWeekHolidayPolicyクラスのOverrideプロパティをNextWorkdayに設定すると振替休日を「翌日」ではなく「翌営業日」(次の祝日ではない日)と設定できます。デフォルトはNextDay(翌日)です。

次のサンプルコードは、GcDateTimeCellとGcCalendarCellに"NationalHoliday"というキーで登録されている休日スタイルの振替休日を「翌営業日」に変更する例です。

[Visual Basic]
Imports GrapeCity.Win.MultiRow
Imports InputManCell = GrapeCity.Win.MultiRow.InputMan
Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak

' MultiRowのテンプレートを取得します。
Dim template1 As Template = GcMultiRow1.Template

' GcDateTimeCellの設定
' 休日のスタイルを取得します。
Dim nationalHoliday1 As InputManCell.HolidayStyle = DirectCast(template1.Row.Cells("GcDateTimeCell1"), InputManCell.GcDateTimeCell).DropDownCalendar.HolidayStyles("NationalHoliday")
' 振替休日を翌営業日に設定します。
nationalHoliday1.Holidays.Weekdays.Sunday = New GrapeCity.Win.Editors.DayOfWeekHolidayPolicy(GrapeCity.Win.Editors.WeekFlags.All, GrapeCity.Win.Editors.HolidayOverride.NextWorkDay)

'GcCalendarCellの設定
' 休日のスタイルを取得します。
Dim nationalHoliday2 As PlusPakCell.HolidayStyle = DirectCast(template1.Row.Cells("GcCalendarCell1"), PlusPakCell.GcCalendarCell).HolidayStyles("NationalHoliday")
' 振替休日を翌営業日に設定します。
nationalHoliday2.Holidays.Weekdays.Sunday = New GrapeCity.Win.Calendar.DayOfWeekHolidayPolicy(GrapeCity.Win.Calendar.WeekFlags.All, GrapeCity.Win.Calendar.HolidayOverride.NextWorkDay)

' テンプレートをMultiRowに設定します。
GcMultiRow1.Template = template1

[C#]
using GrapeCity.Win.MultiRow;
using InputManCell = GrapeCity.Win.MultiRow.InputMan;
using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak;

// MultiRowのテンプレートを取得します。
Template template1 = gcMultiRow1.Template;

// GcDateTimeCellの設定
// 休日のスタイルを取得します。
InputManCell.HolidayStyle nationalHoliday1 = (template1.Row.Cells["gcDateTimeCell1"] as InputManCell.GcDateTimeCell).DropDownCalendar.HolidayStyles["NationalHoliday"];
// 振替休日を翌営業日に設定します。
nationalHoliday1.Holidays.Weekdays.Sunday = new GrapeCity.Win.Editors.DayOfWeekHolidayPolicy(GrapeCity.Win.Editors.WeekFlags.All, GrapeCity.Win.Editors.HolidayOverride.NextWorkDay);

// //GcCalendarCellの設定
// 休日のスタイルを取得します。
PlusPakCell.HolidayStyle nationalHoliday2 = (template1.Row.Cells["gcCalendarCell1"] as PlusPakCell.GcCalendarCell).HolidayStyles["NationalHoliday"];
// 振替休日を翌営業日に設定します。
nationalHoliday2.Holidays.Weekdays.Sunday = new GrapeCity.Win.Calendar.DayOfWeekHolidayPolicy(GrapeCity.Win.Calendar.WeekFlags.All, GrapeCity.Win.Calendar.HolidayOverride.NextWorkDay);

// テンプレートをMultiRowに設定します。
gcMultiRow1.Template = template1;


祝日設定の詳細や具体的なサンプルコードについては、製品ヘルプの下記の章を参照してください。

[PowerTools MultiRow for Windows Forms 10.0J]
 - [InputManCell の使い方]
  - [GcDateTimeCell]
   - [ドロップダウンカレンダー]
    - [休日の設定]
 - [PlusPakCell の使い方]
  - [GcCalendarCell]
   - [休日の設定]