非常简单 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 行时通过使用绝对引用来弥补错误。如果还是不行请告诉我。
这可能非常容易,但我是新手,而且我已经为此苦苦思索了一段时间。我试图做的基本上是 "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 行时通过使用绝对引用来弥补错误。如果还是不行请告诉我。