EspressChart & EspressReport Tips site   

EspressChart & EspressReport Tech Blog (2005.2.19から)

日本語表示問題とX-Serverについて


EspressChartとEspressReportは内部コードとしてUnicodeを採用しております
外部(ファイル等)から文字列を入出力する場合は、文字のエンコーディング正しく変換する必要があります。

■Javaの文字化け“??? ”の法則とその防止策 は下記のサイトを参考にしてください。

http://www.atmarkit.co.jp/fjava/rensai2/webopt08/webopt08.html

■ Javaの国際化機能については下記のサイトを参考にしてください。

http://www.dmz.hitachi-sk.co.jp/Java/Tech/i18n/i18n.html

■Javaと日本語問題に関するホワイトペーパ- (PDF, 40KB)


 EspressChartとEspressReportをUnix/Linux系のプラットフォームで使用する時にはX-Serverが必要です。

X-Serverの使用を回避する方法は次の3つがあります。

 (1) X-Serverが搭載されていないUNIX系サーバのためにPJA(Pure Java AWT)が利用できます。
詳しくいは下記のPJA資料を参照ください。
PJA資料


PJA 日本語サイト

PJAについての説明が日本語でされています。


 (2) JDK 1.4.1のHeadlessオプションについて
Linux,UnixシステムにおいてX-Serverを使用したくないユーザのための新しい手法です。

JDK 1.4.1 can be configured to run headless on a server--when graphic display
is not needed on the server machine. Basically, you would add
"-Djava.awt.headless=true" to the Java command line.
For additional informationon this, please check the following link:

http://java.sun.com/j2se/1.4/docs/guide/awt/AWTChanges.html#headless

詳しくはマニュアルDeploymet(ディプロイメント)セクションを参照ください。


 (3) X-Serverカードを購入後の EspressChart のセットアップ方法(AS/400のみ):

[質問]
> カード購入後、セットアップが必要となると思いますが、
> PCサーバカードをAS/400に組み込んだ後どうすればよいのでしょうか?
> AS/400上の設定は行ったとしてそれだけでよいのでしょうか?
> PCサーバ上にWebsphereを入れて、その上にEspressChartを入れて、とかという作業が
> 必要になりませんか?


[回答]
IBM AIX機械については、X−Server起動後
(WebSphere起動後)
管理者としてログインしてください。
その後
export DISPLAY=IP_address:0.0
のコマンドを打ってください。

ディスプレイ環境変数の設定が必要になります。


サンプルプログラム・Tips等


ダウンロード資料

グラフ内の点や棒を選択することによってその元となるデータの取得方法

日限データによるチャートの表示

グラフ外への文字及び罫線の表示

EspressChartのグラフ作成パフォーマンスに関する質問

エクセルからEspressChartへの接続方法

EspressChartのグラフ作成パフォーマンス測定方法

EspressReportでのカラムへのブランク挿入方法

EspressReportでのサーブレット用サンプルプログラム1

EspressReportでのサーブレット用サンプルプログラム2

サブレット用ガントチャートサンプルプログラム

オーバレイチャートのサンプルプログラム

散布図でのアイコン選択方法

散布図におけるプロットごとのラベル表示方法

EspressChart用のTomcat資料

EspressReport用のTomcat資料

X11R6資料

サブレットでの日本語表示サンプルプログラム(EspressChart)


チャートビューアでSQL文章を可変に
[質問]

> 現在、弊社にてEspressChartApiを利用して2次元のコンビネーショングラフを
表示させております。
> しかし、メンテナンスを考えるとチャートビューアを利用したく考えております。
> 弊社で、チャートビューアを使用したテストが正常に作動しました。
> <APPLET code="quadbase.chartviewer.Viewer.class" width="640" height="480"
> archive="lib/EspressViewer.jar">
> <PARAM name="filename" value="userdb/plsalldata4.cht"> ←作成したチャートファイル
> </APPLET>
> このchtファイルにはデータ取得用のSQLがかかれておりますが、このSQLを可変にするこ
> とはできるのでしょうか?
> また、その場合にはどのようにすればよいのでしょうか?
----------------------------------------------------------------

[回答]

<PARAM name="filename" value="userdb/plsalldata4.cht">
を以下のように変更願います
<PARAM name="filename" value="userdb/plsalldata4.tpl">

chtファイルは図表データを含んでいます。
しかし、tplはデータを含んでおらず、それがhtmlページに開かれるごとに、
データ・ベースから新しいデータを検索します。
espresschart¥ヘルプ¥マニュアル¥Chp_5.htmlでは、
それがさらにクエリーをそれ自身変更するためにコードを持っています。
<applet code = "quadbase.chartviewer.Viewer.class"
width=640 height=480>
<PARAM name="sourceDB" value="jdbc:odbc:DataSource ,
sun.jdbc.odbc.JdbcOdbcDriver,
username ,
password ,
select * from products">
<PARAM name="dataMap" value="0 1 -1 3">
<PARAM name="chartType" value="3D Column">
</applet>


HICO図

1. HLCO図の複数同時表示
 異なる単位のグラフを一つの画像として出力.
 2つの独立した図を一つの画像として出力させる.


2.HLCO図でのY軸右側表示
 HLCO図のY軸を左側ではなく,右側に表示させる.

ダウンロード資料


EspressChartは別々のシリーズで分散チャートの色を変えることが出来ます

また、別々のシリーズのすべてのデータで近似線「リニアトレンドライン」
を表示するにはその別々のシリーズからのすべてのデータを
最初のシリーズに複製(duplicate)して
最初のシリーズのためだけのトレンドラインを描写します。

他のシリーズのデータを、最初のシリーズの同じ点上での
別の色付き点の為の描画用として使用します。

ダウンロードファイルは
チャートはDing.datを使用して作成されています。
ChartDesignerからtrendline.chtをオープンすると
チャートの設定が確認できます。


Question:X軸に日付を用いた場合のラベル表示間隔(HLCOチャート)
 日付データをX軸にマッピングし、ラベルの表示間隔を
 年・月・日で指定したいのですが。

Answer:In the HLCO_sample.cht the X axis date labels are displayed
as category ofinput data on the X axis. In this mode of display,
you can use the Zoom option to change the beginning/end date
and whether you want to display date linearly.
An example is enclosed, created by using LINE chart
with secondary axis (using the same scale as primary axis).
Displaying only the points but not the LINE will make LINE chart
looking like SCATTER chart.



サンプルExcelデータから3D STACKCOLチャート(gif)への出力例


Y軸を無視してただの文字項目として扱うこと方法?
[回答]To make just the y-axis disappear while keeping the axis labels:

QbChart chart = new QbChart(.....);
chart.gethYAxis().setVisible(false);


異なったフラットフォームでチャートサイズを正確にコントロールする方法(EspressChart)

例:
サイズキャンバス(Canvas)サイズをchart.export() サイズと正確に同じにする必要があります。
myChart.gethCanvas().setSize(new Dimension(400,300));

................................................................................................................................................................
myChart.export(QbChart.GIF,"Sample_1014",400,300);
// The purpose of this is to disable the automatic resizing
// Then you may move the Legend to a precise location on Canvas
//Move legend > ILegend legend = myChart.gethLegend();
legend.setPosition(new Position((float).82,(float).6));
// Please do not use setFitOnCanvas here as it do small adjustment to fit the X label
// こちらの添付ファイルを参照ください。


 Q:セカンダリー凡例ラベルの強制的な変更方法
プライマリー(主軸)とは別にセカンダリー凡例のラベル名を変更する方法

例:
プライマリー凡例
Price
A
B
セカンダリー凡例
Quantity
A->C
B->D

ソースコードのダウンロード(ZIP)


 サンプルチャート1 (2004年11月3日)

ソースコードと資料のダウンロード(zip)


 サンプルチャート2 (2004年11月3日)

ソースコードと資料のダウンロード(zip)


サンプルチャート3 (2004年11月3日)

ソースコードと資料のダウンロード(zip)


 Q: EspressReportを使用して、ユーザーの指示に従ってあるユーザーには帳票AとBの
文書を出力し、他のユーザーには帳票BとCの文書を出力する方法は?

あらかじめ、A→BのレイアウトとB→Cのレイアウトを作成しておけば
可能でしょうが、レイアウト数が多く、全ての組合せを作成すること が難しい場合、
ユーザーの指示を受けて動的に組み合わせたい。

A: 添付しましたZipファイルはレポート(サブレポートと)とAPIコードで
変数の値依存する特定のレポートを表示/非表示が可能です。


このサンプルを稼動させるのはHSQLサンプルデータベースの稼動が必要です。
詳しくはEspressReportのクイックスタートガイドのセクション3.2.1.1を参照 くだ さ > い。

日本語:
http://www.gogogow.com/soft_er/QuickStartGuide/Start3.htm#3211

英語:
http://www.quadbase.com/espressreport/help/manual/Start3.html#3211

サブレポート(*_sub.rpt) はインストレーションで/SubReport/ ディレクトリ ーに 追加する必要があります。
Javaコードを変更してシステムでの > レポートファイルの位置屁を指定する必要があります。

「The sub-reports (*_sub.rpt) will need to be added to the /SubReport/
directory of your installation. You will need to modify the Java code to
point to the location of the report file on your system.」


 EspressReportでデータソースと連動させることなく、 罫線や見出しからなるレイアウトを作成する方法:

EspressReport v3.5とデータソースとして HSQL サンプル・データベースを使用したサンプル

HSQLについては http://www.hsqldb.org  を参照ください。


システム的な問題に関して


JDK1.4のヘッドレスモードとサーブレットについて:

ヘッドレスモードでサーブレットを使用するときはAPIラインで
QbChart.setForExportOnly(true);
を setChartServerUsed(false) の後ろで、QbChartの前に追加してください。
サンプルプログラムのArrayToJPEGServlet.javaにはこのラインが入っていないので注意ください。

JDK1.4+Headless mode+ EsperessChart Ver4.0の組み合わせで使用される場合、時としてExceptionエラーが発生する可能性があります。
EspressChart Ver4.2での使用、評価をお願いします。


EspressChart Ver4.0ではANTI_ALIASINGがデフォルトになっているため
標準設定ではGIFが出力できません。


GIFを出力するためにはChart Designerの設定を調整するか、
次のAPIラインを追加してください。

chart.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_OFF);


Question:散布図およびHLCO図において,軸タイトルや軸ラベルの文字がぼやけてしまいます.
(EspressChart Ver4.0)


プログラムではQbChart()で作図直後に,

chart.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_
ANTIALIAS_OFF);

として,アンチエイリアスをOFFにしています.
しかし,結果の図ではアンチエイリアスがONのままになっているように見えます.


Answer: In order to turn off anti-aliasing for rotated text,
you need to add theline

chart.gethDataPoints().setJava2DRotateTextEnabled(false);
// in addition to
chart.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_
ANTIALIAS_OFF);
----------------------------------------


2つのグラフが重なった時に出る影の消し方はEspressChart4.0の新しい機能です

APIラインに次を追加ください。

hDataPoints.setShowShadowOnPoint(false);

参考にDing2.javaにこのラインを追加しております。


Subject: How to check the version or revision number of EspressChart
EspressChartの使用バージョン確認方法

Please add the following line in your API codes
System.out.println(QbChart.getVersion());


EspressChart日本語マニュアル(Ver3.5)の訂正項目
249ページ、 1.インストーラ の項目
[誤] e:/home/quadbaseにアンパックします。
[正]e:/home/quadbase/EspressChartにアンパックします。


EspressChart Ver3.8からSwing V1.03のサポートを中止し、Ver1.1のみとなっております。


 MS AccessのSQLについて (参考資料・PDF・496KB)
MS Accessの「データシートビュー」等について詳しくない方へ


EspressChart & EspressReport オンライン・サポートサイト


EspressChart & EspressReport Tech Blog (2005.2.19から)

(株)クライム ソフトウェア事業部


Last Updated: 2005.2.19