Tabellenfelder – kann ich Zeilen ausblenden oder einblenden?Hallo – ist es möglich, innerhalb eines Skripts bestimmte Zeilen in einer Tabellenbox ein- und auszublenden? Ich kann bestimmte Spalten ein- und ausblenden, sehe aber keine Eigenschaften einer Tabellenbox, die mir dies für Zeilen ermöglichen würden. Ich habe solche Dinge in der Vergangenheit jedoch übersehen oder falsch interpretiert. Vermutlich könnte ich zur Tabelle zurückkehren, aus der die Tabellenbox erstellt wurde, die gewünschten Zeilen ausblenden und die Tabellenbox anschließend daraus neu erstellen. Das möchte ich aber nicht tun müssen, da die ursprüngliche Tabelle bereits im Skript gelöscht wurde. Gibt es eine andere Möglichkeit?
Vielen Dank für alle Vorschläge.
Betreff: Tabellenfelder – kann ich Zeilen ausblenden oder einblenden?Ich lösche ständig Inhalte aus Containern und füge sie wieder hinzu. JMP scheint die Windows-Updates sehr gut zu handhaben, sodass kein Flimmern zu sehen sein sollte. Falls doch, liegt das meist daran, dass das Fenster aufgrund von verlorenem Inhalt kleiner wird. Sie können dies beheben, indem Sie Abstandshalter verwenden, die als „Splines“ fungieren und die Fenstergröße beim Ersetzen des neuen Inhalts beibehalten.
Dave
Betreff: Tabellenfelder – Kann ich Zeilen ausblenden oder einblenden?Hallo Dave,
Um Ihre Fragen zu beantworten: Die Tabellenbox wurde von mir aus einer Datentabelle erstellt, die von einer der Standardplattformen abgeleitet wurde. Ich versuche also im Wesentlichen, die Ausgabe dieser Plattform in einem anderen Format zusammenzufassen. Nach dem Ausführen der Plattform wird jedoch noch einiges an Arbeit erledigt, und dabei werden viele Tabellen auf diese Weise generiert. Deshalb möchte ich diese nicht einfach im Arbeitsbereich belassen, auch wenn sie dann unsichtbar wären. Die Notwendigkeit, Zeilen nachträglich zu entfernen, ergibt sich daraus, dass der Benutzer alle Zeilen ausschließen kann, die er im endgültigen Bericht nicht sehen möchte. Dies erfolgt über verschiedene Schaltflächen und/oder Kontrollkästchen in der Benutzeroberfläche.
Nein, du hast recht: Am besten schreibt man wohl eine kleine Funktion, die eine Tabellenbox und eine Liste mit so vielen Binärflags wie Tabellenzeilen als Eingabe erhält. Diese Funktion wandelt den Inhalt der Tabellenbox in eine unsichtbare Datentabelle um und erstellt daraus eine neue Tabellenbox. Dabei werden mithilfe der Flag-Liste die nicht benötigten Zeilen ausgeblendet und die Formate der ursprünglichen Spalten übernommen. Anschließend ersetzt man einfach die alte Tabellenbox durch die neue – was so schnell und reibungslos abläuft, dass der Benutzer es kaum bemerkt. Das Skripten selbst ist sehr schnell erledigt; mir ging es vor allem darum, zu zeigen, dass es keine Möglichkeit gibt, die ursprüngliche Tabellenbox direkt zu bearbeiten – und anscheinend gibt es diese auch nicht.
Vielen Dank! Und jetzt heißt es Ärmel hochkrempeln...
Betreff: Tabellenfelder – kann ich Zeilen ausblenden oder einblenden?Dave
Ich schätze, Sie müssen die Zähne zusammenbeißen und es mit roher Gewalt angehen. Ein paar Fragen an Sie: (1) Was ist die Quelle des Tabellenfelds (etwas, das Sie selbst erstellt haben oder etwas, das von JMP in einem Bericht generiert wurde? (2) Woher kommt die Anforderung zum Ausblenden/Einblenden (z. B. als Reaktion auf eine vom Benutzer generierte Änderung des Zeilenstatus oder aufgrund einer Logik im Code)? Abschließend: Da ich denke, dass Sie das Tabellenfeld „nur“ neu generieren müssen, müssen Sie die Tabelle neu erstellen oder können Sie das Tabellenfeld in eine Tabelle konvertieren, das Tabellenfeld löschen, das Ausblenden/Einblenden durchführen und dann das Tabellenfeld neu generieren?
Für mich fühlt sich das wie eines dieser Szenarien an, mit denen wir als Programmierer konfrontiert werden, wo wir etwas wirklich nicht tun wollen und es immer wieder aufschieben und ... hey, bald ist Wochenende ... und ja, das Schreiben ist mühsam, aber zur Laufzeit wird es großartig funktionieren und Sie wissen einfach, dass Sie diese Logik irgendwann in der Zukunft brauchen werden!
Dave