0

XtraSchedulerSchedulerControlを次のように構成しています。

private DevExpress.XtraScheduler.SchedulerControl _SchedulerControl;
public DevExpress.XtraScheduler.SchedulerControl ConvSchedulerControl
{
    get
    {
        if (_SchedulerControl == null)
        {
            _SchedulerControl = new DevExpress.XtraScheduler.SchedulerControl();

            _SchedulerControl.Storage = new SchedulerStorage();
            _SchedulerControl.Storage.Appointments.Mappings.Subject = "StandingOrderIDString";
            _SchedulerControl.Storage.Appointments.Mappings.Start = "ScheduledDate";
            _SchedulerControl.Storage.Appointments.Mappings.RecurrenceInfo = "RecurrenceInfo";
            _SchedulerControl.Storage.Appointments.Mappings.Type = "Type";

            _SchedulerControl.Storage.Appointments.CustomFieldMappings.Add(new DevExpress.XtraScheduler.AppointmentCustomFieldMapping("Inactive", "Inactive"));
            _SchedulerControl.Storage.Appointments.CustomFieldMappings.Add(new DevExpress.XtraScheduler.AppointmentCustomFieldMapping("StandingOrderKEY", "StandingOrderKEY"));

            BindingSource bs = new BindingSource();
            bs.DataSource = new List<StandingOrder>();
            _SchedulerControl.Storage.Appointments.DataSource = bs;
        }
        return _SchedulerControl;
    }
}

http://help.devexpress.com/#WindowsForms/CustomDocument6201にある例のように、プログラムで再発情報を含む予定を追加しようとしています。ただし、メソッドの実行が、作成された予定をストレージに追加する最終行(表示)に達すると、「ハング」します。例外はスローされません。私はそれを15分以上実行したままにしましたが変更はありません:

public void SetRecurrence(DateTime startDate, DateTime? endDate)
{
    Appointment appointmentObj = ConvSchedulerControl.Storage.CreateAppointment(AppointmentType.Pattern);

    if (endDate != null &&
        endDate != DateTime.Parse("12/31/2999"))
    {
        appointmentObj.End = (DateTime)endDate;
    }
    else
    {
        appointmentObj.RecurrenceInfo.Range = RecurrenceRange.NoEndDate;
    }

    appointmentObj.Start = startDate;
    appointmentObj.RecurrenceInfo.Type = RecurrenceType.Weekly;
    appointmentObj.RecurrenceInfo.WeekDays = WeekDays.Monday;
    appointmentObj.AllDay = true;

//Program execution reaches this line, but never proceeds past it.
    ConvSchedulerControl.Storage.Appointments.Add(appointmentObj);
}

ストレージが予定を正常に追加できないように構成に問題があると思いますが、この件に関する他の情報を表示することができませんでした。この方法がストレージに予定を追加するのに適切でない理由と、それを修正する方法を知っている人はいますか?

4

1 に答える 1

1

「End」フィールドのマッピングを提供できませんでした。これは必須のマッピングです。正直なところ、これはデザイナーでカレンダーを作成したことでしかわかりません。SchedulerControl をフォーム/コントロールに配置すると、デザイナーが提供するものの 1 つが「マッピング ウィザード」です。「開始」フィールドと「終了」フィールドは、ウィザードで必須としてマークされています。

于 2012-08-01T16:25:11.867 に答える