カテゴリー別アーカイブ: コード

クリスタルレポート 説明文を1ページ目に表示


発注書などでは、最初のページに説明文を表示したいことがある。 しかし、レポートヘッダでは位置が悪い。かといって、ページヘッダではすべてのページに表示される。 そんなときは次のようにすると、1ページ目にだけ表示する項目を設定できる。 1行程度の説明文の場合におすすめ。

  1. ページヘッダ内にテキストを入力する。

  2. 入力したテキストを選択して、メニューバーから CrystalReport を選び、その中から、式ワークショップをクリック。

  3. 左に表示されるツリーから、ページヘッダを選び、その中の説明文を書いているテキストオブジェクトを選択する。

  4. 次に、新規作成を選び、非表示というのを選ぶ。

  5. 次のコードを入力する。

これで、1ページ目にだけ表示される。


CrystalReport: グループを作るとできる空白ページを消す


クリスタルレポートでグループ化をして、グループフッタ表示後に改ページをするようにしておくと、最後になにもない空白のページができてしまいます。

続きを読む CrystalReport: グループを作るとできる空白ページを消す


Oracle: Group 化 の際に文字列を結合する


Group 化 する際に 文字列を カンマ区切りで結合する方法を 2つ 紹介します。

ストアドファンクション

ストアドファンクション を使って文字列を結合します。

このようなファンクションを作っておいて、 次のような SQL を実行します。

出力結果サンプル
GROUP_ID MEMBER_NAMES
1 A, B, C
2 D, E

もし、 MEMBER_NAMES の出力結果が文字列として長くなりすぎる場合は、 文字数の長さを調べて分岐処理を行うように ファンクション を変更すれば OK です。 末尾に “等” をつけたりもできます。 区切り文字を変更することもできます。

ファンクション内で使われている LTRAM(PARAM1, PARAM2) は、 PARAM1 の左端に、 PARAM2 があれば削除する関数です。 右側を削除する場合は RTRAM が使えます。

wm_concat

wm_concat という関数を使っても同じことができます。 Oracle(オラクル) のマニュアルにも載っていない関数なので、 オラクルのサポートは受けられないと思います。

上の SQL を実行すると、 AAAAA, BBBBB, CCCCC, DDDDD というような結果が出力されます。


同等の機能をもつ ListAgg 関数 が Oracle 11g R2 で 正式にサポートされました。

参考: Oracleの階層問い合わせ