組織ツリー帳票事例

  • 作成者:ayuan0625
  • 編集回数:15次
  • 最終更新:FRInternational 于 2021-11-26
  • 一.概要

    物事の間に階層関係がある場合、通常、折りたたまれた、またはインデントされた組織ツリーにより表現できます。

    テーブル構造では、このような分岐階層関係は通常、部門IDと上司IDで表されます。次の図は、テーブル構造の関係とそれにより実現される組織ツリーを示しています。

     

    上図より、組織の各オブジェクトは第一列で一意に表され、各オブジェクト(上位レイヤー)間の関係は第二列で表されます(値は第一列に存在する)。本マニュアルでは、各レイヤーのデータを個別に取得し、及びその上位レイヤーと下位レイヤーの関係により、右側の組織ツリーを生成する方法について説明します。

    二.例示

    1.データの準備

    SELECT * FROM 会社部門

     

    2.帳票の設計

    データセット内のデータを分析することで、組織構造には3つのレイヤーが含まれていることがわかります。したがって、これらの3つのレイヤーを個別に抽出する必要があります。部門ID列は一つの部門を一意に表すことができ、且つ部門間の階層関係も部門ID列の値で表されるため、テーブルは次のとおりに設計されます。

    1.テンプレートには3つのセルがあり、各セル縦方向で展開されます。

    2.セルをデータセットの部門ID列にドラッグしてから、さまざまなフィルター条件を設定します。

    設計されたテーブルは下図のとおりです:

     

    2.1.第一レイヤーのフィルタ

    セルA1は、本社などの第1レイヤーの部門を表します。ただし、すべての部門IDはデフォルトで拡張されており、第1レイヤーの部門はフィルター条件によって選別されなければなりません。

    データから、第一レイヤーの上位IDが空であることがわかります。したがって、セルA1をダブルクリックし、フィルタを選択し、上司ID と等しい 数式 =NULLを条件として追加します(下図参照):

    2.2.第二レイヤーのフィルタ

    セルA2は、人事部営業部などの第ニレイヤーの部門を表します。

    1.親セルを設定する:A1A2左親セルとして設定し、このレイヤーの部門IDを上位部門のIDとともに自動的に展開できるようにします。

    2.フィルター:セルA2をダブルクリックし、フィルターをクリックし、上司ID と等しい A1を追加します。

    3.親セルフィルターの解除:親セルが設定されているため、A1とA2のデータ列は同じデータセットから取得されます。このとき、子セルはデフォルトで親セルをフィルター条件として使用します。つまり、部門ID=親セルIDという条件に一致するデータがなくなります。したがって、A2セルをフィルタするときは、親セルをフィルタ条件とするのチェックを外す必要があります。

    下図のとおりです:

     

    2.3.第三レイヤーのフィルタ

    第3レイヤーの原理は第2レイヤーの原理と同じで、具体的な設定は次のとおりです。

    1.親セルを設定する:A2をA3の左側の親セルとして、上位の親セルをデフォルト値として設定します。

    2.フィルター:セルA3をダブルクリックし、フィルターをクリックして、上司ID と等しい A2 and 上司ID と等しくない =NULLを条件として追加します。

    注:ツリーノードを展開すると、ルートノードが複数あり、且つルートノードの下に子ノードがなければ、レイヤーが空白のままになります。フィルター条件に「上司ID と等しくない =NULL」に類似している条件を追加する必要があります。

    3.親セルフィルターの解除

     

    注:データに3つ以上の組織レイヤーがある場合は、同じ方法でそれらを追加できます。

    2.4.その他の設定

    1.テンプレートで部門IDを使用されます。対応する部門名として表示するには、セル属性-形式-データ辞書で変換する必要があります。詳細については、データ辞書をご参照ください。

     

    2.サブレイヤーのあるレイヤーもあれば、サブレイヤーのないレイヤーもある場合、拡張により空白行が表示されます。空白行設定条件属性を非表示にすることができます。詳細については、行と列の非表示をご参照ください。

    3.プレビュー

    帳票を保存し、改ページプレビューをクリックすると、下図のようになります。


    Attachment List


    Theme: FineReport 帳票実例
    • いいね
    • 良くない
    • 閲覧しただけ