Fenêtre de recherche d'informationsBonjour,
En tant que nouvel utilisateur .jsl, j’ai essayé d’apprendre en créant un petit script permettant d’extraire des données de la table de données exemple de grande classe à partir d’une entrée utilisateur.
Sur la plupart des problèmes rencontrés, des solutions ont été trouvées sur ces forums de discussion, mais j'aimerais ajouter quelques éléments supplémentaires sur lesquels je ne trouve aucune information.
- Si l'utilisateur entre un nom incorrect (c'est-à-dire si aucune ligne correspondante n'est trouvée), comment puis-je créer un script dans une fenêtre d'alerte pour l'afficher et en informer l'utilisateur?
- Au lieu d'ouvrir une table de données de sous-ensemble, est-il possible d'imprimer la valeur de cellule renvoyée dans la fenêtre de l'interface utilisateur elle-même (sous les boutons de recherche et d'annulation)? ou sinon, dans une nouvelle fenêtre similaire à la fenêtre d'alerte décrite ci-dessus.
- Des optimisations ou des améliorations générales du script pourraient-elles être apportées?
Merci d'avance pour votre aide,
No7
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: fenêtre de recherche d'informations @uday_guntupalli Fantastique le suivant a fonctionné;
If( Nrows(match_rows) == 0,
Text Box( "Serial Not Found."),
Merci pour votre réponse rapide!
Re: fenêtre de recherche d'informations @ JMPUserNumber7 ,
Essayez N lignes () s'il s'agit d'un vecteur ligne N Cols () s'il s'agit d'un vecteur col.
Re: fenêtre de recherche d'informations @uday_guntupalli Merci beaucoup, c’est exactement ce que je cherchais, je n’étais pas au courant de la fonction Append dans ce cas!
J'ai mis à jour le script pour renvoyer une chaîne lorsqu'aucun nom n'est entré et modifié légèrement vos modifications. Cependant, je ne parviens pas à obtenir les éléments suivants
If(IsEmpty(match_rows),
Text Box("The name you looked up does not exist")De la lecture ici c'est parce que JMP renvoie un tableau au lieu du texte souhaité. Des idées de travail autour?
Merci encore.
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: fenêtre de recherche d'informations @ JMPUserNumber7 ,
Essayez de faire quelque chose comme ça:
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>