ダイヤモンド形のポインタ機能を新規搭載【Javaグラフ・チャートツールEspressChart】

EspressChartのVer6.3 Update18にて、グラフのポインタに「ダイヤモンド(Diamond)」形を設定できるようになりました。

設定は「Line and Point」画面から可能です。

今回新規搭載されたダイヤモンドの他にも以下の形のポインタを設定可能です。

・Cross(×:バツマーク)
・Circle(○:丸マーク)
・Square(□:四角マーク)
・Triangle(△:三角マーク)※上向き
・Plus(+:プラスマーク)
・Star(☆:星マーク)
・Line(-:ラインマーク)
・Inverse Triangle(▽:逆向き三角マーク)※下向き

ポインタを使用することで、特に棒グラフなどでは視覚的に値を把握しやすくなったり、複数のグラフの組み合わせ時に位置関係を把握しやすくなります。

チャート上での曲線数式の表示方法【Javaグラフ・チャートツール「EspressChart」】

[Q] EspressChartでマイクロソフトのエクセルのような近似曲線の数式をチャート上で表示することは可能でしょうか?それができればWeb上でユーザがチャートの数式を確認することができます。

** エクセルでの設定方法 **

[A] EspressChart Ver6.3からその為の新規APIが追加され、チャート上にその曲線の数式を表示することが可能になりました。

**EspressChartでの 出力サンプル例 **

レポートのセルオブジェクトをカスタマイズ【Java対応レポート帳票ツール:EspressReport】

EspressReportでは、レポートデザイナを使用してレポートや帳票のセルに対して様々なカスタマイズが可能です。もちろんこれらはJava実行時にAPIで制御することも可能です。

●Data Format

データのフォーマットを設定できます。Stringでは、文字列を全部表示するか、一定文字数以上で省略するかの設定が可能です。Bar Codeを選択すると、バーコードの種類を選択できます。

●Font Style and Size

フォントの種類・スタイル(太字・斜字など)・サイズの変更が可能です。

●Font Color

フォントの色を設定できます。

●Background Color

セルの背景色を設定できます。

●Border Color

セルのボーダー色を設定できます。

●Border Thickness

セルのボーダーの幅を設定できます。0でボーダーなしです。

●Dual Colors

Dual Colorsについて↓
http://blog.goo.ne.jp/quadbase/e/8cccef0a7b6fd299372815ba12d8d4a6

●Set Bounds

セルの幅や高さの設定や、ポジションの設定が可能です。

●Alignment

セル内の文字の位置を調整できます。

上記のオプション画面は、対象セルを右クリック⇒「Edit Attributes」を選択することで使用可能ですが、レポートデザイナーには予めデザイナ用ツールバーも用意されており、より簡単に操作することも可能です。

●デザイナツールバー

デュアルカラー(交互表示の色設定)【Java対応レポート帳票ツール:EspressReport】

EspressReportでは行単位で交互に色を設定することが可能です。背景色やフォント色の変更はもちろん、フォントのサイズや種類も変更可能です。

●手順

レポートデザイナで対象のフィールドを右クリックし、「Edit Attributes」を選択します。

「Enable Dual Colors」にチェックを入れ、「Row Index」にチェックを入れます。
次に、「何行おきに設定するか」の数値を入力します。
上記設定後、「Background Color」を押下します。Font ColorやFont Styleを押下することで、フォント色やフォントの種類・サイズの変更も可能です。

上記でBackground Colorを押下した場合に、下記のカラーパレットが表示されますので、設定する色を選択します。

1行おきに色変更を適用したプレビュー表示です。すべてのフィールドに適用したい場合は、他フィールドでも同様の設定をします。

2行おきに色変更を適用したプレビュー表示です。すべてのフィールドに適用したい場合は、他フィールドでも同様の設定をします。

スクリプト(Script)を使用し動的にレポートを制御【Java対応レポート帳票ツール:EspressReport】

スクリプト(Script)を使用すると、動的に特定の条件が満たされている特定のレポートオブジェクトのプロパティを変更することができます。

例えば・・・
・条件を満たす時にオブジェクトを変更
⇒色の設定、セルの幅・高さ、
・値の計算
・フォーマット変更
・文字列操作(関数使用、replaceなど)

などが可能です。

●事前準備

まずはベースとなるレポートを用意しておきます。

●スクリプトの作成

まずは通常通りレポートを作成しておきます。

●スクリプトの適用

メニューバーから「Format」⇒「Scripting」を選択します。

スクリプト一覧画面が表示されますので、「NEW」を押下します。

任意の名前を設定します。

スクリプトを記述します。
ここでは「Price」というフィールドの値が2,000より大きい場合に、セルのバックグランドカラーを変更するスクリプトを記述しました。
このように「条件を満たす時にオブジェクトを制御」するのが一般的な使い方です。
フィールドや関数は右ペインから選択できます。下ペインからは色やフォント指定や値の計算をするスクリプトを使用できます。
スクリプトの記述が完了したら、保存します。

保存しただけではスクリプトは動作しません。スクリプトを適用するセルを選択する必要があります。
レポートデザイナからスクリプトを適用するセルを右クリックし、Scriptingを選択します。

先ほど作成したスクリプト名が一覧表示されますので、「APPLY」を押下します。
スクリプト名に「*」が付けば適用されたことになります。

レポートデザイナ上ではスクリプトが適用されている場合は、下記のようにチェックマークがつきます。

適用させたいセルすべてにスクリプトを適用したところです。

以下がスクリプトを適用したプレビュー表示です。
Priceが2,000より大きいデータの色が変更されています。

複数のチャート・グラフをレポートに対して挿入【Java対応レポート・帳票ツール:EspressReport】

EspressReportでは1つのレポート内に複数のチャート・グラフを挿入することができ、またグラフごとに違うデータソースを設定することも可能です。多種多彩なグラフを1つにまとめるなど、ダッシュボードに近い形のレポートも作成できます。また、サブレポートと併用することで、複数のレポート・帳票と複数のチャート・グラフを1つにまとめることも可能です。

レポートデザイナの編集画面です。これはまだレポートが1つの状態です。

チャート・グラフを挿入するときはInsert⇒Insert Chartを選択します。

チャートを挿入した画面です。このように複数挿入することもできます。

上記赤枠をクリックすると、チャートデザイナが開きますので、ここでチャートを編集できます。

以下はプレビュー表示です。レポート1つ+チャート2つの例です。

複数のレポートや帳票を挿入【Java対応レポート・帳票ツール:EspressReport】

EspressReportでは1つのレポート内に複数のレポート・帳票を挿入することができ、またレポートごとに違うデータソースを設定することも可能です。多種多彩なレポートを1つにまとめるなど、ダッシュボードに近い形のレポートも作成できます。

レポートデザイナの編集画面です。これはまだレポートが1つの状態です。

複数のレポートを作成する場合は、Insert⇒Insert Sub-Reportを選択します。

サブレポートをどこに挿入するかマウスのドラッグ&ドロップで決定します。

サブレポートを挿入したところです。メインレポートに対して、サブレポートの位置が表示されています。

サブレポートを編集する場合は、サブレポートのタブを選択して、サブレポート単体画面で編集します。

サブレポートの編集画面です。サブレポートは複数挿入することができ、また、サブレポート単位での編集になるので、管理しやすくなっています。

レポートオブジェクトの作成【Java対応レポート・帳票ツールEspressReport】

EspressReportでは、レポートデザイナで作成したレポートファイルを元に、Java実行時に動的にレポートを制御することが可能です。その前提としてまずはレポートオブジェクトの作成が必要となります。作成したオブジェクトに対して、例えば色を変更したりデータを上書きしたり、さまざまな制御が可能となります。

●レポートオブジェクトの作成

QbReport report = new QbReport(~);

これが基本の形です。すべてはここから始まります。

●サブレポートオブジェクトの作成

QbReport report = new QbReport(~);
QbReport subReport1 = (QbReport)report.getSubReportAt(0).getSubReport();

レポート内にサブレポートが含まれる場合でサブレポートを制御する方法です。

●ドリルダウンレポートオブジェクトの作成

QbReport report = new QbReport(~);
QbReport drillDownReport1 = (QbReport)report.getDrillDownReportAt(0, true);

レポート内にドリルダウンレポートが含まれる場合でドリルダウンレポートを制御する方法です。

●チャートオブジェクトの作成

public class ModifyChart implements IChartModifier {
    public IChart modifyChart(Object chartInfo) {
        ChartObject chart = new ChartObject(chartInfo);
        // ここでチャートオブジェクトを制御
        return chart;
    }
}

レポート内にチャートが含まれる場合でチャートを制御する方法です。
IChartModifierインターフェースを実装するクラスを作成する必要があります。

【参考】EspressChartでのチャートオブジェクトの作成

QbChart chart = new QbChart(~);

フリーラベル機能(テキスト挿入)【Javaチャート・グラフ作成ツールEspressChart】

EspressChartではチャートのキャンバス内の任意の場所にテキストを挿入できる、フリーラベル機能があります。

また、このフリーラベルのテキストはJava実行時に動的に変更することも可能です。

サンプルコードは下記のとおりです。

// chart はチャートオブジェクト
Vector annotations = chart.gethAnnotations().getAnnotationList();// quadbase.util.IAnnotation
// テキストが複数ある場合はgetの引数を0,1,2と変更
IAnnotation a = (IAnnotation)annotations.get(0);// 上書き
a.setValue(“テキスト変更”);

背景色の設定(Java実行時)【Javaチャート・グラフ作成ツールEspressChart】

EspressChartでの背景色の設定は、チャートデザイナからはもちろん、Java実行時にも動的に変更可能です。
もちろん、EspressReportでも同様の手順で可能です。

●キャンバスの背景色変更

// キャンバス背景色変更を赤にする
chart.gethCanvas().setBackgroundColor(Color.RED);

※下記はEspressReportでチャートのキャンバス背景色を変更した例です。ちょっと赤が強い・・・

●プロートの背景色変更

// プロート背景色変更
chart.gethChartPlot().setBackgroundVisible(true);
chart.gethChartPlot().setBackgroundColor(Color.red);
※こちらはEspressChartのチャートの「プロート」を変更した例です。