Wie multipliziert man Benutzereingaben mit einer konstanten Zahl?Alle,
Ich versuche, die Benutzereingabenummer mit einer Konstante zu multiplizieren. Ich muss die letzte Zahl (hoursBack) als Teil einer Webadresse verwenden.
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
);Bekomme den folgenden Fehler -
Das Argument kann beim Zugriff oder der Auswertung von 'Multiply' nicht in eine Zahl [oder Matrix] konvertiert werden, daysBack * /*###*/24 /*###*/
SkripterstellungBetreff: Wie multipliziert man Benutzereingaben mit einer konstanten Zahl?Die Fehler in Ihrer angehängten PNG-Datei beziehen sich auf Probleme mit den Variablen p1 und p2. Diese Variablen erscheinen nicht in der zuvor untersuchten JSL, daher vermute ich das Problem nur.Ich gehe davon aus, dass p1 und p2 numerische Variablen sind, oder zumindest glaubt JMP, dass sie es sind.Numerische Werte können nicht direkt in einer Verkettung verwendet werden.Mein Vorschlag ist, dass Sie jede der Referenzen von p1 und p2 in eine Char()-Funktion einschließen. (dh char(p1) )
Betreff: Wie multipliziert man Benutzereingaben mit einer konstanten Zahl?Ich erkannte, dass es daran lag, dass ich Tage zurück in den Link verkettete. Und ich kann keine Zahlen verketten. Ich habe temporäre Variablen verwendet, um Daysback zuerst in Zahlen umzuwandeln und das Ergebnis, multipliziert mit 24, zurück in Zeichen. Dadurch wurde das Problem behoben. Vielen Dank!!
Betreff: Wie multipliziert man Benutzereingaben mit einer konstanten Zahl?@txnelson Vielen Dank. Ich habe versucht, was Sie vorgeschlagen haben, aber ich erhalte eine Fehlermeldung. Ich habe die Momentaufnahme des Fehlers angehängt
Betreff: Wie multipliziert man Benutzereingaben mit einer konstanten Zahl?Das Problem ist, dass Sie Ihre daysBack aus einem EditText()-Feld eingeben, das eine Zeichenfolge und keinen numerischen Wert zurückgibt.Daher muss es umgewandelt werden.Siehe meinen Code unten
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
);Betreff: Wie multipliziert man Benutzereingaben mit einer konstanten Zahl?num(Rücktage)*24
bringt Sie an dem Problem vorbei, wo daysback eine Zeichenfolge enthält.