как объединить этот код для создания страницы данных - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть набор кода, который берет строку данных и перемещает ее на новую страницу, когда значение в столбце A становится истинным (флажок).
Мне нужно добавить к нему возможность для этой строкиданные должны быть представлены на странице для ручного манипулирования.Данные могут перемещаться до или после презентации.Не имеет значения

Так что это код, который работает как нужно.

function onEdit(e){
  var ss = SpreadsheetApp.getActive();
  var s = ss.getActiveSheet();
  var r = ss.getActiveRange();
  var row = r.getRow();
  var column = r.getColumn();
  if(s.getName() == "Form Responses 1" && r.getColumn() == 1 && r.getValue() == true) {
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Processed");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target);
    s.deleteRow(row);
  }
}

Теперь у меня есть этот другой код из другого проекта, который представляет набор данных на страницу.Но я не могу понять, как заставить их работать вместе.Я знаю, что переменные не являются сравнительными во втором наборе кода, но я не знаю, как их определить, так как не могу понять, как объединить эти два процесса.

function findAString(){
  var ss=SpreadsheetApp.getActive();
  var sh1=ss.getActiveSheet();
  var sh2=ss.getSheetByName('Completed');
  var resp=SpreadsheetApp.getUi().prompt("Enter a String");
  var s=resp.getResponseText();
  if(s){
    var rA=findRow(resp.getResponseText());
    Logger.log(rA);
    if (rA.length>0){
      sh2.getRange(sh2.getLastRow()+1,1,rA.length,rA[0].length).setValues(rA);
      var rows='<br /><h3>Order details have been moved to the Completed tab</h3><br />';
      rows+=Utilities.formatString(resp.getResponseText());
      for(var i=0;i<rA.length;i++){
        rows+=Utilities.formatString('<br /> %s',rA[i].join('<br />'));
      }
      rows+='<br /><br /><input type="button" value="Exit" onClick="google.script.host.close();" />';
      if(rows){
        var ui=HtmlService.createHtmlOutput(rows);
        SpreadsheetApp.getUi().showModelessDialog(ui, 'Search Results')
      }
    }
  }else{
    throw('Error: Invalid Response');
  }
}
function findRow(s) { ;// the actual search function
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet()
    var rA=[];
    var vA=sh.getDataRange().getValues();
    for(var i=0;i<vA.length;i++) {
      for(var j=0;j<vA[i].length;j++){
        if(vA[i][j].toString().indexOf(s)>-1){
          rA.push(vA[i]);
          break;
        }
      }
    }
    Logger.log(rA);
    return rA;
}

В этомВо втором наборе кода пользователю предлагается ввести строку, а затем строку находят и представляют.В этом проекте мне нужно сделать так, чтобы ряд данных отправлялся на панель после того, как пользователь щелкнул флажок в электронной таблице.

Я полагаю, что он имеет много общего с переменной rA findRow (соответственно.getResponseText ());во втором наборе кода.

Проект, из которого был снят код, представляет набор данных, основанный на вводе пользователем строки текста для поиска.Но, как вы можете видеть, это грязный набор кода.

Мне нравится простота нового кода, который переносит данные на другой лист.Я просто не могу разобраться, как получить эту же строку данных на странице в ответ на истинное условие в columnA.Помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...