ユーザー入力に定数を掛ける方法は?全て、
ユーザー入力数値に定数を掛けようとしています。 最終的な数字 (hoursBack) を Web アドレスの一部として使用する必要があります。
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を連結していたからだと気づきました。 また、数字を連結することはできません。 一時変数を使用して、最初に日を数値に変換し、その結果に 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: ユーザー入力に定数を掛けるには?num(遡る日数)*24
daysback が文字列を保持する問題を回避できます。