セルプロパティを直接設定する

<< Click to Display Table of Contents >>

マニュアル > コントロールリファレンス > 基本 > グリッドコントロール > 機能説明 > グリッドのプロパティ設定 >

セルプロパティを直接設定する

セルプロパティを直接指定する方法

セル単位にセルプロパティを設定する方法について説明します。

 

グリッドに表示する表示内容が行単位や列単位ではなく、個別に設定する必要があるような場合はこの方法が適しています。

 

セルごとにセルプロパティを設定することで、グリッドを用いた以下のような表示が可能です。

 

(セルごとに表示形式を指定したイメージ)

cr_0186

 

セルプロパティを各セルで個別に設定する場合は、以下のメソッドを利用します。

 

SetCellProperty

・・・ 対象のセルのセルプロパティを設定します。

 

 

以下は、セルプロパティを個別に設定したスクリプトの記述例です。

	this.Rows = 10;
	this.Cols = 5;

	this.SetCellProperty( "all",c("CellType:label", "FillColor:#FFFFFF", "TextAlignX:RIGHT"));
	this.SetCellProperty( "cell",c("CellType:lamp", "Shape:CIRCLE", "OnColor:#FF0000", "OffColor:#00FF00"),3,1);

	// 列の幅を設定
	this.SetColWidth(0, c(110, 110, 22, 110, 110));
	// ヘッダのタイトル設定
	this.SetTableData(
		c("機器1",
		c("", "55:35:20", 95, "", "3回", F)),
		0,
		0,
                F
	);

 

 

■解説

 

1)

表示するグリッドの行数、列数を指定

 
以下の例では、10行5列の表を作成します。

	this.Rows = 10;
	this.Cols = 5;

 

 

2)

セルプロパティを設定

 
SetCellProperty メソッドでセルのプロパティを設定します。

	this.SetCellProperty( "all",c("CellType:label", "FillColor:#FFFFFF", "TextAlignX:RIGHT"));
	this.SetCellProperty( "cell",c("CellType:lamp", "Shape:CIRCLE", "OnColor:#FF0000", "OffColor:#00FF00"),3,1);

 

SetCellPropertyメソッドでは、第1パラメータで "all"(全て) / "col"(列) / "row"(行) / "cell"(セル) / "range"(範囲) のいずれかを指定して範囲を定義します。

 

そして、第2パラメータに、その範囲のセルに対して適用するセルプロパティを配列で指定します。

 

第2パラメータは、以下の書式で指定します。

"セルプロパティ名:設定値"

 

また、一度に複数のセルプロパティを設定する場合は、配列で指定します。

c("セルプロパティ名1:設定値1", "セルプロパティ名2:設定値2" ...)

 

 

3)

列の幅を指定

 
SetColWidthメソッドで列ごとの幅を設定します。

	this.SetColWidth(0, c(110, 110, 22, 110, 110));

 

 

hint

上記の例の方法以外にも、列/行プロパティによって列の幅を一括で設定することもできます。詳しくは「列/行プロパティを設定する」を参照下さい。

 

 

4)

ヘッダ、および各セルへデータを設定

 
SetData / SetTableData / SetColData / SetRowData でヘッダ、および各セルへデータを設定します。

	this.SetTableData(
		c("機器1",
		c("", "55:35:20", 95, "", "3回", F)),
		0,
		0,
                F
	);

 

 

 

hint

個別にプロパティを指定する表示形式では、セルプロパティを設定した後に新たに行、および列を追加すると、後から追加されたセルはセルプロパティが設定されていない状態です。そのため、追加したセルに対して新たにセルプロパティを設定する必要があります。

 

hint

SetCellPropertyメソッドには構文がいくつか用意されており、行単位(row)、列単位(col)、セル全体に対してセルプロパティを一括で設定することもできます。

また、プロパティは配列により複数同時に指定することもできます。

 
列単位でプロパティ一つを設定した例)

this.SetCellProperty(

                 "col",

                 "CellType:label",

                 0

                 );

 

列単位で複数プロパティを一括で設定した例)

this.SetCellProperty(

                 "col",

                 c("CellType:label", "FillColor:#FF0000", "TextColor:#FFFFFF"),

                 0

                 );

 

 

attention

セルのプロパティ(背景色、文字の色、文字の位置、点滅など)を設定する場合、予めセルタイプを設定する必要があります。共通セルプロパティ「CellType」によりセルタイプを設定する場合、配列の先頭で指定する必要があります。

 

this.SetCellProperty(
			"col",
			c("CellType:button", "TextColor:@TextColor"),
			1
		);

 

 

hint

ヘッダセルのプロパティ(背景色、文字の色、文字の位置、点滅など)を設定する場合、SetCellPropertyメソッドの第1パラメータで「cell」「row」「col」「range」でセルタイプを設定する必要があります。「all」ではヘッダのセルタイプは設定されません。また、ヘッダを指すインデックスはマイナス値を指定する必要がある点にも注意してください。

 

	this.SetCellProperty(
			"cell",
			c("CellType:label", "FillColor:#FFFFFF", "TextAlignX:RIGHT"),
			0,
			-1
		);