JSL - Erstellen einer Schleife für einen benutzerdefinierten Verteilungsbericht<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Gibt es eine Möglichkeit, eine Platzhaltervariable über ein Array zu erstellen, das in die Syntax der Verteilungsberichtsebene eingesetzt werden kann? Der Code, den ich habe, schleift nur die Verteilung und gibt mir 10 Fenster mit jeweils 10 Diagrammen ohne Rahmenanpassungen. Ich möchte 1 Fenster mit 10 Diagrammen, deren Rahmengröße angepasst wurde.
Mein Code
/*Analyt-Array ausführen*/
AnalytArr = Assoziatives Array ( : Analyt ) << Schlüssel erhalten ;
Für ( jederAnalyt = 1 , jederAnalyt <= N Artikel ( AnalytArr ) , jederAnalyt ++,
/*Steigungsverteilung*/
Aktuelle Datentabelle ( dtmain ) ;
dtmain << Verteilung (
Automatische Neuberechnung ( 1 ) ,
SendToByGroup ( { : Analyt == AnalytArr [ jederAnalyt ]} ) ,
SendToByGroup (
{ : Analyt == AnalytArr [ jederAnalyt ]} ,
Kontinuierliche Verteilung ( Spalte ( : Neigung ) , Vertikal ( 0 ) )
) ,
Von ( : Analyt ) ,
SendToByGroup (
{ : Analyt == AnalytArr [ jederAnalyt ]} ,
SendToReport (
Versenden (
{ "Verteilungsanalyt=" || AnalytArr [ jederAnalyt ] , "Neigung" } ,
"Ausreißerbox verteilen" ,
FrameBox ,
{ Rahmengröße ( 550 , 50 )}
) ,
Versenden (
{ "Verteilungsanalyt=" || AnalytArr [ jederAnalyt ] , "Neigung" } ,
"Histogramm verteilen" ,
FrameBox ,
{ Rahmengröße ( 550 , 325 )}
)
)
)
)
) ;
Betreff: JSL - Erstellen einer Schleife für einen benutzerdefinierten VerteilungsberichtHallo,
Dieser Thread hat mir geholfen, mit einer JSL zu kommen, um mehrere Plots zu generieren. Aber derzeit sehe ich das gleiche Problem mit doppelten Plots (wie 10x10 statt 10). Kannst du teilen, wie du es behoben hast?
Ich vermute, dass 'For'-Schleife und 'By' dies verursachen, aber wenn ich 'By' entferne, werden Plots nicht korrekt angezeigt.
Betreff: JSL - Erstellen einer Schleife für einen benutzerdefinierten Verteilungsbericht
Sie scheinen sowohl eine Schleife zu verwenden als auch By Grouping zu verwenden ... das kann möglicherweise für Ihre 10-fache Anzahl von Diagrammen verantwortlich sein
Betreff: JSL - Erstellen einer Schleife für einen benutzerdefinierten VerteilungsberichtVielen Dank für die Hilfe dabei,
Dies scheint die erste meiner By-Variablen anzupassen, aber nicht den Rest. Ich denke, es muss etwas mit der Art und Weise, wie ich loope, nicht stimmen. Es passt nicht nur die erste meiner By-Variablen an, sondern ich habe gerade bemerkt, dass ich in dem einzelnen Fenster 100 Diagramme habe und nicht nur die 10, die ich erwartet hatte (die 10 x 10, die ich nur alle in einem Fenster bekam).
Betreff: JSL - Erstellen einer Schleife für einen benutzerdefinierten VerteilungsberichtDas Problem ist, dass Sie versuchen, Elemente in einer Liste zu ändern, und JMP sich Listen ansieht und sagt, dass eine Liste nur ein Haufen Zeug ist, also wird es sie nicht berühren.Die Methode, die ich verwende, um die Listen in der gewünschten Form zu erstellen, besteht also darin, die Substitute-Funktion zu verwenden, und wenn ich dann die Liste so habe, wie ich sie haben möchte, lasse ich JMP auswerten, was ich erstellt habe.Ich kann nicht sicher sein, ob der folgende Code genau das ist, was Sie brauchen, aber er sollte in der Nähe sein.Um zu testen, ob Substitute korrekt funktioniert, führen Sie einfach die Funktion "Eval" aus, die den Substitute-Befehl umgibt, und führen Sie einfach den Substitute-Befehl selbst aus, und die Ergebnisse werden im Protokoll angezeigt ...
//Erstelle ein Anzeigefenster und platziere die Verteilungen darin
Neues Fenster (
"Alle zusammen" ,
// Layout der Verteilungen nebeneinander
H Listenfeld (
/*Analyt-Array ausführen*/
AnalytArr = Assoziatives Array ( : Analyt) << Schlüssel erhalten;
Für (jeder Analyt = 1 , jederAnalyt <= N Artikel ( AnalytArr ) , jederAnalyt ++,
/*Steigungsverteilung*/
Aktuelle Datentabelle (dtmain) ;
Bewertung (
Ersatz (
Ausdruck (
dtmain << Verteilung (
Automatische Neuberechnung ( 1 ) ,
SendToByGroup( {__by__} ) ,
SendToByGroup(
{__von__} ,
Kontinuierliche Verteilung ( Spalte ( : Neigung ) , Vertikal( 0 ) )
) ,
Von( : Analyt) ,
SendToByGroup(
{__von__} ,
SendToReport(
Versenden(
{__Entfernung__ , "Neigung" } ,
"Ausreißerbox verteilen" ,
FrameBox ,
{Rahmengröße( 550 , 50 )}
) ,
Versenden(
{__Entfernung__ , "Neigung" } ,
"Histogramm verteilen" ,
FrameBox ,
{Rahmengröße( 550 , 325 )}
)
)
)
) ;
) , Ausdruck (__von__) , Analysieren ( ":Analyt ==" verkohlen ( auswerten ( AnalytArr [jeder Analyt]))) ,
Ausdruck (__Entfernung__) , "Verteilungsanalyt=" || verkohlen ( auswerten (AnalytArr[jeder Analyt])))
)
) ;
)
) ;
Betreff: JSL - Erstellen einer Schleife für einen benutzerdefinierten VerteilungsberichtDanke Jim,
Das verhindert sicherlich, dass die 10 Fenster auftauchen.
Was die Anpassung der Frame-Größe betrifft, spreche ich über den Teil des Codes, der vorschreibt, dass die Frame-Größen 550, 50 bzw. 550, 325 sein sollten. Obwohl die Array-Variable aufgelistet ist, erhalte ich derzeit immer noch die Standard-Frame-Größen von 227, 46 und 277, 110.
Betreff: JSL - Erstellen einer Schleife für einen benutzerdefinierten VerteilungsberichtHier ist Ihr Skript, das geändert wurde, um alle Distributionen in einem einzigen Fenster zu platzieren.Mir ist nicht klar, was Sie mit "Rahmengröße angepasst" meinen.Könnten Sie das bitte klären?Möchten Sie, dass alle Ergebnisse verkleinert werden, damit sie alle auf Ihren Bildschirm passen?
// Erstellen Sie ein Anzeigefenster und platzieren Sie die Verteilungen darin
Neues Fenster ( "Alle zusammen" ,
// Layout der Verteilungen nebeneinander
H Listenfeld (
/*Analyt-Array ausführen*/
AnalytArr = Assoziatives Array ( : Analyt) << Schlüssel erhalten;
Für (jeder Analyt = 1 , jederAnalyt <= N Artikel ( AnalytArr ) , jederAnalyt ++,
/*Steigungsverteilung*/
Aktuelle Datentabelle (dtmain) ;
dtmain << Verteilung (
Automatische Neuberechnung ( 1 ) ,
SendToByGroup( { : Analyt == AnalytArr[jeder Analyt]} ) ,
SendToByGroup(
{ : Analyt == AnalytArr[jeder Analyt]} ,
Kontinuierliche Verteilung ( Spalte ( : Neigung ) , Vertikal( 0 ) )
) ,
Von( : Analyt) ,
SendToByGroup(
{ : Analyt == AnalytArr[jeder Analyt]} ,
SendToReport(
Versenden(
{ "Verteilungsanalyt=" || AnalytArr[jeder Analyt] , "Neigung" } ,
"Ausreißerbox verteilen" ,
FrameBox ,
{Rahmengröße( 550 , 50 )}
) ,
Versenden(
{ "Verteilungsanalyt=" || AnalytArr[jeder Analyt] , "Neigung" } ,
"Histogramm verteilen" ,
FrameBox ,
{Rahmengröße( 550 , 325 )}
)
)
)
) ;
) ;
)
) ;