Das Bearbeitungsfeld für Zahlen unterstützt << sib, aber nicht << prev sib In diesem Skript in den letzten beiden Funktionen, wenn die Nummer Bearbeitungsfeld ist geändert Ich verwende diesen Wert und sein linkes oder rechtes Geschwister zu Berechnen Sie einen neuen Wert. Wenn ich die linke Box wechsle kann ich das erfolgreich Finden Sie das richtige (nächste) Geschwister mit << sib. Wenn ich das Recht ändere Ich kann mit << prev sib nicht zu meinem vorherigen (linken) Geschwister zurückkehren.
Das Bearbeitungsfeld für Zahlen unterstützt << sib, aber nicht << prev sib laut meinem jmp 14 log. Führen Sie das angehängte Skript aus und ändern Sie die Nummer
boxen zum selber testen.
Benutze ich die richtige Funktion? Wenn ja, gibt es eine Möglichkeit, dies zu umgehen dieses Versäumnis?
dt = New Table( "untitled 1",
Add Rows( 0 ),
Compress File When Saved( 1 ),
New Table Variable( "First", 1.5 ),
New Table Variable( "Second", 2.4 ),
New Table Variable( "Third", 0 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [] )
)
);
LB = lineup box(NCol(4),
Text box("Factor"),
Text box("Total"),
Text box("Metrology"),
Text box("Process"),
);
TableVariables = dt << Get Table Variable Names();
New window("Variation",
v list box(
LB = lineup box(NCol(4),
Text box("Factor"),
Text box("Total"),
Text box("Metrology"),
Text box("Process"),
),
Button Box( "Write Total",ApplyTotalButton)
)
);
for(i=1,i<=N items(TableVariables),i++,
LB << Append(text Box(TableVariables[i]));
LB << Append(number edit Box(num(dt<<GET table="" variable=""></GET>
Betreff: Eingabefeld für Zahlen unterstützt << sib, aber nicht << prev sibWenn ich auf eine Gruppierung von Objekten verweisen möchte, füge ich normalerweise einen Container hinzu, z. B. erstelle ich eine Zeilenbox und dann die Syntax
((this << parent) << sib) << sib
würde genügen.
Für Ihr Beispiel würde ich jedoch ein Tabellenfeld einer StringColBox, zwei NumColEditBox und eine NumColBox verwenden. Wenn Sie auf die Zelle verweisen möchten, gibt Set Function zwei Variablen zurück, diese und welche, sodass auf NumColEditBox und die Zelle verwiesen wird.
Indem Sie Ihre Boxen benennen, können Sie mit einer einzigen Funktion auskommen,
Names Default to Here(1);
dt = New Table( "untitled 1",
Add Rows( 0 ),
Compress File When Saved( 1 ),
New Table Variable( "First", 1.5 ),
New Table Variable( "Second", 2.4 ),
New Table Variable( "Third", 0 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [] )
)
);
TableVariables = dt << Get Table Variable Names();
nvar = nitems(TableVariables);
totval = {};
metval = AsList(J(nvar,1,0));
procval = metval;
For(i=1, i<=nvar, i++,
InsertInto(totval, num(dt<< get Table Variable(TableVAriables[i])))
);
TB = TableBox(
vcol = StringColBox("Factor",TableVariables),
tcol = NumberColEditBox("Total",totval),
mcol = NumberColEditBox("Metrology", metval),
pcol = NumberColBox("Process", procval)
);
vcol << set row borders(0);
pcol << set row borders(0);
New window("Variation",
v list box(
TB,
Button Box( "Write Total",ApplyTotalButton)
)
);
recalcFunction = Function( {this, which},
//When value in this Number Edit Box is changed, get the value from this box and the one to the right and add the result and put it in the text box on the far right.
RMSE = tcol <<GET as="" matrix=""></GET>
Betreff: Eingabefeld für Zahlen unterstützt << sib, aber nicht << prev sibSie können das übergeordnete Objekt für das Objekt abrufen und die Anzahl der untergeordneten Objekte für das übergeordnete Objekt bestimmen und dann zu dem untergeordneten Objekt wechseln, mit dem Sie sich befassen müssen. Ich habe diese Methode nicht wirklich angewendet, aber ich habe ein bisschen damit herumgespielt, und ich denke, Sie könnten dafür sorgen, dass es funktioniert.Betreff: Eingabefeld für Zahlen unterstützt << sib, aber nicht << prev sibMerkzettel Artikel erstellt, bitte upvote?
https://community.jmp.com/t5/JMP-Wish-List/Implement-Prev-Sib-for-Displays/idi-p/82669#M394
Betreff: Eingabefeld für Zahlen unterstützt << sib, aber nicht << prev sibHast du eine Idee, wie du das (leicht) umgehen kannst?
Ich stelle mir vor, eine Lösung mit Xpath könnte funktionieren und dann mit der Suchfunktion diesen << Text abrufen, um herauszufinden, welches der Eingabefelder geändert wurde. Es wäre jedoch nicht robust für wiederholte Werte 
Die andere Option besteht darin, eine Schaltfläche zu erstellen, die alle Felder durchläuft und die Berechnung durchführt. Dies ist jedoch eine hässliche Lösung.Betreff: Eingabefeld für Zahlen unterstützt << sib, aber nicht << prev sibPrev Sib wird für Displays nicht unterstützt. Es ist nur für Baumknoten verfügbar. Es wäre schön, wenn es für Displays funktionieren würde. Ich schlage vor, dass Sie die Anfrage in die JMP Wish List eintragen.