非常简单 if else 检查 Google App Maker

Very simple if else check in Google App Maker

这可能非常容易,但我是新手,而且我已经为此苦苦思索了一段时间。我试图做的基本上是 "Hello App Maker!" If else 测试的修改版本。

必要的信息我将以下小部件附加到相应的数据源:

  • Dropdown widget called source_name (string - list)
  • Label widget I've called name (string)
  • Text Box widget called qty_duration (number)
  • Label widget I've called hours (number)

我有一个名为 source_name 的下拉小部件,有 5 个选项。在选择时,我将值显示在我称为 name 的标签小部件中。如果从下拉小部件中选择的选项曾经是 LABOUR,那么我试图让名为 qty_duration 的文本框小部件的值出现在我称为 hours[ 的标签小部件中=26=]

关于 source_name 下拉事件 - onValueChange 我有以下代码:

// Define variables for the input and output widgets
var nameWidget = app.pages.Apex_job_details.descendants.name;
var outputWidget = app.pages.Apex_job_details.descendants.hours;
var techhours = app.pages.Apex_job_details.descendants.qty_duration;
var nothing = 0;


// If a name is LABOUR, add the qty to the output widget Else output 0.
if (nameWidget == 'LABOUR') {
  outputWidget.text = techhours;
} else {
  outputWidget = nothing;
}

它没有给我任何错误,但它也没有输出到 hours 标签。如果我按如下方式编辑代码只是为了解决它:

// Define variables for the input and output widgets
var nameWidget = app.pages.Apex_job_details.descendants.name;
var outputWidget = app.pages.Apex_job_details.descendants.hours;
var techhours = app.pages.Apex_job_details.descendants.qty_duration;
var nothing = 0;

// If a name is LABOUR, add the qty to the output widget Else output 0.
if (nameWidget == 'LABOUR') {
  outputWidget.text = techhours;
} else {
  outputWidget.text = nothing;
}

我不确定我做错了什么。

假设所有标签和输入小部件都在 table 行内,您需要按如下方式调整代码:

var tablerow = widget.parent;
var nameWidget = tablerow.descendants.name.text;
var outputWidget = tablerow.descendants.hours;
var techhours = tablerow.descendants.qty_duration.value;

if(nameWidget === 'LABOUR') {
  outputWidget.text = techhours;
} else {
  outputWidget.text = null;
}

通过在下拉列表的 onValueChange 事件中使用 widget.parent,您将自动引用 table 行,然后通过使用后代,您将仅引用该 table 行的后代。这将在使用 table 行时通过使用绝对引用来弥补错误。如果还是不行请告诉我。