MESCIUS MultiRow for Windows Forms 12.0J
休業日の設定

GcCalendarCellで、休業日(毎週の定期的な休み)を設定する方法について、以下の項目に分けて解説します。
概要の説明
GcCalendarCellの休業日の設定は、HolidayStylesプロパティが参照するHolidayStyleCollectionを初めとする下図のオブジェクト(着色された5つ)を使って行います。


休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日を設定する」を参照してください。


Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日の設定
休業日は、次の手順で設定します。

  1. 通常の休日と同じように、HolidayStyleオブジェクトを生成します。
  2. HolidayStyleオブジェクトのNameプロパティを設定します。
  3. セルのWeekdaysプロパティを経由して参照されるDayOfWeekStyleオブジェクトのSubStyleプロパティを使って、休業日の日付スタイル(文字色、背景色、太字、下線)を設定します。
  4. HolidayCollectionコレクションのWeekdaysプロパティが参照するWeekdaysオブジェクトのプロパティ(Sunday〜Saturday)を使うことで、休業日にする曜日を指定します。
  5. 指定したプロパティ(たとえばWednesday)が参照するDayOfWeekHolidayPolicy構造体のWeekFlagsプロパティで、休業日にする週(例:第2週と第3週)を指定します。
  6. HolidayStyleオブジェクトをHolidayStyleCollectionコレクションに登録します。
  7. セルの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;
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.