Colonne liée avec le suffixe d'ID gâchant l'utilisation du nom de colonneJ'ai l'impression de devenir un peu fou. J'ai un nom de colonne que je mets dans une variable via un sélecteur de colonne. Puis plus tard, je le manipule, mais malheureusement, la colonne est une colonne liée, elle est donc accompagnée d'un "[ID]" qui y est attaché. Tout va bien jusqu'à ce que j'essaye Char() dessus, et que soudainement des caractères d'échappement apparaissent : "{\!"Solvent[ID]\!"}". Parce que ces caractères sont spéciaux, ils gâchent les guillemets, et la façon dont ils gèrent le troisième point d'interrogation qui est censé le corriger semble très pointilleux. Peut-être que je mets les citations supplémentaires au mauvais endroit, mais je suis presque sûr que je ne me base pas sur la documentation. J'ai essayé regex, munger, substitut, Eval Expr, et rien ne semble pouvoir l'obtenir au type correct dont j'ai besoin, qui est simplement une chaîne à insérer dans des éléments comme la fonction de colonne de by() pour résumer. . J'ai l'impression de mal comprendre quelque chose à ce stade, car cela ne doit pas être si difficile.
Merci!
Automatisation et scriptsles fenêtresRe : Colonne liée avec suffixe d'ID gâchant l'utilisation du nom de colonnePourquoi devez-vous utiliser Char sur ce nom de colonne ? En général, cela ne devrait "jamais" être nécessaire (à moins que vous n'ayez besoin que du nom et que vous l'ayez probablement déjà).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt << Select Where(:name == "ROBERT") << Delete Rows << Clear Select;
dt2 << Select Where(:name == "ROBERT") << Delete Rows << Clear Select;
dt:name << Set Property("Link ID", 1);
dt2:name << Set Property("Link Reference", Reference Table("Big Class.jmp"));
nw = New Window("",
H List Box(
Filter Col Selector(Datatable(dt2)),
clb = Col List Box(Datatable(dt2))
)
);
clb << Set Items(
{"age[name]", "sex[name]", "height[name]", "weight[name]"}
);
sel = clb << get items; // {"age[name]", "sex[name]", "height[name]", "weight[name]"}
show(sel);
show(Char(sel));
Write("\!N\!N");
Write(char(sel));Re : Colonne liée avec suffixe d'ID gâchant l'utilisation du nom de colonne@jthi Merci pour la réponse! Donc, la raison pour laquelle je n'ai pas simplement fait une simple égalité est que chaque fois que j'essaie d'accéder à la liste des noms de colonnes à un seul membre, j'obtiens toujours quelque chose du genre de cette erreur (c'est similaire avec d'autres commandes) :
Send Expects Scriptable Object at row 1 in access or evaluation of 'Send' , clb << /*###*/Get( 1 ) /*###*/
J'ai essayé d'y accéder comme vous l'avez suggéré, avec une commande get items, mais cette erreur n'arrêtait pas de apparaître. Le code ci-dessous montre où les variables apparaissent en premier (c'est le majorVar et le minorVar). Je n'ai jamais utilisé la syntaxe window:xxx auparavant, alors peut-être y a-t-il une manière de gérer les variables que je ne comprends pas ?
New Window("Select Variables", << Type("Modal Dialog"),
<<ON validate="">majorVar = window:lbMajor << Get Selected;
<FONT color="#339966">minorVar</FONT> = window:lbMinor << Get Selected;
If( N Items( <FONT color="#FF0000">majorVar</FONT> ) & N Items( <FONT color="#339966">minorVar</FONT> ) & <FONT color="#FF0000">majorVar</FONT> != <FONT color="#339966">minorVar</FONT>,
window:validated = 1
,
window:validated = 0
);
window:ok button << Enable( window:validated )
);
H List Box(
V List Box(
Text Box("Select Major Variable"),
window:lbMajor = List Box(combinedCols, <<SET max="" selected="">majorVar = window:lbMajor << Get Selected;
<FONT color="#339966">minorVar</FONT> = window:lbMinor << Get Selected;
If( N Items( <FONT color="#FF0000">majorVar</FONT> ) & N Items( <FONT color="#339966">minorVar</FONT> ) & <FONT color="#FF0000">majorVar</FONT> != <FONT color="#339966">minorVar</FONT>,
window:validated = 1
,
window:validated = 0
);
If( window:validated,
Print("Processing with major: " || Char(<FONT color="#FF0000">majorVar</FONT>) || ", minor: " || Char(<FONT color="#FF0000">minorVar</FONT>));
Window("Select Variables") << Close Window;
,
Beep(); // Optional: Add a beep sound for alert
Show("Invalid Selection");
{window:lbMajor, window:lbMinor} << Select; window:lbMajor << Inval << Update Window;
Wait( 0.25 );
{window:lbMajor, window:lbMinor} << DeSelect; window:lbMajor << Inval << Update Window;
Wait( 0.25 );
{window:lbMajor, window:lbMinor} << Select; window:lbMajor << Inval << Update Window;
Wait( 0.25 );
{window:lbMajor, window:lbMinor} << DeSelect; window:lbMajor << Inval << Update Window;
)
,
<<ENABLE></ENABLE></SET></ON>Re : Colonne liée avec suffixe d'ID gâchant l'utilisation du nom de colonneExiste-t-il une raison spécifique pour utiliser la zone de liste au lieu du sélecteur de colonnes de filtre ou de la zone de liste de colonnes ? Comme vous semblez déjà avoir un validateur pour les entrées et qu'il doit y avoir exactement une valeur choisie dans les deux listes, vous pouvez simplement prendre le premier index des deux (<< Get Selected renvoie une liste de chaînes)

majorVar = majorVar[1];
minorVar = minorVar[1];
Re : Colonne liée avec suffixe ID perturbant l’utilisation du nom de colonneÇa a marché ! Merci !