0

アクティブなシートに UiApp を埋め込む必要があるマスター シートに取り組んでいます。最初の行のラベルを使用して最初の部分をコーディングしようとしましたが、名前 [i] をテーブルの左側の [タスク] ラベルの下に表示することに行き詰まりました。

各タスク ラベルの下にすべての名前のチェック ボックスが表示されるようにするつもりです。

以下にコードを示します。

function showTable() 
{
var ss = SpreadsheetApp.getActive();
var TL = ss.getRange('B3').getValue();
//SetFontWeight("bold") for TL < *This does not work either* >

var startDate = ss.getRange('B2').getValue();
var strStartDate = startDate.getDate() + "/" + (startDate.getMonth() + 1) + "/" + StartDate.getFullYear();

var counta = ss.getRange('B4').getValue();

var app = UiApp.createApplication().setHeight(375).setWidth(620)
.setTitle('This is ' + TL + "'s Team Tasks for " + strStartDate);

var panel = app.createAbsolutePanel().setId('panel').setHeight(355).setWidth(605)
.setStyleAttribute('background', 'lightCyan');

var names = ss.getRange('B11:B').getValues();

for (var i = 0; 0 < names.length; i++)   **//This is the part that does not work**
{
 var agents = app.createLabel(names[i]); 
}

var handler1 = app.createServerHandler('btnCloseWindow'); 
var btnCloseWindow = app.createButton('Close Window').addClickHandler(handler1).setStyleAttribute('background', 'lightYellow');
handler1.addCallbackElement(panel);

var myLabel0 = app.createLabel('Tasks');
var myLabel1 = app.createLabel('HW');
var myLabel2 = app.createLabel('MU');
var myLabel3 = app.createLabel('MOV');

panel.add(myLabel0, 40, 12)
panel.add(myLabel1, 100, 12)
panel.add(myLabel2, 140, 12)
panel.add(myLabel3, 175, 12)

panel.add(agents, 40, 30)

panel.add(btnCloseWindow, 490, 320)
app.add(panel);
ss.show(app);
return app;
};

function btnCloseWindow(e) 
{
var ss = SpreadsheetApp.getActive();
var app = UiApp.getActiveApplication();
app.close();
return app;
};

名前の付いた垂直パネルをどのように作成しますか? 名前は列 B11:B で定義され、タスクはラベルで定義されます。

UiApp を作成するのはこれが初めてなので、どんな助けでも大歓迎です!

4

2 に答える 2

0

このようにしてみてください。全体がどのように見えるべきかわかりませんが、名前のリストのある部分は正しいです...

function showTable() 
{
var ss = SpreadsheetApp.getActive();
var TL = ss.getRange('B3').getValue()  
ss.getRange('B3').setFontWeight('bold')
var startDate = ss.getRange('B2').getValue();
var strStartDate = Utilities.formatDate(startDate, ss.getSpreadsheetTimeZone(), 'dd/mm/yyyy');

var counta = ss.getRange('B4').getValue();

var app = UiApp.createApplication().setHeight(375).setWidth(620)
.setTitle('This is ' + TL + "'s Team Tasks for " + strStartDate);

var panel = app.createAbsolutePanel().setId('panel').setHeight(355).setWidth(605)
.setStyleAttribute('background', 'lightCyan');

var handler1 = app.createServerHandler('btnCloseWindow'); 
var btnCloseWindow = app.createButton('Close Window').addClickHandler(handler1).setStyleAttribute('background', 'lightYellow');
handler1.addCallbackElement(panel);

var myLabel0 = app.createLabel('Tasks');
var myLabel1 = app.createLabel('HW');
var myLabel2 = app.createLabel('MU');
var myLabel3 = app.createLabel('MOV');

panel.add(myLabel0, 40, 12)
panel.add(myLabel1, 100, 12)
panel.add(myLabel2, 140, 12)
panel.add(myLabel3, 175, 12)

var names = ss.getRange('B11:B').getValues();
Logger.log(names)
for(i=0;i<names.length;++i){
Logger.log(names[i][0]);// names is a 2D array, you only want the first and only column
if(names[i][0]!=''){ // don't show if empty
panel.add(app.createLabel(names[i][0])); //add label to the panel
}
}

panel.add(btnCloseWindow, 490, 320)
app.add(panel);
ss.show(app);

};
于 2013-01-28T22:39:09.473 に答える
-1

変数名 = ss.getRange('B11:B').getValues();

あるべき、

var names = ss.getRange('B11:B1').getValues();

調べたところ、

var data = ss.getRange("b11:b1").getValues();

data.forEach(function(element,index,array){Logger.log(index + " " + element )});

ログ、「0 犬 1 猫 2 カエル 3 魚 4 ハムスター 5 犬 6 猫 7 カエル 8 魚 9 ハムスター 10 犬」

于 2013-01-28T20:35:26.563 に答える