レコードセットをttxファイルを介してCrystal Reportのフィールドにマッピング

レコードセットのフィールド値をttxファイルを介してCrystal reportのフィールド定義にマッピング

作業テーブルをAccessにエクスポートして現品票を発行したいと思ったのですが、簡単にできるのかと思ったら結構手こずりました。

古いですがCrystal report 9にはParameter Fieldがあるので、VBからPassing Parameterするのかと思いきやRecord Setを放り投げると勝手にフィールドから値を取ってくれるので、Crystal Report Viewerという無償のActiveXコンポーネントビューアーの中にレポートを表示できます。

それがこの部分。3番目の引数1がTable Numberを表します。

ところがCrystal Report ViewerのようなWin7での標準以外のコンポーネントを使った開発アプリはXPで問題起こす可能性大であり、crviewer9.dllが古いPCで問題起こしまくりなので、まずCR8.5にダウングレードした上で、以下にコード変更。

CR8.5はフォームレイアウトだけに限定させるために、ttxファイルにフィールド定義を行いVBからレコードセットを投げてttxファイルのField Definitionに従ってフォームにはめ込む。

CRファイルのReport Expertでttxファイル(rpt.ttx)を指定してあげると、コード内のレコードセットのフィールド値が自動的にCRファイルのフィールドにマッピングされます。

reportexpert

ttxファイルにタブ区切りでフィールド名、属性、長さを定義するやり方は日本では既に古典の部類に入る手法でしょうが、インドネシアではまだまだ現役です。

こんな投稿も読まれています