0

考虑:

function submit(e) {


var db = ScriptDb.getMyDb();
  // Clear the values from the text boxes so that new values can be entered
  var app = UiApp.getActiveApplication();
  app.getElementById('description').setValue('');
  app.getElementById('model').setValue('');
  app.getElementById('productCode').setValue('');
  // Make the status line visible and tell the user the possible actions
  var db = ScriptDb.getMyDb();
  var results = db.query({BarCode:'productCode'});

  app.getElementById('result').setVisible(true).setText(Utilities.jsonStringify(results));
  return app;
}​

它只输出以下而不是结果:

ScriptDb Object

该脚本用于带有 ScriptDB 的 Google 脚本,我想从查询中输出一个字符串答案。

4

1 回答 1

0

resultsfromdb.query()不是包含数据的对象,而ScriptDbResult实例类似于迭代器,具有检索数据对象的方法hasNext()next()这在ScriptDb 文档中进行了解释,但您可以将这些示例应用到您的代码中:

function submit(e) {
  // Clear the values from the text boxes so that new values can be entered
  var app = UiApp.getActiveApplication();
  app.getElementById('description').setValue('');
  app.getElementById('model').setValue('');
  app.getElementById('productCode').setValue('');

  // Make the status line visible and tell the user the possible actions
  var db = ScriptDb.getMyDb();
  var results = db.query({BarCode:'productCode'});
  var output = "";
  while (results.hasNext()) {
    var item = results.next()
    output += item.toJson();
  }

  app.getElementById('result').setVisible(true).setText(output);
  return app;
}

或者,如果您相信您的查询中只有一个匹配项,您可以这样做:

app.getElementById('result')
   .setVisible(true)
   .setText(Utilities.jsonStringify(results.next()));
于 2013-07-17T13:41:17.203 回答