<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe überall gesucht, auch in Threads wie diesem: Gibt es eine Möglichkeit, eine Schriftfarbe an einen einzelnen Wert in einer Anzeige zu senden? Wenn also X > 10 Farben x Lila (vorausgesetzt, ich weiß, wie man…
Aber ich kann nicht das genaue Wort für das Hinzufügen neuer bedingter Formatierungsregeln für „größer als“, „gleich“ oder „nur gleich“ herausfinden. Kann jemand jede Kombination auflisten? Hier ist ein Beispiel dafür, was ich tue. Ich muss Substitution verwenden, damit die Variablen funktionieren.
Eval(Substitute(Expr(Preferences(
Conditional Formatting Rules( RuleSet( RuleName( aaa ),
GreaterThan( value(nnn), Format( Text Color( "White" ), FontStyle( Bold ), Back Color( 17 ) ) ), )))),
Expr( aaa ), mystring,
Expr( nnn ), myparam
)
);
Der Schlüssel ist GreaterThan. Ich weiß, dass das funktioniert, und LessThan und die Groß- und Kleinschreibung sind auch wichtig!! Ich weiß einfach nicht, was ich für „Gleich“, „Ungleich“, „Größer als“ oder „Gleich“ und „Kleiner als“ oder „Gleich“ tun soll. Ich habe verschiedene Kombinationen von Groß- und Kleinschreibung und Leerzeichen ausprobiert, aber nichts hat funktioniert. Ich erhalte ständig die Meldung „Unerkannte Regel“.
Kennt schließlich jemand den Code zum Löschen eines Regelsatzes?
Keine dieser Informationen ist irgendwo zu finden.
Dank im Voraus
H
Hallo Heather,
Für eine Antwort auf Ihre ursprüngliche Anfrage ist es etwas spät, aber ich befand mich in einer sehr ähnlichen Situation wie die, die Sie vor ein paar Tagen beschrieben haben – und Folgendes habe ich getan, um den gewünschten Effekt zu erzielen:
Nutzen Sie zunächst den interaktiven Dialog wie unter beschrieben https://community.jmp.com/t5/Discussions/Is-there-a-way-to-send-a-font-color-to-a-single-value-in-a/td-p/8643 um die gewünschten Bedingungen zu erstellen. Ich wollte die Zellen aller NumberColBoxes in einer TableBox mit einer Hintergrundfarbe rot schattieren, wenn der Inhalt kleiner als 0,25 war, gelb, wenn er größer oder gleich 0,25, aber kleiner als 0,75 war, und grün, wenn der Inhalt kleiner als 0,25 war war größer oder gleich 0,75.
Ich wollte, dass die Textfarbe von Schwarz auf Weiß geändert wird, wenn die Hintergrundfarbe rot oder grün ist, um die Lesbarkeit zu erleichtern. Außerdem hätte ich dem Text auch Fett- und/oder Kursivschrift hinzufügen können, wenn ich das gewollt hätte. Der Dialogbildschirm sah beim Betrachten des Zustands „gelb“ wie folgt aus:

Nachdem ich es eingerichtet hatte, musste ich sehen, wie das Obige in JSL aussah, damit ich es in mein Skript integrieren konnte. Geben Sie dazu „show precision()“ in ein Skriptfenster ein und führen Sie es aus. Die Ausgabe zeigt alle Ihre Einstellungen, einschließlich der gerade eingerichteten, die in meinem Fall so aussah:
Regelsatz(
Regelname( „DMR_Test_01“ ),
Größer als(
Wert( 0,75 ),
Inklusive( 0 ),
Format ( Textfarbe ( "Weiß" ), Hintergrundfarbe ( { 0 , 200 , 0 } ) )
),
Reichweite(
MinWert( 0,25 ),
MaxValue( 0,75 ),
InclusiveStart( 0 ),
InclusiveEnd( 0 ),
Format ( Textfarbe ( "Schwarz" ), Hintergrundfarbe ( „Mittelhelles Gelb“ ) )
),
Weniger als(
Wert( 0,25 ),
Inklusive( 0 ),
Format ( Textfarbe ( "Weiß" ), Hintergrundfarbe ( "Rot" ) )
)
)
)
Deshalb habe ich den obigen Regelsatz in eine eigene Preferences()-Anweisung integriert und sie dann wie gezeigt auf einer TableBox mit einer Reihe von Spalten mit Zufallszahlen zwischen 0 und 1 getestet. Um mir die Möglichkeit zu geben, es in eine Funktion einzubauen, die ich später auf jeder TableBox ausführen kann, deren Struktur möglicherweise auch einige StringColBoxes oder PlotColBoxes enthält, habe ich jede Box getestet, um zu sehen, ob es sich um eine NumberColBox handelt, bevor ich versucht habe, das bedingte Format darauf anzuwenden. Das endgültige Skript sieht so aus:
Präferenzen (
Regeln für bedingte Formatierung(
Regelsatz(
Regelname( „DMR_Test_01“ ),
Größer als(
Wert( 0,75 ),
Inklusive( 0 ),
Format ( Textfarbe ( "Weiß" ), Hintergrundfarbe ( { 0 , 200 , 0 } ) )
),
Reichweite(
MinWert( 0,25 ),
MaxValue( 0,75 ),
InclusiveStart( 0 ),
InclusiveEnd( 0 ),
Format ( Textfarbe ( "Schwarz" ), Hintergrundfarbe ( „Mittelhelles Gelb“ ) )
),
Weniger als(
Wert( 0,25 ),
Inklusive( 0 ),
Format ( Textfarbe ( "Weiß" ), Hintergrundfarbe ( "Rot" ) )
)
)
)
);
fn_RanUni = Funktion ({N}, {Standard lokal},
RanUniList = {}; für (ich= 1 , i<=N, i++, einfügen in (RanUniList, Zufällige Uniform ()));
RanUniList
);
My_TableBox = TableBox (
StringColBox ( „SCB“ , { „AAA“ , „BBB“ , „CCC“ , „DDD“ , „EEE“ , "F F F" , „GGG“ , „HHH“ , „III“ , „JJJ“ }),
NumberColBox ( „NCB1“ , fn_RanUni( 10 ), << Format festlegen ( „Fester Dezember“ , 10 , 3 )),
NumberColBox ( „NCB2“ , fn_RanUni( 10 ), << Format einstellen ( „Fester Dezember“ , 10 , 3 )),
PlotColBox ( „PCB1“ , fn_RanUni( 10 )),
NumberColBox ( „NCB3“ , fn_RanUni( 10 ), << Format festlegen ( „Fester Dezember“ , 10 , 3 )),
NumberColBox ( „NCB4“ , fn_RanUni( 10 ), << Format einstellen ( „Fester Dezember“ , 10 , 3 )),
PlotColBox ( „PCB2“ , fn_RanUni( 10 )),
NumberColBox ( „NCB5“ , fn_RanUni( 10 ), << Format einstellen ( „Fester Dezember“ , 10 , 3 )),
<< Setzen Sie abwechselnd Schattenreihen ( 0 ),
<< Schattenüberschriften festlegen ( 0 ),
<< Spaltenränder festlegen ( 1 ),
<< Zeilenränder festlegen ( 0 ),
<< Überschriften unterstreichen ( 1 ),
<< Hintergrundfarbe ( "Weiß" )
);
für (ich= 1 , i<= nItems (My_TableBox), i++,
Wenn ((My_TableBox[i] << Klassenname ())== „NumberColBox“ ,
My_TableBox[i] << Bedingtes Format festlegen ( „DMR_Test_01“ )
)
);
neues Fenster ( „NW“ ,
My_TableBox
);
In den Einstellungen kann ich jetzt sehen, wie ich die richtige Syntax für (a) die Angabe eines Bereichs, (b) die Änderung der Hintergrundfarbe einer Zelle und (c) die Einbindung einer Bedingung „größer als oder gleich“ erhalte.Das Ausführen des obigen Skripts sollte etwa Folgendes ergeben:

Ich hoffe, dass dies für jeden hilfreich sein kann, der versucht, etwas Ähnliches zu tun.