Zurück-Funktion funktioniert, aber wenn ich werde vorherige für die letzte sesrch davon klicken. Ich bekomme einen Fehler 'CAN CALL METHOD' toString von undefined. Bitte helfen Sie mit meinem Code. Ich habe eine Versuch und Irrtum mit dem markierten Code unten in der vorherigen Funktion. bitte hilfe danke.Google App Script Suche UI-Tool mit Zurück-Funktion ERROR
function click(eventInfo){
var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching");
var app = UiApp.getActiveApplication();
var row=ss.getActiveRange().getRowIndex();
var lastrow = ss.getLastRow();
app.getElementById("txbid").setEnabled(true).setText("Search");
var item = eventInfo.parameter.itemname;
var next = app.getElementById("nextid").setEnabled(false);
var pre = app.getElementById("previd").setEnabled(false);
var lbl = app.getElementById("lblid").setText("No match");
var f1 = eventInfo.parameter.thirdname;
var f2 = eventInfo.parameter.fourthname;
var f3 = eventInfo.parameter.fifthname;
var f4 = eventInfo.parameter.emailname;
var f1box = app.getElementById("thirdid");
var f2box = app.getElementById("fourthid");
var f3box = app.getElementById("fifthid");
var f4box = app.getElementById("emailid");
var hidden = app.getElementById("hidden");
var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data
for(nn=0;nn<data.length;++nn){ ;// iterate trough
if(data[nn].toString().toLowerCase().match(item.toString())==item.toString()&&item!='') {;// if a match is found in one of the 3 fields, break the loop and show results
f1box.setText(data[nn][2]);
f2box.setText(data[nn][3]);
f3box.setText(data[nn][4]);
f4box.setText(data[nn][5]);
app.getElementById("nextid").setEnabled(true).setText("Next");
app.getElementById("txbid").setEnabled(true).setText("Search");
ss.getRange(nn+2,2).activate();
lbl.setText("found from"+data[nn][0]+"-"+data[nn][1]+", click Next").setEnabled(true);
hidden.setValue(nn.toString())
break;}}
return app;
}
function next(eventInfo){
var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching");
var app = UiApp.getActiveApplication();
var row=ss.getActiveRange().getRowIndex();
var lastrow = ss.getLastRow();
app.getElementById("txbid").setEnabled(true).setText("Search");
var item = eventInfo.parameter.itemname;
var next = app.getElementById("nextid").setText("No match").setEnabled(false);
var pre = app.getElementById("previd").setEnabled(true);
var lbl = app.getElementById("lblid").setText("0 results to display");
var f1 = eventInfo.parameter.thirdname;
var f2 = eventInfo.parameter.fourthname;
var f3 = eventInfo.parameter.fifthname;
var f4 = eventInfo.parameter.emailname;
var f1box = app.getElementById("thirdid").setText("");
var f2box = app.getElementById("fourthid").setText("");
var f3box = app.getElementById("fifthid").setText("");
var f4box = app.getElementById("emailid").setText("");
var start = Number(eventInfo.parameter.hidden)+1;
var hidden = app.getElementById("hidden");
var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data
for(nn=start;nn<data.length;++nn){ ;// iterate trough
if(data[nn].toString().toLowerCase().match(item.toString())==item.toString()&&item!='') {;// if a match is found in one of the 3 fields, break the loop and show results
f1box.setText(data[nn][2]);
f2box.setText(data[nn][3]);
f3box.setText(data[nn][4]);
f4box.setText(data[nn][5]);
app.getElementById("previd").setEnabled(true).setText("Previous");
app.getElementById("nextid").setEnabled(true).setText("Next");
app.getElementById("txbid").setEnabled(true).setText("Search");
ss.getRange(nn+2,2).activate();
lbl.setText("found from"+data[nn][0]+"-"+data[nn][1]+", click Next").setEnabled(true);
hidden.setValue(nn.toString())
break;}}
return app;
}
function previous(eventInfo){
var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching");
var app = UiApp.getActiveApplication();
var row=ss.getActiveRange().getRowIndex();
var lastrow = ss.getLastRow();
app.getElementById("txbid").setEnabled(true).setText("Search");
var item = eventInfo.parameter.itemname;
var next = app.getElementById("nextid").setEnabled(true);
var pre = app.getElementById("previd").setText("No match").setEnabled(false);
var lbl = app.getElementById("lblid").setText("No match");
var f1 = eventInfo.parameter.thirdname;
var f2 = eventInfo.parameter.fourthname;
var f3 = eventInfo.parameter.fifthname;
var f4 = eventInfo.parameter.emailname;
var f1box = app.getElementById("thirdid").setText("");
var f2box = app.getElementById("fourthid").setText("");
var f3box = app.getElementById("fifthid").setText("");
var f4box = app.getElementById("emailid").setText("");
var start = Number(eventInfo.parameter.hidden)-1; var hidden = app.getElementById("hidden"); var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data for(nn=start;nn<data.length;--nn){ ;// iterate trough*** if(data[nn].toString().toLowerCase().match(item.toString())==item.toString()&&item!='')
{// Wenn eine Übereinstimmung in einem der 3 Feldern gefunden wird, bricht die Schleife andshoresults f1box.setText (data [nn] [2]);
f2box.setText (Daten [nn] [3]);
f3box.setText (Daten [nn] [4]); f4box.setText (Daten [nn] [5]); app.getElementById ("previd"). SetEnabled (true) .setText ("Zurück");app.getElementById("nextid").setEnabled(true).setText("Next"); app.getElementById("txbid").setEnabled(true).setText("Search"); ss.getRange(nn+2,2).activate(); lbl.setText("found from"+data[nn][0]+"-"+data[nn][1]+", click Next").setEnabled(true); hidden.setValue(nn.toString()) break;}}
Rückkehr app; }
gemacht Ich bekomme immer noch den Fehler kann nicht Methode toSting von undefined aufrufen. Sollte ich auch anderen Code bearbeiten? Ich soll „keine Übereinstimmung“ erhalten, wenn es das letzte Ergebnis für die vorherige Taste sein .. bitte helfen dank –
kann ich eine Kopie Ihrer vorherigen Funktion bekommen? Oder können Sie es einfügen hier, so kann ich sehen, was mein Fehler. es ist eine große Hilfe .. :(Bitte überprüfen Sie meinen hervorgehobenen Code von oben ... danke Sir Serge. var start = Nummer (eventInfo.parameter.hidden) -1; oder für (nn = start; nn
ich kann nicht meinen Original-Skript in der richtigen Version finden, aber wenn Sie möchten, können Sie eine Kopie Ihrer Tabelle teilen (in nur lesen und ohne private Daten) und zeige den Link hier. –