カスタム要素の作成

独自の要素を作成する方法について説明します。

要素レンダラ

要素レンダラは各要素を描画するためのオブジェクトです。

各レンダラの名前空間(パッケージ)以下には、 elementrenderer.IElementRendererというインターフェースが用意されており、 これを実装することで独自の要素レンダラを作成することができます。

要素レンダラは、各レンダラのSettingが持つElementRendererMapに、 type値をキーとして登録することで利用可能になります。

要素レンダラを実装する場合は、 各レンダラの名前空間のelementrenderer以下にあるクラスのソースを参考にしてください。

要素プリプロセッサ

[exp(式)]等のプロパティを持った要素では、式を評価して得ることのできる値を必要とします。 ただし、要素レンダラ内では式の評価を行うことはできません。

式の評価は、要素プリプロセッサというオブジェクトによって行われ、 得られた値が要素レンダラに渡されます。

デフォルトの要素プリプロセッサは、 要素のデザイン定義内に[exp]というプロパティがあればその値を式として評価します。 もしくは、[text]というプロパティを持っていて、 その値に #{} が含まれていた場合はカッコ内を式と見なして評価します。

これ以外の方法で動的な値を要素レンダラに渡す必要がある場合は、 IElementPreprocessorというインターフェースを実装することで、 独自の要素プリプロセッサを作成します。

作成した要素プリプロセッサは、ReportSettingのElementPreprocessorMapに、 [type(種類)]値をキーとして登録することで利用可能になります。

要素プリプロセッサを実装する場合は、 jp.co.systembase.report.elementpreprocessor以下にあるクラスのソースを参考にしてください。