0

Ich versuche etwas zu erstellen, das beim Ausführen des Skripts die Parameter liest, die dort eingestellt wurden.Laufendes Skript mit definierten Parametern wie in den Einstellungen festgelegt

Zum Beispiel das Laden einer benutzerdefinierten Seitenleiste, in die der Benutzer Details oder Parameter eingeben kann, mit denen das Skript ausgeführt werden soll. Diese Parameter bleiben so lange bestehen, bis sie geändert werden, sollten aber nicht jedes Mal erforderlich sein, wenn Sie ein Skript ausführen, das diese Parameter verwendet.

Ein ähnliches Menü wie Einstellungen.

Ich habe etwas Ähnliches in einigen Addons gesehen, die gemacht worden sind, kann jemand bitte in die richtige Richtung zeigen, wie man das macht.

Ich habe bereits die Skripts erfolgreich ausgeführt nur eine UI, wo die Parameter eingegeben und festgelegt werden können. Ich möchte vermeiden, es aus einem Blatt in der Tabelle zu lesen, wenn möglich.

Edit:

Ich sehe, dass es eine getscriptproperty zur Verfügung, die für alle Benutzer verfügbar:

bisher habe ich bekam Update (2): HTML:

function showside(){ 
 

 
SpreadsheetApp.getUi().showSidebar(HtmlService.createHtmlOutputFromFile('body')) 
 
} 
 

 
function setProperty(objectForm){ 
 
    PropertiesService.getScriptProperties().setProperties(
 
    {a1: objectForm.a1 , 
 
\t \t a2: objectForm.a2, 
 
\t \t p1: objectForm.p1, 
 
\t \t p2: objectForm.p3}) 
 
    return 'Updated' 
 
}
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <script> 
 
    function readProperty(){ 
 
    
 
    var settings = PropertiesService.getScriptProperties(), keys = settings.getKeys() 
 
    Logger.log('running') 
 
    for (var i =0;i<keys.length;i++){ 
 
    document.getElementbyID(keys[i].toUpperCase()).value = settings.getProperty(keys[i]) 
 

 
    } 
 
} 
 

 
function handleFormSubmit(objectForm){ 
 
google.script.run.setProperty(update).setProperty(objectForm) 
 
} 
 

 
function update(update){ 
 
     var div = document.getElementById('output'); 
 
     div.innerHTML = 'Updated!'; 
 
     } 
 
</script> 
 

 
    <base target="_top"> 
 
    </head> 
 
    <body onload="readProperty()"> 
 
    <form id="myForm" onsubmit="handleFormSubmit(this)"> 
 
    
 
    a1<input type="url" id="a1" value="" /> 
 
    a2<input type="url" id="a2" value="" /> 
 
    a3<input type="url" id="a3" value="" /> 
 
    P1<input type="text" id="P1" value="" /> 
 
    P2<input type="text" id="P2" value="" /> 
 
    <input type="submit" value="Submit" /> 
 
    </form> 
 
    <div id="output"></div> 
 
    </body> 
 
    
 
    
 
</html>

+0

so jetzt habe ich dies getan, aber es scheint nicht, die schon allein gesetzt Eigenschaften lesen lassen, schreiben neue. – mfizz

Antwort

0

Ein grober Ansatz; Improvisiere von hier aus;

Kommentare innerhalb der loadScript();

document.getElementById("formWithData").onsubmit = loadScript(); 
 

 
function loadScript() { 
 
    // get data from submitted form 
 
    // this way script will re-run with data based on what u give in the form 
 
}
<form id="formWithData"> 
 
<input type="text" placeholder ="enter condition 1"> 
 
<input type="text" placeholder ="enter condition 2"> 
 
<input type="text" placeholder ="enter condition 3"> 
 
</form>

+0

danke für die kommentare Ich habe gerade meine Frage von dem, was ich gerade gelernt habe, revidiert, von der Lektüre Ihrer Idee sowie von viel Googeln. und das ist, was ich bisher gefunden habe – mfizz

+0

gehe zum HTML der Seitenleiste; Es muss eine HTML-Komponente geben, über die Sie ein Skript auslösen möchten (z. B. per Formular senden oder per Klick auf die Schaltfläche); wenn Formular einreichen Verwendung oben Ansatz; Wenn die Schaltfläche geklickt wird, ersetzen Sie 'onsubmit' im obigen Skript mit 'onclick' und ersetzen Sie die Formular-ID durch die ID des Elements, auf das Sie klicken –

Verwandte Themen