如何将用户输入乘以一个常数?全部,
我正在尝试将用户输入数字乘以一个常数。 我需要使用最终数字 (hoursBack) 作为网址的一部分。
local(
{Name= "ABCD", daysBack = "7", formError = 1, rv},
While( formError > 0,
formError = 0;
rv = Dialog(
Title( "Select Extract criteria" ),
VList(
HList( "Name:", Name= EditText( Name) ),
HList( "Days Back", daysBack = EditText( daysBack ) ),
HList( Button( "OK" ), Button( "Cancel" ) )
)
);
If( rv["button"] < 0,
Throw( "Bye!" )
);
Name= rv["Name"];
If( Name== "",
formError
++);
daysBack = rv["daysBack"];
If( daysBack == "",
formError
++);
If( formError > 0,
Dialog( "Missing required form input values" )
);
);
Write( "Name=" || Name);
hoursBack = daysBack*24; //Getting an error here
Status Msg( "Extracting data for " || Name);
dt = queryData( "Newtable", hoursBack, Name); //Query data function is defined in a different part of the code
);收到以下错误 -
在访问或评估 'Multiply' 时无法将参数转换为数字 [或矩阵],daysBack * /*###*/24 /*###*/
脚本Re: 如何将用户输入乘以一个常数?您附加的 png 文件中的错误是指名为 p1 和 p2 的变量的问题。这些变量没有出现在之前检查过的 JSL 中,所以我只是猜测这个问题。我假设 p1 和 p2 是数值变量,或者至少 JMP 认为它们是。数值不能直接用于串联。我的建议是您将 p1 和 p2 的每个引用包含在 Char() 函数中。 (即 char(p1) )
Re: 如何将用户输入乘以一个常数?我意识到这是因为我在链接中连接了 daysBack。 而且我无法连接数字。 我首先使用临时变量将dayback 转换为数字,然后将结果乘以24,返回字符。 这解决了这个问题。 谢谢!!
Re: 如何将用户输入乘以一个常数?@txnelson谢谢你。 我尝试了您的建议,但出现错误。 我附上了错误的快照
Re: 如何将用户输入乘以一个常数?问题是您正在从 EditText() 字段输入您的 daysBack,该字段返回一个字符串,而不是一个数值。因此需要对其进行转换。请参阅下面的代码
local(
{Name= "ABCD", daysBack = "7", formError = 1, rv},
While( formError > 0,
formError = 0;
rv = Dialog(
Title( "Select Extract criteria" ),
VList(
HList( "Name:", Name= EditText( Name) ),
HList( "Days Back", daysBack = EditText( daysBack ) ),
HList( Button( "OK" ), Button( "Cancel" ) )
)
);
If( rv["button"] < 0,
Throw( "Bye!" )
);
Name= rv["Name"];
If( Name== "",
formError
++);
daysBack = num(rv["daysBack"]);show(daysback);
If( daysBack == "",
formError
++);
If( formError > 0,
Dialog( "Missing required form input values" )
);
);
Write( "Name=" || Name);
hoursBack = daysBack*24;
show("xx",hoursback) ; //Getting an error here
Status Msg( "Extracting data for " || char(Name));
dt = queryData( "Newtable", hoursBack, Name); //Query data function is defined in a different part of the code
);Re: 如何将用户输入乘以一个常数?数量(天数)*24
将帮助您解决 daysback 保存字符串的问题。