Wednesday, 15 January 2014

javascript - Need some help, callback an array from textarea in googlescript -



javascript - Need some help, callback an array from textarea in googlescript -

i need fresh eyes on i'm trying do. i'm working on making our inventory spreadsheet more accurate , email person when low on something. got of code done, there's 1 part i'm having issues , it's add together number parts of spreadsheet. more exact, i'm trying have menu multiple text areas each part, , each text area relate number bought of part.

my current code section has array create , add together textarea panel , part labeled in spreadsheet. button add together text area spreadsheet.

my issue i'm having correctly setting .addcallbackelement() array , whats in text area spreadsheet.

can see making mistake, or possible recommendation @ improve do?

thanks help given

function addbit() { var ss = spreadsheetapp.getactive(); var sheet0 = ss.getsheetbyname('inventory'); var lastrow0 = sheet0.getlastrow(); //var ui = spreadsheetapp.getui(); //data each column need var datarange0 = sheet0.getrange('d2:d'+lastrow0); var datarange1 = sheet0.getrange('e2:e'+lastrow0); var datarange2 = sheet0.getrange('f2:f'+lastrow0); var datarange3 = sheet0.getrange('k2:k'+lastrow0); var datarange4 = sheet0.getrange('i2:i'+lastrow0); var data0 = datarange0.getvalues();// column d var data1 = datarange1.getvalues();// column e var data2 = datarange2.getvalues();// column f var data3 = datarange3.getvalues();// column k var data4 = datarange4.getvalues();// column var app = uiapp.createapplication(); app.setheight(500).setwidth(500); var scroll = app.createscrollpanel().setpixelsize(500,500); var vpanel0 = app.createverticalpanel(); var vpanel1 = app.createverticalpanel(); var hpanel0 = app.createhorizontalpanel(); var apanel = app.createabsolutepanel(); var text = new array(lastrow0-1); //creating labels , text areas each part first column in menu (var = 0; <= math.round((lastrow0 - 2)/2); i++) { var hpanel = app.createhorizontalpanel(); var label = app.createlabel(data0[i]+ ' ' + data1[i] + 'mm ('+ math.round(data2[i]) + 'mil)'); text[i] = app.createtextarea().setname('text'+i).setsize(50,20).setvalue(0);//.setid('text'+i); hpanel.add(text[i]); hpanel.add(label); vpanel0.add(hpanel); } //creating labels , text areas each part sec column in menu (var = math.round((lastrow0 - 2)/2) + 1; <= lastrow0 - 2; i++) { var hpanel = app.createhorizontalpanel(); var label = app.createlabel(data0[i]+ ' ' + data1[i] + 'mm ('+ math.round(data2[i]) + 'mil)'); text[i] = app.createtextarea().setname('text'+i).setsize(50,20).setvalue(0);//.setid('text'+i); hpanel.add(text[i]); hpanel.add(label); vpanel1.add(hpanel); } //creating handlers text areas var thandler = app.createserverhandler('addition'); (var j = 0; j <= lastrow0 - 2; j++) { thandler.addcallbackelement(text[j]).setid('text'+i); } //when button hit, function 'addition' run var addbutton = app.createbutton("add", thandler); hpanel0.add(vpanel0); hpanel0.add(vpanel1); apanel.add(hpanel0); apanel.add(addbutton); scroll.add(apanel); app.add(scroll); homecoming app; } function addition(e){ var app = uiapp.getactiveapplication(); var ss = spreadsheetapp.getactive(); var sheet0 = ss.getsheetbyname('inventory'); var lastrow0 = sheet0.getlastrow(); //data each column var datarange3 = sheet0.getrange('k2:k'+lastrow0); var datarange4 = sheet0.getrange('i2:i'+lastrow0); var data3 = datarange3.getvalues();// column k var data4 = datarange4.getvalues();// column var text0 = new array(lastrow0-1); //text0[] have in each text area (var = 0; <= lastrow0 - 2; i++) { text0[i] = e.parameter.('text' + 1); } //for loop add together in text area columns 'qty acq' , 'current stock' (var j = 0; j <= lastrow0-2; j++) { var k = j+2; var v = data3[j] + text0[j]; var x = data4[j] + text0[j] sheet0.getrange('m' + k).setvalue(v); sheet0.getrange('n' + k).setvalue(x); } app.close(); }

use highest level panel (scrollpanel guess) single callbackelement, automatically include kid widgets.

javascript arrays google-apps-script callback textarea

No comments:

Post a Comment