行ごとにドロップダウンリストを挿入したい。次のメソッドを行数分だけ実行する。
//JCL_vp_ComboBox_TwoChoices
//20220201 wat
//リストを備えたコンボボックス型 JavaScript
C_TEXT($1;$vpObjName)
$vpObjName:=$1
C_LONGINT($2;$col)
$col:=$2
C_LONGINT($3;$row)
$row:=$3
C_TEXT($4;$option1)
$option1:=$4
C_TEXT($5;$option2)
$option2:=$5
C_OBJECT($0;$result)
C_TEXT($source)
//シートに行を追加 JavaScript
$source:="sheet=Utils.spread.getActiveSheet();"
$source:=$source+"dv1=new GC.Spread.Sheets.DataValidation.createListValidator('"+$option1+","+$option2+"');"
$source:=$source+"sheet.setDataValidator("+String($row)+", "+String($col)+", dv1);"
$result:=WA Evaluate JavaScript(*;$vpObjName;$source;Is object)
$0:=$result
//https://www.grapecity.com/spreadjs/docs/v13/online/datavalidate.html
//var dv1=new GC.Spread.Sheets.DataValidation.createListValidator('Fruit,Vegetable,Food');
//dv1.inputTitle('Please choose a category:');
//dv1.inputMessage('Fruit, Vegetable, Food');
//sheet.setDataValidator(1,1, dv1);
セルタイプでも実装可能だが、Excelへの書き出しで無視されてしまうため、Excelでいうところの「入力規則」(GC.Spread.Sheets.DataValidation.createListValidator)をセルにセットしている。
次のように使う。
//プルダウンリスト
$col:=0
$row:=$i
JCL_vp_ComboBox_TwoChoices ($vpObjName;$col;$row;"済";"未")