Verhindern Sie das Scrollen im Fenster beim Hinzufügen von AnzeigefeldernGibt es eine Möglichkeit zu verhindern, dass ein Fenster zum Speicherort hinzugefügter Felder scrollt?Im folgenden Beispielskript wird durch Drücken der Schaltfläche „Spline hinzufügen“ ein neuer Spline mit dem halben Lambda-Wert des vorherigen hinzugefügt. Nach etwa sechsmaligem Drücken der Schaltfläche scrollt das Fenster vom Diagramm weg zur Position des Spline neu hinzugefügter Kontroll-Spline.
Dies ist ein Beispiel – die Lösung besteht NICHT darin, einfach die anderen Kontrollkarten aus der Anzeige zu entfernen.In meinem eigentlichen Code entferne ich das Kontrolldiagramm mit dem Befehl „biv << (Curve[1] << Report( 0 ))“, aber es scrollt trotzdem.
Jede Hilfe wäre sehr dankbar.
Danke!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
obj << Fit Spline( n, Standardized );
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate( Y( :Weight ), X( :Height ) );
obj << Fit Spline( n, Standardized );
)
);Betreff: Fensterscrollen beim Hinzufügen von Anzeigefeldern verhindernOption Nr. 2, den Spline von Hand hinzuzufügen, hat den Zweck erfüllt. JMP verfügt über eine praktische Funktion zur Berechnung von Splines, was die Arbeit sehr einfach macht.Betreff: Fensterscrollen beim Hinzufügen von Anzeigefeldern verhindernHaben Sie darüber nachgedacht, einen Bericht mit Registerkarten und einem Selektor zu verwenden?Siehe das Bild unten.Oder erstellen Sie eine Seite mit mehreren Diagrammen, beispielsweise nebeneinander, für jede Ansicht.
Weitere Alternativen sind:
- Erstellen Sie Ihre Bivariate mit zwei Splines mit reduzierten (versteckten) Boxen. Bis der Benutzer einen Wert oder die Schaltfläche auswählt, setzen Sie die Linienbreite des zweiten Splines auf 0, damit er nicht sichtbar ist. Ermöglichen Sie dem Benutzer, den Wert des zweiten Splines auszuwählen. Mit anderen Worten: Sie fügen nicht viele Splines hinzu, sondern senden einfach eine Nachricht, um den Glättungsfaktor eines Splines zu ändern. Das würde jegliches Springen verhindern.
- Ändern Sie das Verhalten der Schaltfläche „Spline hinzufügen“, um eine Kurve mithilfe des Skripts „Grafik hinzufügen“ hinzuzufügen, anstatt die Benutzeroberflächenmeldung „Spline anpassen“ zu verwenden.Dies würde zusätzliche Skripterstellung erfordern: Funktionen verwenden, um Koeffizienten zu erhalten, auszuwerten, eine Farbe auszuwählen, das Grafikskript hinzuzufügen,
Option Nr. 1 wäre die einfachste
Der Schieberegler der JMP-Benutzeroberfläche erkennt, was Sie emulieren möchten. Der Benutzer kann den Glättungsfaktor anpassen.

Betreff: Fensterscrollen beim Hinzufügen von Anzeigefeldern verhindernDanke für die Hilfe!Ich werde sehen, ob ich das zum Laufen bringen kann, aber ich denke, dass diese Methode am Ende für mich nicht funktionieren wird – ich ändere eine Funktion, die von verschiedenen Berichten aufgerufen wird, um die Diagramme zu generieren – ich kann kein Bildlauffeld hinzufügen die Berichte.Die einzige mir einfallende Lösung, die für mich funktionieren würde, besteht darin, einfach zu verhindern, dass der neue Inhalt den Scroll-Mechanismus auslöst.
Betreff: Fensterscrollen beim Hinzufügen von Anzeigefeldern verhindernWelche JMP-Version verwenden Sie?
Im Anhang sind 2 Skripte: scrollers_ob.jsl Und scrollers.jsl
Bei beiden handelt es sich im Wesentlichen um dasselbe Skript, mit Ausnahme der Scroll-Aktion.
scrollers_ob.jsl
- verwendet nur VListBox(), vlb und Scroll Window() für das Umrissfeld, das die Schaltfläche enthält, die der Benutzer gerade gedrückt hat. Wenn ein Benutzer jedoch zur sechsten Anzeige scrollt, wird ein Teil der Anzeige 5 angezeigt, wodurch Anzeige 6 nach oben verschoben wird. Der Benutzer sieht immer noch das Diagramm, das ihn interessiert, und die Scroll-Aktion verläuft reibungslos.
scrollers0.jsl
- verwendet einen ScrollBox()-Wrapper, sb, für vlb.Eine ScrollBox hat eine nette Funktion << Scroll-Position abrufen. Mit dieser Funktion zum Festlegen der Bildlaufposition sieht der Benutzer genau dieselbe Position, allerdings ist die Anzeige unruhig und nicht flüssig.
Beide Skripte verwenden Ausdrücke, um „Cookie-Cutter“-Code zu eliminieren, der schwierig zu lesen und zu warten sein kann. Beachten Sie, dass Griffe/Referenzen für jedes Schaltflächenfeld, jedes Bivariat und jedes „Anzeige“-Umrissfeld erstellt werden.Klicken Sie mit der rechten Maustaste auf eine beliebige Schaltfläche > wählen Sie „Bearbeiten“ > wählen Sie „Skript festlegen“, um den Verweis auf die Bivariate usw. anzuzeigen.
Als Hinweis für die JSL-Master habe ich versucht, Set Function() für die ButtonBox() zu verwenden und deren übergeordnetes und Geschwisterelement zu verwenden. Ich war jedoch überrascht, dass vlb << Scroll Window(this) bei mir nicht funktionierte.Es könnte ein Codierungsfehler gewesen sein. Ich habe nicht viel Zeit damit verbracht, da ich dachte, der Code sei vielleicht zu unübersichtlich, um informativ zu sein.
Betreff: Fensterscrollen beim Hinzufügen von Anzeigefeldern verhindernVielen Dank für Ihre Hilfe!Mein Problem ist jedoch, dass ich nicht möchte, dass irgendein Teil der Zusammenfassung angezeigt wird, sondern lediglich, dass der Spline gezeichnet wird.Zu diesem Zweck verwende ich die Befehle Visibility( „Collapse“ ) und (Curve[x] << Report(0)), die erfolgreich verhindern, dass die Berichte angezeigt werden.Der Bildschirm bewegt sich jedoch immer noch, als ob sie angezeigt würden.
Ich habe hier ein vollständigeres Beispiel eingefügt.Durch Klicken auf die Schaltfläche zum Hinzufügen des Splines wird sofort an den Punkt gescrollt, an dem das Diagramm nicht mehr sichtbar ist, auch wenn (am Ende) kein neuer Inhalt angezeigt wird.
Ich habe einen Bericht, der in meinem Unternehmen verwendet wird und viele Diagramme auf einer Seite enthält, wie in diesem Beispiel, und die Möglichkeit, interaktiv Splines hinzuzufügen, ist sehr nützlich, aber wenn das Diagramm, das Sie interessiert, dadurch vom Bildschirm verschwindet, wird es auch angezeigt Es ist sehr lästig, damit umzugehen.
Jede Hilfe wäre sehr dankbar!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
Outline Box( "a display",
a1 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a1++;
obj1 << Fit Spline( n, Standardized ) << (Curve[a1] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj1 = Bivariate( Y( :Weight ), X( :Height ) );
obj1 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj1 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj1 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a2 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a2++;
obj2 << Fit Spline( n, Standardized ) << (Curve[a2] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj2 = Bivariate( Y( :Weight ), X( :Height ) );
obj2 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj2 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj2 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a3 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a3++;
obj3 << Fit Spline( n, Standardized ) << (Curve[a3] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj3 = Bivariate( Y( :Weight ), X( :Height ) );
obj3 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj3 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj3 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a4 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a4++;
obj4 << Fit Spline( n, Standardized ) << (Curve[a4] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj4 = Bivariate( Y( :Weight ), X( :Height ) );
obj4 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj4 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj4 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a5 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a5++;
obj5 << Fit Spline( n, Standardized ) << (Curve[a5] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj5 = Bivariate( Y( :Weight ), X( :Height ) );
obj5 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj5 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj5 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a6 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a6++;
obj6 << Fit Spline( n, Standardized ) << (Curve[a6] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj6 = Bivariate( Y( :Weight ), X( :Height ) );
obj6 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj6 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj6 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a7 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a7++;
obj7 << Fit Spline( n, Standardized ) << (Curve[a7] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj7 = Bivariate( Y( :Weight ), X( :Height ) );
obj7 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj7 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj7 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a8 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a8++;
obj8 << Fit Spline( n, Standardized ) << (Curve[a8] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj8 = Bivariate( Y( :Weight ), X( :Height ) );
obj8 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj8 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj8 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a9 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a9++;
obj9 << Fit Spline( n, Standardized ) << (Curve[a9] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj9 = Bivariate( Y( :Weight ), X( :Height ) );
obj9 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj9 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj9 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
)
)
);Betreff: Fensterscrollen beim Hinzufügen von Anzeigefeldern verhindernAus Sicht der interaktiven Benutzeroberfläche ist es sinnvoll, zur Fit-Zusammenfassung zu scrollen.Dieses Skript verwendet zwei nützliche JMP-Anzeigefeldfunktionen/-methoden: Visibility() und Scroll Window(). Scroll Window() wird verwendet, um immer zum oberen Rand der Anzeige zurückzukehren, und die Sichtbarkeit wird verwendet, um die mit den Splines verknüpften Umrissrahmen zu „reduzieren“.
Beachten Sie, dass dieses Skript der Einfachheit halber die Anzahl der Umrissfelder verwendet.Allerdings wäre Xpath direkter, um die k-te Outline Box mit helpKey beginnend mit Bivar Spline zu finden.
Names Default To Here( 1 );
n = 100;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
xp = Expr(report(obj)[OutlineBox(cnt)] <<VISIBILITY></VISIBILITY>