SAP Crystal Reports で DB2 ののデータをレポートに出力
Crystal Reports にはリモートデータへのデータ処理をオフロードするためのさまざまなオプションが用意されており、リアルタイムレポートを実現できます。Crystal Reports がJDBC に対応しているため、CData JDBC Driver for IBM DB2 によってこの機能をCrystal Reports で利用できるようになります。この記事では、レポート実行時にデータを更新するDB2 のデータレポートを作成する方法を紹介します。
以下の表は、この記事で使用するツールとバージョンです。
| アプリケーション名 | バージョン |
|---|---|
| SAP Crystal Reports 2020 | SP3 |
| JDBC Driver | 23.0.8565 |
JDBC Driver のデプロイ
Crystal Reports のクラスパスにドライバーJAR を含めて、CData JDBC Driver for IBM DB2 をインストールします。DataDriverCommonElement の下にあるClassPath 要素のパスに、.jar を含むフルファイルパスを追加します。
CRConfig.xml ファイルのデフォルトの場所はC:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java ですが、インストールによって多少異なる場合があります。ドライバーJAR はインストールディレクトリのlib サブフォルダにあります。
ClassPath にJAR を追加したら、Crystal Reports を再起動します。
DB2 のデータに接続
DB2のJDBC Driver をデプロイしたら、レポートウィザードを使用して新しいレポートにDB2 のデータを追加できます。
- File -> New -> Standard Report をクリックします。
- Create New Connection の下にあるJDBC (JNDI) を展開し、Make a New Connection をダブルクリックします。
- CData JDBC Driver for IBM DB2 を使用して接続文字列を作成します。
- Server: DB2 を実行するサーバー名。
- Port: DB2 サーバーのポート。
- Database: DB2 データベース名。
- AuthScheme:USRIDPWD。
- User:データベースへのアクセス権を持つユーザーのユーザー名。
- Password:データベースへのアクセス権を持つユーザーのパスワード。
- AuthScheme:EUSRIDPWD
- User: DB2 のユーザ
- Password: DB2 のパスワード
- Database: DB2 の接続先データベース
- Server: DB2 のサーバー
- Port: DB2 のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
- User: DB2 のユーザ
- Password: DB2 のパスワード
- Database: DB2 の接続先データベース
- Server: DB2 のサーバー
- Port: DB2 のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
ウィザードでJDBC 接続URL を入力します。
jdbc:db2:Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=test;
ドライバークラス名を設定します。
cdata.jdbc.db2.DB2Driver
- レポートに必要なテーブルを選択します。
- SAP Crystal Reports でDB2 のデータのテーブルをリンクすることもできます。テーブル間のリンクを追加したら、NEXT をクリックします。
- テーブルを選択したら、選択したテーブルからレポートに表示するフィールドを選び、NEXT をクリックします。
- レポート上の情報をグループ化するために「Group By」フィールドを選択します。
- 集計合計に基づいてグループを並べ替え、NEXT をクリックします。
JDBC URL の構成については、DB2 JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.db2.jar
DB2 に接続するには以下のプロパティを設定します。
接続の準備ができたら、認証スキームを選択し、以下で説明するように適切なプロパティを設定します。
CData 製品 は、DB2 への認証に4つの異なるスキームをサポートします。DB2 ユーザー資格情報(デフォルト)、暗号化されたユーザー資格情報、IBM Identity and Access Management(IAM)認証、および Kerberos です。
DB2 ユーザー資格情報
ユーザー資格情報を使用して認証するには、次のプロパティを設定します。暗号化されたユーザー資格情報
サーバーがセキュア認証に対応しており、暗号化されたユーザー資格情報を使用して認証を行いたい場合は、このプロパティを設定します。IAM、Kerberos で認証したい場合は、ヘルプドキュメントの「はじめに」セクションを参照してください。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
接続文字列形式では以下のようになります。
Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=testUseSSH=true;SSHAuthMode=Password;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
接続文字列形式では以下のようになります。
Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=test;UseSSH=true;SSHAuthMode=Public_Key;SSHClientCertType=PUBLIC_KEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションをデザインする際のパフォーマンス向上に役立ちます。
その後、グループ化、並べ替え、集計を設定できます。集計とサマリーを使用してチャートを作成するには、次のセクションを参照してください。
チャートの作成
グループ化するカラムを選択した後、標準レポート作成ウィザードでチャートを作成するオプションが表示されます。以下の手順に従って、OrderName カラムの値を集計するチャートを作成します。
- 標準レポート作成ウィザードで、Bar Chart オプションを選択し、「On change of」メニューでグループ化したカラムを選択します。
- Show Summary メニューで、作成した集計を選択します。
- 必要に応じてフィルターとテンプレートを選択し、ウィザードを完了します。
レポートのテンプレートを選択すると、完成したレポートをプレビューし、データが入力されたチャートを表示できます。
完成したレポート
レポートに最初に指定したすべてのフィールドが含まれていることを確認できます。
リモートデータの操作
データの更新を確認するには、File をクリックし、「Save Data with Report」オプションをオフにします。レポートを操作すると(例えば、詳細にドリルダウンすると)、Crystal Reports はレポートの表示に必要なデータを取得するためにSQL クエリを実行します。すでに取得したデータを再読み込みするには、レポートを更新または再実行します。
詳細要素を非表示にし、サーバー側グループ化を有効にすることで、ドライバーに処理をオフロードできます。これを行うには、レポート作成ウィザードでグループ化するカラムを選択する必要があります。
- File -> Report Options をクリックし、「Perform Grouping On Server」オプションを選択します。
- Report -> Section Expert をクリックし、レポートのDetails セクションを選択します。「Hide (Drill-Down OK)」オプションを選択します。
詳細を非表示にしてレポートをプレビューすると、Crystal Reports はGROUP BY クエリを実行します。チャートのカラムをダブルクリックして詳細にドリルダウンすると、Crystal Reports は必要なデータのみを取得するSELECT WHERE クエリを実行し、読み込み時間を短縮します。
これで、SAP Crystal Reports とCData JDBC Driver を使用して、DB2 のデータに基づくSAP Crystal レポートが作成できました。CData JDBC Driver for IBM DB2 の詳細と無料トライアルのダウンロードについては、DB2 JDBC Driver ページをご覧ください。ご不明な点がございましたら、サポートチームまでお問い合わせください。