Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Les tables peuvent être référencées dans JSL par un nom de variable ou par le titre de la table.Par exemple:
Si j'ai créé une table via une requête :
dtMap = Ouvrir la base de données (DSN, sqlStr, "Carte" );
Je peux ensuite faire référence à cette table en tant que dtMap ou DataTable ("Map").
Si je crée un rapport :
Biv = Bivarié(Y(yy), X(xx));
Je peux l'appeler Biv.
Mais puis-je l'appeler par un titre ou un nom?(par exemple, rapport ("Ajustement bivarié de yy par xx"))
Normalement, je préfère utiliser le nom de la variable, mais j'ai une application où je ne l'ai pas et j'ai besoin de me référer au rapport par d'autres moyens.
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Il n'est pas nécessaire de s'excuser ici. (Et s'il y en avait, alors ne le postez pas en premier lieu ! J)
Merci d'avoir signalé cette omission dans la documentation. Nous l'étudierons plus avant.
Le message apparaît dans Aider > Index des scripts . La recherche trouve ce message et affiche des informations à son sujet. En cliquant sur le Aider Le bouton ouvre la documentation pour vous. Dans ce cas, la seule information se trouve dans le Guide de syntaxe JSL . Il n'y a apparemment rien dans le Guide de création de scripts JMP comme vous l'avez souligné.
Le Index des scripts et le Guide de syntaxe JSL ne sont pas des aides redondantes mais très utiles en soi.
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?La fonction Window() est destinée à un script et utilisée par un scripteur. Le résultat n'est généralement pas visible pour l'utilisateur. Le scripteur peut voir le résultat dans le journal comme une aide au développement et au débogage.
Le résultat est utile car il confirme d'une part qu'un résultat d'une liste de référence à toutes les fenêtres ouvertes a été obtenu et d'autre part il peut être utilisé pour travailler avec ces fenêtres comme illustré par Wendy et Ian. Le formulaire "Window() << Get Window Title" utilise le résultat de la fonction (une liste) et distribue le message (Get Window Title) à chaque élément de la liste. Le résultat du message est une nouvelle liste avec le titre de chaque fenêtre ouverte sous forme de chaîne de caractères. Vous n'avez donc pas besoin de comprendre le résultat de Window() ("sortie cryptée") pour l'utiliser.
Cela dépend de ce que vous voulez faire. Si j'obtiens la référence de la fenêtre, je peux faire n'importe quoi avec la fenêtre avec des fonctions et des messages. Si j'obtiens le titre de la fenêtre, ce qui peut signifier quelque chose pour l'utilisateur, cette information a une utilité quelque peu limitée dans un script.
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Permettez-moi d'en ajouter un compatible avec JMP.Désolé!!
Mais pourquoi une recherche dans le guide de script pour:
Obtenir le titre de la fenêtre
ou
GetWindowTitle
produire aucune correspondance ?
Et une recherche de Window() correspond uniquement
Afficher la fenêtre (), Imprimer la fenêtre (), Nouvelle fenêtre () et DataTable Window () ?
Je suggère que ceux-ci soient ajoutés quelque part dans les premiers chapitres, car ils semblent être des fonctions plutôt basiques pour gérer les fenêtres dans JMP.
Êtes-vous d'accord?
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Merci tout le monde.
Même une variable définie comme la ligne ci-dessous donne une sortie cryptée à l'utilisateur, même si JMP sait ce que cela signifie.
xxxx = Fenêtre ();
afficher(xxx);
xxx = {DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox]} ;
Soit:
xxx << Obtenir le titre de la fenêtre ;
Ou la seule ligne :
xxx = Fenêtre () << Obtenir le titre de la fenêtre ;
Travaux.
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Pour poursuivre ce que Mark et Melanie ont déjà dit :
NamesDefaultToHere(1);
// Make a report, but don't keep any reference to it
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Bivariate(X(:height), Y(:weight));
// See which windows are open in the current session and find the window of interest
openW = Window();
myWin = {};
for(w=1, w<=NItems(openW), w++,
winTitle = openW[w] << getWindowTitle;
Print(winTitle);
if(Contains(winTitle, "Bivariate"), InsertInto(myWin, openW[w]))
);
// Do a linear fit in each Bivariate report that we found
Wait(2);
for(w=1, w<=NItems(myWin), w++,
// Get the scriptable object for the Bivariate 'analysis layer'
thisSO = myWin[w]["Bivariate ?"] << getScriptableObject;
// Fit the line
thisSO << fitLine;
);
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Vous pouvez obtenir directement une liste des titres de fenêtre sous forme de chaînes :
Window() << Get Window Title
Il renvoie quelque chose comme ceci :
{"Script", "Big Class", "Big Class - Distribution"}Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Vous devez regarder les résultats renvoyés par le Fenêtre() fonction dans le journal. Cet affichage vérifie simplement qu'il y a un tas de fenêtres ouvertes et identifie la racine de chaque arborescence d'affichage avec un nom générique.
Vous pouvez enregistrer cette liste dans une variable, puis parcourir la liste tout en examinant chaque élément. Par exemple, vous pouvez obtenir le titre de la fenêtre et le vérifier pour voir si c'est celui que vous voulez. Si c'est le cas, vous pouvez l'enregistrer et sortir de la boucle. Utilisez maintenant la référence obtenue de cette manière comme si vous l'aviez enregistrée en premier lieu.
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Merci beaucoup pour une réponse rapide.
La sortie que j'obtiens de Windows() semble très générique.Je ne comprends pas quelque chose.
{DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox],
DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox],
DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox], DisplayBox[HeadBox]}
Re : Comment puis-je identifier un rapport dans jsl si ce rapport n'est pas associé à une variable ?Vous pouvez vous référer aux plates-formes bivariées ouvertes par index en utilisant la syntaxe d'index, telle que Bivariate[1]. L'index est l'ordre dans lequel ils ont été lancés.
Vous pouvez utiliser la fonction Window() pour obtenir une liste des fenêtres ouvertes, puis parcourir ses éléments pour rechercher et examiner toutes les plates-formes d'un type particulier.