Simplifiez la création de formules de colonnes en JSL en permettant à toutes les fonctions de colonne d'accepter des arguments Column("Nom").Qu'est-ce qui a inspiré cette demande de liste de souhaits ?
L'interface utilisateur de JMP m'a habitué à sélectionner des colonnes et à les glisser-déposer dans des zones de texte, y compris l'éditeur de formules. En arrière-plan, ces zones de texte génèrent des chaînes de caractères correspondant aux noms de colonnes, mais ce n'est pas ainsi que les boîtes de dialogue s'affichent : je déplace les colonnes manuellement.
pauldeen_0-1789654679720.pngpauldeen_0-1789654679720.pngpauldeen_0-1789654679720.png
Ce même comportement ne fonctionne pas dans les scripts :
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
ColList = {};
For(i=1, i<=NCols(), i++,
If(Column(i)<
<GETDATATYPE></GETDATATYPE>
<P>Cet exemple génère une liste invalide d'objets Column("Name") que la fonction Mean() ne peut pas traiter. Cela complique considérablement la manipulation des formules de colonnes pour un développeur débutant.</P> <P>Voir cette discussion : <A href="https://community.jmp.com/t5/Discussions/How-to-create-an-average-column-with-JSL-based-on-random-columns/m-p/968140#M110445" target="_blank">https://community.jmp.com/t5/Discussions/How-to-create-an-average-column-with-JSL-based-on-random-columns/mp/968140#M110445</A></P> <P>Voir le dossier d'assistance : 00345202</P> <P><STRONG>Quelle amélioration souhaiteriez-vous voir ?</STRONG></P> <P>Étendez toutes les fonctions de formule de colonne pour qu'elles acceptent des objets de type Column("Name") et convertissez-les en interne en un type de colonne indexable de style :"Name"n. Ainsi, même s'il s'agit techniquement d'un objet différent, le style d'interface utilisateur lors du glisser-déposer de colonnes reste identique.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pauldeen_1-1789654714335.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="pauldeen_1-1789654714335.png" style="width: 155px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="pauldeen_1-1789654714335.png" style="width: 155px;"><span class="lia-inline-image-display-wrapper" image-alt="pauldeen_1-1789654714335.png" style="width: 155px;"><img src="https://us.v-cdn.net/6038925/uploads/images/117467i4343BA562F3D604F/pauldeen_1-1789654714335.png" role="button" title="pauldeen_1-1789654714335.png" alt="pauldeen_1-1789654714335.png" /></span><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pauldeen_1-1789654714335.png</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pauldeen_1-1789654714335.png</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pauldeen_1-1789654714335.png</SPAN></SPAN></P> <P>Toutes les fonctions listées ici doivent être modifiées pour accepter le type column().</P> <P><STRONG>Pourquoi cette idée est-elle importante ?</STRONG></P> <P>Cela permet à JSL et à l'interface utilisateur de fonctionner de manière logique identique, ce qui facilite l'accès aux nouveaux développeurs de scripts.</P> <BR /> <BR />
Re: Rendre toutes les fonctions de colonne compatibles avec les arguments Column("Nom") afin de simplifier la création de formules de colonnes en JSLVoici une publication de la communauté concernant les différences entre Column et As Column :
Column() vs As Column() vs datable:column vs dt:As name("column")
Considérez Colonne() comme un objet possédant des propriétés telles que la couleur de la valeur, les spécifications, etc. Colonne() signifie : donnez-moi la valeur de la ligne actuelle – c'est ce qui est nécessaire dans les formules.
Les formules nécessitent en réalité la fonction As Column() , et non la fonction column().
Accepteriez-vous une solution de contournement utilisant En tant que colonne() au lieu de Colonne() ?
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
ColList = {};
For(i=1, i<=NCols(), i++,
If(Column(i)<
<GETDATATYPE></GETDATATYPE>
Re: Rendre toutes les fonctions de colonne compatibles avec les arguments Column("Nom") afin de simplifier la création de formules de colonnes en JSLParfois, la fonction Column() est utilisée dans les formules.
Par exemple, si vous souhaitez vérifier si une valeur est conforme aux spécifications, une structure assez complexe est nécessaire pour interroger la fonction ` column()` (celle qui contient les propriétés de la colonne) afin d'obtenir les spécifications et de comparer la valeur de la ligne actuelle ( via `column()` ) avec ces spécifications.
Si colonne() est utilisé comme alternative à comme colonne() , ces fonctions ne fonctionneront plus.
D'autre part, concernant la question de savoir si elle est conforme aux spécifications, j'espère que JMP 2027 fournira une fonction d'assistance pour faciliter de tels calculs.
:folded_hands: est dans la spécification (valeur)