ガントバーに1つのタイトルを表示するだけでなく、タイトルやスタート日、終了日、継続時間といったものを表示したいということがしばしば起こります。これまで、作業を簡単化するために、それぞれのアクティビティに対して1つのタイトルのみを表示してきました。そこで、ここではグラフ列へアイコンを加えたときと同様に、ガントチャートに任意の数の文字列をタイトルとして指定する方法を説明しましょう。
まず最初に、私たちがこれから行うことをイメージしやすくするため、1つの例を示します。
複数行を使用するためには、2つのステップがあります。まず最初に、タイトル(名前、色、フォントなど)を設定し、その後、個々のバーに対してタイトル行を加える必要があります。
タイトル行を設定するためには、Activity information プロパティを使用して、作業する必要があります。以下のコードは、その設定方法を示したものです。
$graph->scale->actinfo->SetColTitles(
array('Note','Task','Duration','Start','Finish'),array(30,100));
ここで2つのことに気づくでしょう。はじめに、1つの配列を使用してタイトルを指定しました。また、30と100という数を用いて2番目の配列も指定しました。この配列は、この場合最初の2つのカラムの幅の最小値を指定するオプションの配列です。デフォルトでは、カラムは最大長のテキスト文字列を全て含むことができる長さに設定されます。しかし、見た目を整えるために最小幅を大きくしたいと思うことがあるかもしれません。これが私たちがここで最初の2つのカラムに対して行ったことです。
さらに、背景の色やスタイル、縦の仕切りグリッドラインの色も調節することができます。これまでのイメージの中では、次の行を使用しました。
$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
$graph->scale->actinfo->vgrid->SetStyle('solid');
$graph->scale->actinfo->vgrid->SetColor('gray');
また、ライブラリ内にある線に対する別のフォーマットの場合と同様に、グリッドラインのスタイルを”破線(dashed)”や”ドット(dotted)”、”長い破線(longdashed)”にすることも可能です。また、タイトル内に小さく3D効果をつけることも可能です。これはデフォルトで有効になっています。以下の文を使用すると、簡単に3D効果を付け加えることが出来ます。
$graph->scale->actinfo->SetStyle(ACTINFO_2D);
タイトル内の縦の仕切り線の色を調節するには、SetColor()メソッドを次のように使用します。 "$graph->scale->actinfo->SetColor('navy');".
次にすることは、実際にカラムを埋めることです。これはもちろん、グラフにアクティビティバーを加える際に実行されます。以前にカラムを使用していなかったとき、私たちはひとつの文字列をタイトルとして使用していました。この文字列を単に配列に取り替えることによって、カラムの内容を指定することができます。
例えば、上の例のようなガントバーを作成する2カラムのタイトルを指定する場合、数種類のバーを作成するので、よりよいコーディング習慣のためにこれらすべてを配列へ入れます。
通常のテキストに加え、画像や、先に定義した使用可能なアイコンを付け加えることもできます。カラムへそれらを加えるには、はじめにIconImage() のインスタンスを作成し、次にテキストのかわりにそれらのインスタンスを指定します。そこで、以前のコードの中で、最初のカラムに”オープンフォルダー”の画像を挿入したい場合、以下のように文を変更します。
$iconopen = new IconImage(GICON_FOLDEROPEN,0.6);
$title2="";
$bar = new GanttBar(0,array($iconopen,$title2),"2003-11-23","2003-12-05");
使用可能な内蔵アイコンは、以下の通りです。
さらに、引数を文字列として指定するならば、あなたが用意した画像を使用することもできます。
$myicon = IconImage('myicon.png');
奇妙に思えるかもしれませんが、IconImage() の呼び出しの際の2番目の引数は、画像の大きさを調節するために使用するオプションの値です。