У меня есть два сценария сценария приложений Google, которые оба могут выполнять некоторые функции, связанные друг с другом. Первый сценарий selectCheckBillName показывает всплывающее окно с Htmlservice таблицы цикла и вызывает другую функцию после того, как она выбрала имя списка в нем. Это " taxBill ( this.value ) ". Скрипт, который является «taxBill», является второй функцией как дескриптор main all скрипта для обработки функции main all цели скрипта, где он показывает результат данных после выбора их имени, и он должен быть показан, как должно быть,Вот код selectCheckBillName :
function selectCheckBillName() {
var s = SpreadsheetApp;
var ss = s.getActiveSpreadsheet();
var val = ss.getRange("B:B").getValues();
var result = "<head><script type='text/javascript'>function highlight(e) {var table = e.parentNode.parentNode, trs = table.getElementsByTagName('tr'); for (var i = 0; i < trs.length; i++) {trs[i].style.backgroundColor = null; trs[i].style.color = null; } e.style.backgroundColor = '#e68a00'; e.style.color = 'white';}</script><style type='text/css'>.gridview {display:inline-block; border-collapse:collapse; margin:0px 4px 4px 0; box-shadow:3px 3px 4px #bbb;} .gridview, .gridview td, .gridview th {margin:0; border:1px solid #cccccc; width:200px;} .gridview th {font-size:1.1em; height:25px; text-align:center; font-weight:normal; color:#F9F9F9; background:#337EB5;} .gridview tr {background:#F4F9FD;} .gridview tr:nth-child(odd) {background-color:#ffffcc;} .gridview tr:nth-child(even) {background-color:#ffffe6;} .gridview td {font-weight:normal; text-align:left; vertical-align:top; padding:4px 9px 5px 9px;} .gridview tfoot td {background-color:#EEEEEE;} .gridview tfoot td .page {color:#000000; font-weight:bold;} .gridview tr.subfoot, .gridview tr.subfoot td {background-color:#FFFFEC;} .gridview tr:hover td, .gridview tbody tr:hover td {background-color:#ffc266; cursor:pointer; color:white;}}</style></head><table border=1 class='gridview'>";
for (var i=1, iLen=val.length; i<iLen; i++) {
result += "<tr OnClick=highlight(this)>";
result += "<td OnClick=google.script.run.taxBill(this.value) value="+val[i]+">"+val[i]+"</td>";
result += "</tr>";
}
result += "</table>";
ss.show(HtmlService.createHtmlOutput(result)
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle("T a x R e k e n i n g")
.setHeight(500)
.setWidth(235));
}
Это taxBill функция:
function taxBill(val) {
var s = SpreadsheetApp;
var destSheet = s.getActiveSpreadsheet();
var vals = destSheet.getRange(1, 2, destSheet.getLastRow()).getValues();
for (var i = vals.length-1; i > 0; i--)
if (vals[i][0] == val) break;
var TotalSmw = destSheet.getRange(i+1, 16).getValue();
var TotalLstk = destSheet.getRange(i+1, 14).getValue();
var HargaLstk = destSheet.getRange(i+1, 13).getValue();
var pmkaianLstk = destSheet.getRange(i+1, 12).getValue();
var MtrnAwalLstk = destSheet.getRange(i+1, 11).getValue();
var MtrnAkhrLstk = destSheet.getRange(i+1, 10).getValue();
var TotalAir = destSheet.getRange(i+1, 8).getValue();
var HargaAir = destSheet.getRange(i+1, 7).getValue();
var pmkaianAir = destSheet.getRange(i+1, 6).getValue();
var MtrnAwalAir = destSheet.getRange(i+1, 5).getValue();
var MtrnAkhrAir = destSheet.getRange(i+1, 4).getValue();
var admin = destSheet.getRange(i+1, 46).getValue();
var client = destSheet.getRange(i+1, 18).getValue();
var checkInDate = destSheet.getRange(i+1, 17).getValue();
var checkUpDate = destSheet.getRange(i+1, 3).getValue();
var subject = "Perincian Data & Informasi";
var unitRp = "Rp. ";
var unitKw = " kwh";
var unitM = " m³";
var NB = "INFORMASI REKENING TERAKHIR ATAS NAMA " + val + " ❗❗❗";
var message = "<body>THIS IS JUST WAS THE TEST CONTENT</body>";
destSheet.show(HtmlService.createHtmlOutput(message)
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle(NB)
.setHeight(290)
.setWidth(765));
}
Проблема в том, что: значения onclick = google.script.run.taxBill (this. value ) в стороннем коде не будут вызываться в скриптеof taxBill (this.value) всегда показывал « undefined », это должно быть имя совпадения, выбранное ранее в первом скрипте selectCheckBillName. Я пытался с помощью других альтернативных строк изменить строку «this.value» следующим образом «this.taxt ()», «this.textContent», «this.data», «this.innerText» похоже, что ничего не помогает. Пожалуйста, кто-то должен помочь мне. Любые достижения оценят. Спасибо за то, что уделили мне время и извинитесь за мой плохой английский.
Я добавил фотографии, чтобы описать больше уведомлений для фотографии ", когда Эллен решила нажать или выбрать, а затем ее нужно показать. в красных пакетах, которые я отмечаю за это. Это неудавшийся результат ПОС