
v4.0
セルデータの 2D 配列全体を設定したり、戻したりします。データは Variant の 2D の SAFEARRAY で表されます。
第 1 次元が列、第 2 次元が行です。
事前に GridData.ColumnCount と Array を設定しておくと、1D の SAFEARRAY または Jscript GridData.RowCount を使用してプロパティを設定することもできます。この場合は、配列内にRow * Column項目を含め、1列ごとではなく1行ごとにデータを解釈させる必要があります。
このプロパティを使用すると、2D 配列を戻す任意の Softimage メソッドからデータを操作できます(ClusterProperty データなど)。以下にその一例を挙げます。
// get accessor Object rtn = GridData.Data; // set accessor GridData.Data = Object; |
'Demonstrate setting data with the GridData.Data method set oGridData = XSIFactory.CreateGridData 'Create an array with 2 columns 'and 4 rows. dim mydata( 1, 3 ) 'Initialize the data (we leave one row empty) mydata( 0, 0 ) = 12000 mydata( 1, 0 ) = "Col1Row0" mydata( 0, 1 ) = "Col0Row1" mydata( 1, 1 ) = 4.567 mydata( 0, 3 ) = "Col0Row3" mydata( 1, 3 ) = Now 'Store current time 'It is not necessary to set the 'rows and columns if we provide a complete '2D array oGridData.Data = mydata logmessage "Columns: " & oGridData.ColumnCount & _ " Rows: " & oGridData.RowCount logmessage "Data contents:" 'Print out the table of items dim i for i = 0 to oGridData.RowCount - 1 logmessage oGridData.GetCell( 0, i ) & vbTab & vbTab & vbTab & _ oGridData.GetCell( 1, i ) next ' Output of this script is the following ' (the date on the last line will change each time it is run) ' 'INFO : "Columns: 2 Rows: 4" 'INFO : "Data contents:" 'INFO : "12000 Col1Row0" 'INFO : "Col0Row1 4.567" 'INFO : " " 'INFO : "Col0Row3 8/27/2003 11:18:12" |
//Demonstrate setting data with the GridData.Data method
var oGridData = XSIFactory.CreateGridData();
//In jscript we have no 2-D array but we
//can provide a 1-D array and tell the GridData how
//to interprete it
var myData = new Array( 8 );
//Initialize the data (we leave one row empty)
myData[ 0 ] = 12000;
myData[ 1 ] = "Col1Row0";
myData[ 2 ] = "Col0Row1";
myData[ 3 ] = 4.567;
myData[ 6 ] = "Col0Row3";
myData[ 7 ] = new Date(); //Store current time
oGridData.RowCount = 4 ;
oGridData.ColumnCount = 2 ;
oGridData.Data = myData ;
logmessage( "Columns: " + oGridData.ColumnCount +
" Rows: " + oGridData.RowCount ) ;
logmessage( "Data contents:" ) ;
//Print out the table of items
for ( var i = 0 ; i < oGridData.RowCount ; i++ )
{
logmessage( oGridData.GetCell( 0, i ) + "\t\t\t" +
oGridData.GetCell( 1, i ) ) ;
}
//Output of this script is the following
//(the date on the last line will change each time it is run)
//
//INFO : "Columns: 2 Rows: 4"
//INFO : "Data contents:"
//INFO : "12000 Col1Row0"
//INFO : "Col0Row1 4.567"
//INFO : "undefined undefined"
//INFO : "Col0Row3 Wed Aug 27 11:25:29 EDT 2003" |