Page History
グラフは、1つまたは複数のフィールドの情報をグラフ形式で表示します。現在のバージョンでは、面グラフ、棒グラフ、折れ線グラフ、円グラフ、散布図、等高線グラフが表示できます。詳細は、GraphTypeプロパティの機能オンライン・ヘルプを参照してください。
円グラフは、データを1つのフィールドから表示し、他のグラフは、データを複数のフィールドから表示できます。散布図と等高線グラフは、2つの以上のデータ・フィールドが必要です。
他のリストでは、フィールドは列として表されます。グラフ化されるデータを含む列(数値データ)は、ColumnRole(Data)として定義され、テキスト情報を含む列は、ColumnRole(Label)として定義されます。ColumnRoleは、列を非表示にして無効にするNoneにも設定できます。これは、グラフに複数の列があり、表示されるデータを動的に変更する場合に有効です。
グラフのタイプが違うと、そのスタイル設定も異なります。AreaStyle、BarStyle、LineStyle、PieStyle、ScatterStyle、およびSurfaceStyleプロパティを使用するセットがあります。
最小値、最大値、平均値、合計値をグラフにする場合は、KEEP_XXXXXコマンドを使用して値を計算できます。例えば、#SALARYAVGフィールドを定義し、#SALARYフィールドの平均の値を保存すると、部門ごとの平均の賃金を表示できます。
*(
...
Department loaded and selected previously)
EVTROUTINE HANDLING(#PHBN_1.Click)
...
clr_list #grph_1
...
select (#section #secdesc) from_file(sectab)
...
with_key(#deptment)
...
select #salary from_file(pslmst1)
...
with_key(
...
#deptment #section)
...
KEEP_AVG OF_FIELD(#SALARY)
...
IN_FIELD(#SALARYAVG)
...
endselect
add_entry #grph_1
endselect
ENDROUTINE
グラフは、ユーザーがグラフの部門をクリックするとItemGotSelectionイベントを受け取ります。このイベントは、グラフの列の現在のエントリーを設定します。例えば、棒グラフで社員を表す棒をクリックすると、その社員がグラフの現在のエントリーになります。この機能を使用してメッセージ・ボックスや他のグラフなどで現在のエントリーに関する詳細な情報を提供できます。
以下の円グラフは、個々の社員が獲得した合計の賃金の割合を示します。
グラフを実行すると、円グラフの違う部門をクリックすると(ItemGotSelectionイベント)、名字(CurrentItem)が変更されることがわかります。
グラフのソースは以下のようになっています。
FUNCTION OPTIONS(*DIRECT)
*Definitions
BEGIN_
...
COM HEIGHT(412)
...
LEFT(218)
...
TOP(160)
...
WIDTH(462)
DEFINE_
...
COM CLASS(#PRIM_GRPH)
...
NAME(#GRAPH)
...
DISPLAYPOSITION(1)
...
HEIGHT(305)
...
LEFT(32)
...
PARENT(#COM_OWNER)
...
TABPOSITION(1)
...
TOP(56)
...
WIDTH(385)
...
PIESTYLE(AUTOARRANGELABELS)
DEFINE_
...
COM CLASS(#PRIM_GRCL)
...
NAME(#GRCL_1)
...
DISPLAYPOSITION(2)
...
PARENT(#GRAPH)
...
SOURCE(#SALARY)
DEFINE_
...
COM CLASS(#PRIM_GRCL)
...
NAME(#GRCL_2)
...
COLUMNROLE(Label)
...
DISPLAYPOSITION(1)
...
PARENT(#GRAPH)
...
SOURCE(#SURNAME)
DEFINE_COM CLASS(#SURNAME.Visual) NAME(#SURNAME) DISPLAYPOSITION(2) HEIGHT(20) LEFT(32) PARENT(#COM_OWNER) TABPOSITION(2) TOP(16) WIDTH(281)
...
*Get data, add it to the graph and set the caption and the type
EVTROUTINE HANDLING(#graph.initialize)
...
CLR_LIST NAMED(#GRAPH)
...
SELECT FIELDS(#SALARY #SURNAME) FROM_FILE(PSLMST)
...
WHERE('
...
#SALARY > 90000' )
ADD_ENTRY TO_LIST(#GRAPH)
...
ENDSELECT
Set #GRAPH CAPTION('Salaries by Employee' )
Set #graph GRAPHTYPE(Pie)
ENDROUTINE
END_COM

