CData シリーズ

業務システムのクラウド化が進む中、「どうしても捨てられない業務システムがある」「クラウドのあのデータを社内のシステムと連携したい」「クラウドサービスの標準UIが使いにくい」など利用部門からの要求に頭を悩ませているシステム部門の担当者も多いと思います。

この記事では、こうした課題のひとつである標準UIの変更についてSharePoint(シェアポイント)の予定表を例にとり、データ連携ライブラリ「CDataシリーズ」と、さまざまな外観のカレンダーを作成できる「CalendarGrid」を併用することで、SharePoint標準UIでは表現できない、水平方向のリスト型カレンダーをかんたんに実現する方法を紹介します。

まず、SharePointの予定表には標準ビューが用意されていますが、CData ADO.NET Provider for SharePoint 3JとCalendarGrid for Windows Forms 1.0Jを使用すると、SharePointの予定表のUIを次のように表示することができます。

CData × CalendarGrid
画像「CData × CalendarGrid」
SharePoint
画像「SharePoint」

1)Windowsフォームアプリケーションを作成しCalendarGridのコントロールを配置する

Visual Studioを起動し、[ファイル]-[新規作成]-[プロジェクト]をクリックします。[新しいプロジェクト]ダイアログが表示されますので、[Windows フォームアプリケーション]を選択し、[名前]に“Calendar”と入力して[OK]ボタンを押下します。

画像「User, Password, Security Tokenを設定」

フォームにCalendarGridのコントロールを配置します。今回はCalendarGridに付属している製品サンプルの「学校行事予定」を使用します。CalendarGridのレイアウトはCalendarGrid デザイナを使用してノンコーディングで設計きます。詳しい手順についてはCalendarGridのサンプルおよび製品ヘルプを参照してください。

2)SharePointConnectionコントロールを配置する

ツールボックスからドラッグ&ドロップでSharePointConnectionコントロールをフォームに配置します。[CData SharePoint 接続マネージャー]ダイアログが表示されますので、接続文字列を設定します。
URL … SharePointサイトのURL
User … SharePointのユーザー
Password … SharePointユーザーのパスワード
Share Point Edition … ShrePointのエディション。オンプレミスかオンラインを選択
(※)ネットワーク環境によっては、さらにプロキシなどの設定をする必要があります。

画像「SharePointConnectionコントロールを配置」

3)コーディングをする​

アプリケーション起動時にSharePointから予定表のデータを取得し、CalendarGridコントロールに表示するコードを記述します。

Imports System.Data.CData.SharePoint
Imports GrapeCity.Win.CalendarGrid

--中略--

    Public Sub New()

        ' この呼び出しはデザイナーで必要です。
        InitializeComponent()
        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        Me.InitializeCalendrGrid()
    End Sub

    Private Sub InitializeCalendrGrid()
        Dim _dataSet As DataSet = Nothing        
        Dim dataAdapter As New SharePointDataAdapter("SELECT * FROM 予定表", SharePointConnection1)
        Dim table As New DataTable("MyTable")
        dataAdapter.Fill(table)

        _dataSet = New DataSet("MyDataSet")
        _dataSet.Tables.Add(table)

        gcCalendarGrid1.DataSource = _dataSet
        gcCalendarGrid1.DataMember = "MyTable"
        gcCalendarGrid1.DateField = "EventDate"

        Dim template As CalendarTemplate = gcCalendarGrid1.Template
        template.Content.Rows(0).Cells(0).DataField = "Title"

    End Sub

SharePointから予定表のデータの取得には、CDataのコントロールSharePointConnection、SharePointDataAdapterを使用していますが、コードをご覧になれば一般的なデータベースと同じDataTableおよびDataSetでデータを扱っていることがわかります。ADO.NETを使用したことがある方であればなじみのある手順だと思います。
DataTableおよびDataSetで取得した予定表データは、日付フィールドをCalendarGrid.DateFieldプロパティに設定し、カレンダーに表示したいデータのフィールドをCalendarGrid のセルのDataFieldプロパティに設定することで、CalendarGrid に表示できます。

4)ビルド&実行する

ビルド&実行し、SharePointからデータが正しく取得できているか見てみましょう。

CData × CalendarGrid
画像「CData × CalendarGrid」

正しく予定表のデータを取得し表示することができました。

まとめ

接続文字列の設定と20行程度のコーディングでSharePointとWindowsフォームアプリケーションを連携することができました。また、ADO.NETを使用したことがある方であれば、一般的なADO.NETを用いたDB接続とコーディング作法が変わらないことにお気づき戴けたと思います。つまり、ADO.NET技術者であればSharePointの接続方法を学習することなく接続でき、業務ロジックや、このサンプル記事で紹介したように、標準UIよりも視認性の高いUIの実現に集中して開発することができます。サンプルプログラムおよびトライアル版を公開していますので、ぜひ、ご自分の環境でお試しください。なお、サンプルプログラムはVisual Studio 2013のVB.NETで作成しています。



製品・サービスに関する
ご質問・ご相談など、
お気軽にお問合せください。

電話でお問合せ

048-222-3001

(平日 9:00~12:00、13:00~18:00)

電子メールでお問合せ

es.sales@grapecity.com