DevExpress のサンプル作成(ASPxScheduler)手順です。
データベースはオラクルを使用します。

昨日のブログの続きです。
今回は事前に準備したオラクルを「ASPxScheduler」と紐付けて設定を行います。

昨日のブログは、「DevExpress のサンプル作成(ASPxScheduler)_オラクル準備」を参照して下さい。

<サンプル作成(ASPxScheduler)>
<「XPO」設定>
・プロジェクト作成(DevExpress v15.2 Template Gallery)を選択します。
※XPOを使用するため、「ASP.NET 空の Web アプリケーション」を選択してはいけません。
20170810_01

・「Empty Web Application」を選択して「Create Project」をクリックします。
20170810_02

20170810_03

・プロジェクトから「追加」→「新しい項目」を選択し、「DevExpress」→「DevExpress ORM Data Model Wizard」を追加します。
20170810_04

・「Map to an existing database」を選択して「次へ」をクリックします。

【データベース選択一覧】
「Map to an existing database」 :既存のDBから作成
「Create a new database」    :新規DBを作成
「Do not connect to a database」:DB接続なし

20170810_05

・対象のDBは「Oracle」を選択し、「サーバ名、ユーザ名、パスワード」を入力して「次へ」をクリックします。
20170810_06

・対象のテーブルを選択して「次へ」をクリックします。

【テーブル選択一覧】
スケジュールマスタ(SCHEDULE_MST)
スケジュール情報(SCHEDULE_INFO)

20170810_07

・クラスとプロパティーの設定はデフォルトのまま、「次へ」をクリックします。
20170810_08

・「完了」をクリックします。
20170810_09

20170810_10

20170810_11

・スケジュール情報(SCHEDULE_INFO)の「ALLDAY」を選択します。
20170810_12

・「ALLDAY」の「Column Type」を「Boolean」に変更します。
※オラクルでは「Boolean」型は存在しないために、DB定義は「NUMBER(2)」、アプリ定義で「Boolean」に変換
20170810_13

・「ビルド」を行い、テーブルクラスを自動で作成させます。
※重要:事前にビルドしておかないと画面作成時の選択で候補に出てきません。
20170810_14

20170810_15

<「ASPxScheduler」配置設定>
・プロジェクトから「追加」→「新しい項目」を選択し、「Web」→「Web フォーム」を追加します。
20170810_16

20170810_17

・ツールボックスの「DX.15.2:Scheduling」から「ASPxScheduler」をドラッグして追加します。
※「DX.15.2」はDevExpressのバージョンです。
20170810_18

<「XPO」配置設定>
・ツールボックスの「DX.15.2:ORM Components」から「XpoDataSource」をドラッグして2個追加します。
※「DX.15.2」はDevExpressのバージョンです。
20170810_19

<「XPO」とオラクルDB紐付設定>
・上記で配置した「XpoDataSource1」を選択し「TypeName」に「SCHEDULE_MST」を設定します。
※「SCHEDULE_MST」:スケジュールマスタ
※重要:事前にビルドしておかないと画面作成時の選択で候補に出てきません。
20170810_20

・上記で配置した「XpoDataSource2」を選択し「TypeName」に「SCHEDULE_INFO」を設定します。

※「SCHEDULE_INFO」:スケジュール情報
※重要:事前にビルドしておかないと画面作成時の選択で候補に出てきません。
20170810_21

<「ASPxScheduler」と「XPO」紐付設定>
・「スケジュールマスタ」を紐付けるために、「Resource Data Source:」で「XpoDataSource1」を選択します。
20170810_22

・「Resource Data Source:」の「マッピングのウィザード。。。」を選択します。
20170810_22

20170810_23

・「ASPxScheduler」オブジェクトと「スケジュールマスタ」テーブルの紐付設定を行い、「Next」をクリックします。
20170810_24

・今回はカスタムフィールドを使用しないので、そのまま「Finish」をクリックします。
20170810_25

・「スケジュール情報」を紐付けるために、「Appointments Data Source:」で「XpoDataSource2」を選択します。
20170810_26

・「Appointments Data Source:」の「マッピングのウィザード。。。」を選択します。
20170810_26

20170810_27

・「ASPxScheduler」オブジェクトと「スケジュール情報」テーブルの紐付設定を行い、「Next」をクリックします。
20170810_28

・今回はカスタムフィールドを使用しないので、そのまま「Next」をクリックします。
20170810_29

・主キーの「ID」は自動インクリメント対応のために「Retrieve and update ID automatically」にチェックを入れ、「Finish」をクリックします。
20170810_30

【サンプルプログラム】

<「XPO」のセッション設定>
・「Global.asax.vb」のソースを開き、「Application_Start」メソッドで「DataLayer」の接続と「Session」の初期化を行います。
「DevExpress.Xpo.XpoDefault.DataLayer = SAMPLE.ConnectionHelper.GetDataLayer(DevExpress.Xpo.DB.AutoCreateOption.SchemaAlreadyExists)」
「DevExpress.Xpo.XpoDefault.Session = Nothing」

【サンプルプログラム(VB.Net)】

それでは、実行して「スケジュール情報」の「登録、更新、削除」動作確認を行います。

【登録動作確認】
20170810_31

・「新しい予定」を登録します。
20170810_32
20170810_33

・登録した予定がスケジュールに反映されました。
20170810_34

・念のためにオラクルで登録情報の確認を行います。
20170810_35

【更新動作確認】
20170810_36

・対象予定を右クリックから「開く」を選択します。
20170810_37

・予定を変更し「OK」をクリックします。
20170810_38
20170810_39

・変更した予定がスケジュールに反映されました。
20170810_40

【削除動作確認】
20170810_41

・対象予定を右クリックから「削除」を選択します。
20170810_42

・削除した予定がスケジュールに反映されました。
20170810_43

無事に「スケジュール情報」テーブルの「登録、更新、削除」動作確認が出来ました。