<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
Ich habe den Scripting Guide und den Scripting Index durchsucht, kann aber keine Möglichkeit finden, das zu tun, was ich tun möchte.
Hier ist die Aufgabe:
- Ich schreibe ein Skript, das viele andere bereits vorhandene Skripts nacheinander ausführt. Erforderliche Aspekte des Berichts jedes bereits vorhandenen Skripts werden übernommen und in ein Hauptfenster "Vollständiger Bericht" kopiert.
- Aus Vertrauensgründen darf ich keine bereits bestehenden Skripte ändern
- Wenn ich nur den vollständigen Bericht aus einem Skript im Großhandel nehmen muss, ist dies sehr einfach und kann folgendermaßen erreicht werden:
[Hauptfenster für vollständigen Bericht erstellen]
:: winOut = Neues Fenster ( "Kompletter Bericht_" || Ersatz ( Abkürzung Datum ( Heute () ) , "/" , "-" ) ,
:: vListOut = V Listenfeld ()
) ;
:: dtMain = Aktuelle Datentabelle () ;
:: dtMain << Auswahl löschen ;
[einfaches Beispiel zum Anhängen]
:: boxTemp = Gliederungsbox ( "** Variabilitätsdiagramme für alle Wochen" ) ;
:: boxTemp << Anhängen ( ( :: dtMain << Skript ausführen ( "VarChart" )) << Bericht ) ;
:: vListOut << Anhängen ( :: boxTemp ) ;
Hier ist das Problem:
- Manchmal muss ich bestimmte Gliederungsfelder innerhalb eines Berichts über JSL schließen
- Schritt 1 ist einfach, wenn der Bericht ein einziges „Hauptfeld“ hat, das alle Gliederungsfelder enthält, die geschlossen werden müssen, aber das ist nicht immer der Fall.
- Beispielsweise gibt es ein Skript, das ein Anpassungsmodell erstellt. Für dieses Anpassungsmodell wird die Funktion „By:“ verwendet, die 3 separate „Hauptfelder“ mit den Titeln „Response Log (Production) Condition = A“, „Response Log (Production) Condition = B“ und „Response Log(Produktion)-Bedingung = C".
- Was ich also brauche, ist Code, um entweder zu tun:
- "Schließen Sie alle Gliederungsfelder in diesem Bericht mit dem Titel "Effektzusammenfassung""
- etwas ähnliches (das funktioniert nicht): :: repAktuell [ Gliederungsbox ( "Zusammenfassung der Effekte" )] << Nah dran ( 1 ) ;
- "Überprüfen Sie für jedes Gliederungsfeld in diesem Bericht seinen Namen. Wenn sein Name "Effect Summary" enthält, schließen Sie es.
Und als zweites Problem könnte jemand bitte das folgende Verhalten erklären?
- Code wie :: boxTemp << Anhängen ( ( :: dtMain << Skript ausführen ( "VarChart" )) << Bericht ) ; funktioniert nicht immer, wenn der von einem Skript generierte Bericht mehr als nur einen Bericht erstellt (d. h. einen Bericht erstellt, die Datentabelle ändert und den Bericht dann neu formatiert)
- Wenn dies auftritt, muss ich Folgendes verwenden:
:: dtMain << Skript ausführen ( "Verteilungen" ) ;
:: repAktuell = Aktueller Bericht () ;
:: boxTemp << Anhängen ( :: repAktuell [ Gliederungsbox ( "Verteilungen" )] ) ;
Besonderer Hinweis "::boxTemp<
Weiß jemand, warum ich "Current Report" verwenden muss?
Bei meinem ersten Problem gibt es mehrere Gliederungsfelder innerhalb des Berichts, die kopiert werden müssen, daher wird es nicht so einfach sein wie im obigen Beispiel. Gibt es trotzdem ein gespeichertes Berichtsobjekt, das über "Aktueller Bericht ()" initialisiert wurde, und die Funktion "Anhängen" für dieses Berichtsobjekt zu verwenden, ohne ein Objekt angeben zu müssen (dh wie sage ich ihm, dass es das GESAMTE Berichtsobjekt anhängen soll? Inhalte und nicht die spezifischen Inhalte eines Gliederungsfeldes, das in einem Bericht enthalten ist).
Vielleicht finden Sie etwas, das bei Ihrem (ersten) Problem hilft https://community.jmp.com/message/225609#225609 .