Suchfenster für InformationenHallo,
Als neuer .jsl-Benutzer habe ich versucht, durch das Erstellen eines kleinen Skripts zu lernen, um Daten aus einer großen Beispieldatentabelle mit einer Benutzereingabe abzurufen.
Für die meisten Probleme, die mir begegnet sind, wurden die Lösungen in diesen Diskussionsforen gefunden, aber ich möchte noch ein paar Dinge hinzufügen, über die ich keine Informationen finden kann.
- Wenn der Benutzer einen falschen Namen eingibt (dh, wenn keine übereinstimmenden Zeilen gefunden werden), wie kann ich dann ein Alarmfenster erstellen, um das Popup-Fenster aufzurufen und den Benutzer darüber zu informieren?
- Ist es nicht möglich, eine Subset-Datentabelle zu öffnen, den zurückgegebenen Zellenwert in das UI-Fenster selbst zu drucken (unter den Such- und Löschschaltflächen)? oder wenn nicht, in ein neues Fenster ähnlich dem oben beschriebenen Alarmfenster.
- Könnten Optimierungen vorgenommen oder allgemeine Verbesserungen am Skript vorgenommen werden?
Vielen Dank im Voraus für jede Hilfe,
Nr. 7
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", "Invisible" );
dt << Clear Selected;
cols = dt << getColumnNames( "String" );
delcols = {"name"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( cols, As List( Loc( cols, delcols[i] ) ) )
);
lookup_script = Expr(
myName = Uppercase( name1 << get text );
If( myName != "",
match_rows = dt << get rows where( :name == myName )
);
dt << subset( columns( cols[cb << get] ), rows( match_rows ) );
);
UIwin = New Window( "Big Class Age/Height Lookup",
Show Menu( 0 ),
Show Toolbars( 0 ),
//<<MODAL></MODAL>Re: Informationsfenster @uday_guntupalli Fantastisch hat folgendes gearbeitet;
If( Nrows(match_rows) == 0,
Text Box( "Serial Not Found."),
Danke für die schnelle Antwort!
Re: Informationsfenster @ JMPUserNumber7 .
Versuchen Sie es mit N Rows (), wenn es sich um einen Zeilenvektor handelt. N Cols (), wenn es sich um einen Col-Vektor handelt.
Re: Informationsfenster @uday_guntupalli Vielen Dank, das ist genau das, wonach ich gesucht habe. Die Append-Funktion war mir in diesem Fall nicht bekannt!
Ich habe das Skript so aktualisiert, dass eine Zeichenfolge zurückgegeben wird, wenn kein Name eingegeben wird, und die Änderungen leicht geändert wurden. Ich kann jedoch Folgendes nicht zur Arbeit bringen
If(IsEmpty(match_rows),
Text Box("The name you looked up does not exist")Vom Lesen Hier Dies liegt daran, dass JMP ein Array anstelle des gewünschten Textes zurückgibt. Irgendwelche Ideen für eine Arbeit?
Danke noch einmal.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", "Invisible" );
dt << Clear Selected;
cols = dt << getColumnNames( "String" );
delcols = {"name"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( cols, As List( Loc( cols, delcols[i] ) ) )
);
lookup_script = Expr(
myName = Uppercase( name1 << get text );
If( myName == "",
VL1 << Append( H List Box( Text Box( "Please enter a name.", <<BULLET point=""></BULLET>
Re: Informationsfenster @ JMPUserNumber7 .
Versuchen Sie so etwas zu tun:
dt = Open( "$SAMPLE_DATA/Big Class.jmp", "Invisible" );
dt << Clear Selected;
cols = dt << getColumnNames( "String" );
delcols = {"name"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( cols, As List( Loc( cols, delcols[i] ) ) )
);
lookup_script = Expr(
myName = Uppercase( name1 << get text );
If( myName != "",
match_rows = As List(dt << get rows where( :name == myName ))
);
// dt << subset( columns( cols[cb << get] ), rows( match_rows ) );
// My Edit
VL1 << Append(
H List Box(
If(IsEmpty(match_rows),
Text Box("The information you looked up does not exist")
,
Text Box("The information you looked up is" || char(dt[match_rows,cols[cb<<GET></GET>