DevExpress WinForms スケジューラ コンポーネントの中国語チュートリアル - Office 365 と同期する方法?

DevExpress WinFormsの最近の更新により、ユーザーは DevExpress WinForms スケジューラと Office 365 のイベント/スケジュール データをシームレスに同期できるようになりました。ユーザー スケジュールを WinForms スケジューラから Office 365 カレンダーにエクスポートしたり、Office 365 のイベント/スケジュールをスケジューラ コントロールにインポートしたりできます。同期中にユーザーのイベント/スケジュールを変更し、ユーザーのスケジュールを Microsoft 365 カレンダーと結合し、結合の競合を解決し、変更をデータベースに保存します。

DevExpress WinForms スケジューラ コンポーネントの中国語チュートリアル - Office 365 と同期する方法?

DevExpress WinForms に は、Windows フォーム プラットフォーム用の影響力のあるビジネス ソリューションを作成するための 180 以上のコンポーネントと UI ライブラリがあります。DevExpress WinForms は、Office スタイルのインターフェイスでも、大量のビジネス データの分析と処理でも、スムーズで美しく、使いやすいアプリケーションを完璧に構築できます。

DevExpress v23.1 の正式バージョンをダウンロードして入手します(Q テクニカル エクスチェンジ: 523159565)

必要な依存関係

次の依存関係 (NuGet パッケージ) をインストールします。

入門ガイド

WinForms  Scheduler コントロールをフォームにドロップし、スマート タグ メニューを開いて [Microsoft 365 カレンダーと同期] を選択すると、DXOutlook365Sync コンポーネントが作成されます。

DevExpress WinForms スケジューラ コンポーネントの中国語チュートリアル - Office 365 と同期する方法?

基本データフィールドを結合し、カスタムマッピングを設定する

アプリケーションと Microsoft Office 365 カレンダーが同期された後にデータベースに変更を保存する必要がある場合、DXOutlook365Sync コンポーネントには、Microsoft 365 イベントの一意の識別子を保存し、ユーザー イベントを記録するために (データ ソース内に) 5 つの特定のフィールドが必要です。予定の最終変更日。

DataTable source = new DataTable();
source.Columns.AddRange(new DataColumn[] {
new DataColumn("Subject", typeof(string)),
new DataColumn("Description", typeof(string)),
new DataColumn("Start", typeof(DateTime)),
new DataColumn("End", typeof(DateTime)),
// Special data fields.
new DataColumn("Outlook365CalendarId", typeof(string)),
new DataColumn("Outlook365EventId", typeof(string)),
new DataColumn("Outlook365EventUniqId", typeof(string)),
new DataColumn("Outlook365LastChangedUTC", typeof(DateTime)),
new DataColumn("SchedulerLastChangedUTC", typeof(DateTime))
});

これらのフィールドへのカスタム マッピングを定義して、データ ソースのセットアップを完了します。

// Defines custom mappings.
schedulerDataStorage1.Appointments.CustomFieldMappings.Add(new AppointmentCustomFieldMapping("outlook365_calendar_id", "Outlook365CalendarId"));
schedulerDataStorage1.Appointments.CustomFieldMappings.Add(new AppointmentCustomFieldMapping("outlook365_event_id", "Outlook365EventId"));
schedulerDataStorage1.Appointments.CustomFieldMappings.Add(new AppointmentCustomFieldMapping("outlook365_event_ICalUId", "Outlook365EventUniqId"));
schedulerDataStorage1.Appointments.CustomFieldMappings.Add(new AppointmentCustomFieldMapping("outlook365_lastChangedUTC", "Outlook365LastChangedUTC"));
schedulerDataStorage1.Appointments.CustomFieldMappings.Add(new AppointmentCustomFieldMapping("scheduler_lastChangedUTC", "SchedulerLastChangedUTC"));
同期APIを初期化する

DXOutlook365Sync コンポーネントの API を使用する前に、InitAsync() メソッドを使用して初期化する必要があります。このメソッドにより、[アカウントへのサインイン] ウィンドウが開きます (Microsoft Office 365 へのログインが必要です)。

DevExpress WinForms スケジューラ コンポーネントの中国語チュートリアル - Office 365 と同期する方法?

private async void initBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) {
await dxOutlook365Sync1.InitAsync();
}
同期する Microsoft 365 カレンダーを選択する

DXOutlook365Sync コンポーネントは、WinForms スケジューラ コントロールのユーザーのスケジュールをすべて (または特定の) Office 365 カレンダーのイベントと同期できます。そのカレンダー コレクションには、Office 365 カレンダーに対応する OutlookCalendarItem オブジェクトが含まれています。

カレンダーには、そのイベントを WinForms スケジューラ コントロールのユーザーのスケジュールと同期するかどうかを指定する OutlookCalendarItem.EnableSynchronization 設定があります。

Microsoft 365 イベントをインポートする

ImportOutlookToSchedulerAsync(Boolean) メソッドを使用して、Office 365 カレンダーから WinForms スケジューラ コントロールにイベントをインポートします。

using DevExpress.XtraScheduler.Microsoft365Calendar;

private async void importEventsButton_Click(object sender, EventArgs e) {
// Checks whether the initialization of 'dxOutlook365Sync1' failed.
if(!await InitOutlook365Sync(dxOutlook365Sync1)) return;
// Displays the wait form.
splashScreenManager1.ShowWaitForm();
// Imports Outlook 365 events to the Scheduler control.
await dxOutlook365Sync1.ImportOutlookToSchedulerAsync(false);
// Hides the wait form.
splashScreenManager1.CloseWaitForm();
}
private async Task<bool> InitOutlook365Sync(DXOutlook365Sync outlook365sync) {
// Initializes the 'dxOutlook365Sync1' component.
InitStatus status = await outlook365sync.InitAsync();
// Returns false and displays a message box if the initialization of 'dxOutlook365Sync1' failed.
if(status == InitStatus.Error) {
XtraMessageBox.Show("Initialization of DXOutlook365Sync failed.", "Error", MessageBoxButtons.OK);
return false;
}
return true;
}
ユーザーのスケジュールを Microsoft 365 カレンダーにエクスポートする

ExportSchedulerToOutlookAsync(Boolean) メソッドを使用して、DevExpress スケジューラ コントロールから Office 365 カレンダーにユーザー スケジュールをエクスポートします。

同期前にスケジュールまたはイベントをカスタマイズする

次のイベントを使用すると、同期前にユーザーのスケジュールまたはイベントをカスタマイズできます。

カレンダーの結合と結合の競合の解決

DXOutlook365Sync API を使用すると、ユーザー カレンダーを Office 365 イベントと結合したり、すべてのイベント/スケジュールを結合したり、(特定の条件に基づいて) 一部のイベント/スケジュールをスキップするルールを定義したりできます。

同期 API を使用すると、必要に応じてマージの競合を簡単に解決できます。

おすすめ

転載: blog.csdn.net/AABBbaby/article/details/131955308