FlexView FlexView1 {
X = 44;
Y = 117;
Width = 292;
Height = 245;
FlexRecord FlexRecord1 {
FlexLabel FlexLabel1 {
Width = 60;
Title ="商品";
}
・・・・・・・・・・・(略)
}
/*
行の指定
*/
/* 前回選択位置 */
Number bRow = 0;
/* 選択開始位置 */
Number sRow = 0;
/* 選択終了位置 */
Number eRow = 0;
/*
列の指定
*/
/* 前回選択位置 */
Number bCol = 0;
/* 選択開始位置 */
Number sCol = 0;
/* 選択終了位置 */
Number eCol = 0;
Function OnClicked( e ) {
var b_row = bRow;
var a_row = e.row.Position;
var b_col = bCol;
var a_col = ColumnPosition;
var row_obj;
var cp_val;
^.cp_data = "";
if( e.shiftKey ) {
/* Shiftキーが押されていた場合、範囲選択 */
/* 選択を解除 */
for( var i = 0; i < RowCount; i++ ) {
row_obj = GetRow( i );
row_obj.FlexLabel1.BgColor = $STD;
row_obj.FlexLabel2.BgColor = $STD;
row_obj.FlexLabel3.BgColor = $STD;
row_obj.FlexLabel4.BgColor = $STD;
row_obj.FlexLabel5.BgColor = $STD;
}
/* 選択開始・終了位置を設定 */
sCol = b_col < a_col ? b_col : a_col;
eCol = b_col < a_col ? a_col : b_col;
sRow = b_row < a_row ? b_row : a_row;
eRow = b_row < a_row ? a_row : b_row;
/* 選択 */
for( var i = sRow; i <= eRow; i++ ) {
row_obj = GetRow( i );
cp_val = "";
/* 選択されたセルの背景色を水色に変更し、コピー用のデータを生成 */
for(var j = sCol; j <= eCol; j++) {
if( j == 0){
row_obj.FlexLabel1.BgColor = ^.CursorLine;
cp_val += row_obj.FlexLabel1.value;
}
if( j == 1){
row_obj.FlexLabel2.BgColor = ^.CursorLine;
if(cp_val != ""){
cp_val += "\t";
}
cp_val += row_obj.FlexLabel2.value;
}
・・・・・・・・・・・(略)
}
} else {
/* クリック操作のみの場合、選択を解除 */
for( var i = 0; i < RowCount; i++ ) {
row_obj = GetRow( i );
row_obj.FlexLabel1.BgColor = $STD;
row_obj.FlexLabel2.BgColor = $STD;
row_obj.FlexLabel3.BgColor = $STD;
row_obj.FlexLabel4.BgColor = $STD;
row_obj.FlexLabel5.BgColor = $STD;
}
switch (a_col) {
case 0:
^.cp_data += e.row.FlexLabel1.value;
break;
case 1:
^.cp_data += e.row.FlexLabel2.value;
break;
case 2:
^.cp_data += e.row.FlexLabel3.value;
break;
case 3:
^.cp_data += e.row.FlexLabel4.value;
break;
case 4:
^.cp_data += e.row.FlexLabel5.value;
break;
}
/* 始点のクリア */
bRow = a_row;
sRow = bRow;
eRow = bRow;
bCol = a_col;
sCol = bCol;
eCol = bCol;
}
}
}
Function OnKeyDown( e ) {
/* 「Ctrl」キー + 「C」キー押下時 */
if (e.CtrlKey == 1 && e.Key == "C") {
/* クリップボードへコピー */
//.CopyString(cp_data);
//.MessageBox("クリップボードへコピーしました");
}
}
|