Comment rechercher des valeurs uniques dans la colonne et les utiliser dans la fenêtre de saisie ?J'ai un tableau qui ressemble à ceci, ce que je voudrais faire est de rechercher dans la colonne "Couleur de tasse" des valeurs uniques, puis d'avoir une fenêtre contextuelle permettant à l'utilisateur de saisir une saveur correspondante pour chaque couleur de tasse unique. .
| Couleur de la tasse | Calories | Goût | Classement | Testeur |
| bleu | 140 | 4 | 2 | 1 |
| vert | 80 | 7 | 1 | 4 |
| jaune | 200 | 2 | 3 | 6 |
| violet | 130 | 3 | 6 | 4 |
| bleu | 140 | 3 | 5 | 2 |
| bleu | 140 | 4 | 4 | 3 |
| jaune | 200 | 5 | 7 | 1 |
Une fois que nous avons une saveur pour chaque couleur de tasse, je voudrais ajouter une nouvelle colonne qui est remplie en fonction de l'entrée que nous avons reçue de l'utilisateur.
| Couleur de la tasse | Calories | Goût | Classement | Testeur | Saveur |
| bleu | 140 | 4 | 2 | 1 | cerise |
| vert | 80 | 7 | 1 | 4 | framboise |
| jaune | 200 | 2 | 3 | 6 | chocolat |
| violet | 130 | 3 | 6 | 4 | vraiment mentholé |
| bleu | 140 | 3 | 5 | 2 | cerise |
| bleu | 140 | 4 | 4 | 3 | cerise |
| jaune | 200 | 5 | 7 | 1 | chocolat |
Je suis encore assez nouveau pour JSL et j'ai passé les dernières heures à parcourir des forums à la recherche de conseils, mais je n'arrive pas à reconstituer tout cela, un peu d'aide serait très appréciée.
Re : Comment rechercher des valeurs uniques dans la colonne et les utiliser dans la fenêtre de saisie ?L'utilisation d'une fenêtre modale est un type de fenêtre tout à fait unique.Il y a plusieurs règles que vous devez suivre.L'un d'eux implique une boîte à boutons avec le texte "OK".Il a une fonction spéciale dans une fenêtre modale.Vous pouvez donc les utiliser, mais vous devrez les étudier et vous entraîner avec eux.
Ma préférence n'est pas d'utiliser des fenêtres modales, mais plutôt d'utiliser des éléments Functions() ou Expr() pour encapsuler le code, en l'empêchant d'être exécuté jusqu'à ce que le script indique qu'il doit être exécuté.Vous trouverez ci-dessous un exemple simple de la façon de procéder.
Names Default To Here( 1 );
// Get the list of unique colors
Summarize( dt, colorList = by( :Cup Color ) );
// Initialize the flavor list and make it the same
// length as the colorList
flavorList = {};
For( i = 1, i <= N Items( colorList ), i++,
Insert Into( flavorList, "" )
);
// Create the display window
nw = New Window( "Select Flavors",
//<< Modal,
Text Box( "Enter in Flavors for each Color" ),
tb = Table Box(
String Col Box( "Colors", colorList ),
scb = String Col Edit Box( "Flavors", flavorList )
),
Button Box( "OK",
nw << close window;
// Create the flavor table and update it to
// the original table
dt2 = New Table( "combined",
New Column( "Cup Color", character, set values( colorList ) ),
New Column( "Flavors", character, set values( flavorList ) )
);
dt << Update( With( dt2 ), Match Columns( :Cup Color = :Cup Color ) );
close( dt2, nosave );
runAdditionalCodePlease;
)
);
// Set the String Col Edit Box action
scb << Set Function( Function( {this, which}, flavorList[which] = scb << get( which ) ) );
runAdditionalCodePlease = Expr(
Dialog("This represents the kind of things that",
"you may want to run after the data entry.",
"By placing the code inside an Expr() or in",
"a Function(). The code will be run only",
"when executed within the code."
)
);Re : Comment rechercher des valeurs uniques dans la colonne et les utiliser dans la fenêtre de saisie ?J'ai en fait besoin que mon script attende l'entrée de l'utilisateur avant de progresser.
J'ai trouvé dans le guide de script que je pouvais le faire en utilisant le message modal et j'ai pensé que je l'avais ajouté correctement, mais lorsque j'exécute le script, la table ne se met plus à jour - le journal indique "Nom non résolu : bouton dans l'accès ou évaluation de 'Button' , Button( 1 ) /*###*/"
// Get the list of unique colors
Summarize( dt, colorList = by( :Cup Color ) );
// Initialize the flavor list and make it the same
// length as the colorList
flavorList = {};
For( i = 1, i <= N Items( colorList ), i++,
Insert Into( flavorList, "" )
);
// Create the display window
nw = New Window( "Select Flavors",
<< Modal,
Text Box( "Enter in Flavors for each Color" ),
tb = Table Box(
String Col Box( "Colors", colorList ),
scb = String Col Edit Box( "Flavors", flavorList )
),
Button Box( "OK",
nw << close window;
// Create the flavor table and update it to
// the original table
dt2 = New Table( "combined",
New Column( "Cup Color", character, set values( colorList ) ),
New Column( "Flavors", character, set values( flavorList ) )
);
dt << Update( With( dt2 ), Match Columns( :Cup Color = :Cup Color ) );
close( dt2, nosave );
)
);
// Set the String Col Edit Box action
scb << Set Function( Function( {this, which}, flavorList[which] = scb << get( which ) ) );Re : Comment rechercher des valeurs uniques dans la colonne et les utiliser dans la fenêtre de saisie ?Parfait merci!Re : Comment rechercher des valeurs uniques dans la colonne et les utiliser dans la fenêtre de saisie ?Bienvenue dans la communauté.
Tout d'abord, j'ai une suggestion sur la façon d'accélérer votre apprentissage de JSL.
Lisez le guide de script !!!!
Il est disponible sur
Aide==>Livres==>Guide de script
Vous trouverez ci-dessous un script barebones pour accomplir ce que vous avez demandé.
Names Default To Here( 1 );
dt = New Table( "Untitled 2",
Add Rows( 7 ),
New Column( "Cup Color",
Character,
"Nominal",
Set Selected,
Set Values( {"blue", "green", "yellow", "purple", "blue", "blue", "yellow"} )
),
New Column( "Calories",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [140, 80, 200, 130, 140, 140, 200] )
),
New Column( "Taste",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4, 7, 2, 3, 3, 4, 5] )
),
New Column( "Ranking",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [2, 1, 3, 6, 5, 4, 7] )
),
New Column( "Tester",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 4, 6, 4, 2, 3, 1] )
)
);
// Get the list of unique colors
Summarize( dt, colorList = by( :Cup Color ) );
// Initialize the flavor list and make it the same
// length as the colorList
flavorList = {};
For( i = 1, i <= N Items( colorList ), i++,
Insert Into( flavorList, "" )
);
// Create the display window
nw = New Window( "Select Flavors",
Text Box( "Enter in Flavors for each Color" ),
tb = Table Box(
String Col Box( "Colors", colorList ),
scb = String Col Edit Box( "Flavors", flavorList )
),
Button Box( "OK",
nw << close window;
// Create the flavor table and update it to
// the original table
dt2 = New Table( "combined",
New Column( "Cup Color", character, set values( colorList ) ),
New Column( "Flavors", character, set values( flavorList ) )
);
dt << Update( With( dt2 ), Match Columns( :Cup Color = :Cup Color ) );
close( dt2, nosave );
)
);
// Set the String Col Edit Box action
scb << Set Function( Function( {this, which}, flavorList[which] = scb << get( which ) ) );