Ich habe eine Idee, was möglicherweise getan werden muss, bin mir aber nicht sicher, wie ich es implementieren soll. Ich habe eine kleine Beispieltabelle (sagen wir) wie diese (zeigt nur 4 Zeilen)
dt
Gruppenparameter Wert Klasse PhaseLabel Datum
A X 2 pq z xxxxx
A Y 6 re z xxxxx
A R 2.6 uy u yyyyy
B X 4 yt z qqqqq
B R 3 er s rrrrrrr
.................................................. ...............
Daher möchte ich für jede meiner Gruppen jrn-> html erstellen (unterschiedliche HTML-Dateien). In jeder HTML-Datei befinden sich Diagramme, die mithilfe eines V-Listenfelds angehängt werden. Das Problem ist jedoch, dass ich ein Nebeneinander haben muss (ein Bivariate und ein Variabilitätsdiagramm).
Ich kann entweder ein Bivariate oder ein Variab-Diagramm erstellen, aber nicht beides. Ich habe das Grundgerüst des Codes unten angegeben:
dt = Current Data Table();
out_path = "*****"
Summarize( groupid = by(:Group));
Summarize(paramgrp = by(:Parameter));
mydf = {};
For (k=1, k<=N items(groupid),k++,
grp_name = groupid[k];
myhtm = New Window( "30d Trend Plots Group Wise", myhtm[k] = V List Box() );
For( i = 1, i <= N Items( paramgroup ), i++,
idname = Char( paramgroup[i] );
outfile = out_path || grp_name || "_" || "trend_plots" || ".html";
df_ooc = dt_month << Bivariate(
Y( :Value),
X( :DATE),
Where( :Parameter == idname),
Where (:Group == groupname),
By(:Group :Parameter),
);
mydf[k] << append( Report( myhtm))
); ///// 2nd for loop end
jrn_df = New Window("Trend Correlation Report", << Journal) ;
mydf[k] << Journal(Freeze All) << show window(0);
jrn_df << Save HTML(outfile);
Close All (Journals, "No Save");
); 1st for loop end
Jetzt funktioniert der obige Code einwandfrei, wenn ich für jede Gruppe 1 Journal haben möchte, in dem ein Bivariat (hier gezeigt) verwelkt ist, oder wenn ich ein Var-Diagramm möchte (wenn ich Bivariate nur durch var-Diagramm als Funktion der Klassen- und Phasenbezeichnung ersetze ). Was ich jedoch möchte, ist innerhalb jeder Gruppe (erste for-Schleife für jeden Parameter (innerhalb der zweiten Schleife)) das bivariate und var-Diagramm nebeneinander. Das heißt also, wenn ich 4 Gruppen habe, sollte ich 4 Journale haben (HTML-Datei) und wenn ich für jede Gruppe 5 Parameter habe, dann habe ich auf jeder HTML-Datei insgesamt 10 Diagramme in 2 Spalten (1. Spalte sagen Bivariate und 2. Spalte) Spalte sagen Var Chart). Ich habe versucht, die H-Box in der 2. for-Schleife zu verwenden und die beiden Diagramme anzuhängen, aber es funktioniert nicht.
Ich werde Hilfe sehr schätzen. Wenn weitere Informationen benötigt werden, kann ich diese bereitstellen.
Ich habe dein Skript ein bisschen überarbeitet.Sie müssen eine Studie durchlaufen, was ich getan habe.Das grundlegende Problem besteht darin, dass bei Verwendung von BY () auf den Plattformen ein separater Bericht für jede Ebene von by generiert wird.
Das geschriebene Skript generiert die Journale für jede Gruppe.Ich habe das Showfenster und das Speichern des Journals in HTML auskommentiert.Ich habe das getan, also werden Sie zunächst die verschiedenen Zeitschriften sehen.Sie müssen nur die Kommentare herausnehmen, und es sollte so funktionieren, wie Sie es möchten.
Names Default To Here( 1 );
dt = Current Data Table();
out_path = "*****";
Summarize( groupid = by( :Group ) );
Summarize( paramgroup = by( :Parameter ) );
mydf = {};
For( k = 1, k <= N Items( groupid ), k++,
grp_name = groupid[k];
myhtm = New Window( "30d Trend Plots Group Wise", lb = Lineup Box( N Col( 2 ) ) );
For( i = 1, i <= N Items( paramgroup ), i++,
idname = Char( paramgroup[i] );
outfile = out_path || grp_name || "_" || "trend_plots" || ".html";
df_ooc = dt << Bivariate(invisible,
Y( :Value ),
X( :DATE ),
Where( :group == grp_name ),
By( :Parameter ),
);
vc = Variability Chart(invisible,
Y( :Value ),
X( :Date ),
Std Dev Chart( 0 ),
where( :group==grp_name ),
By( :parameter )
);
// For each value in the By group, there is a separate report
theEnd=.;
try(theEnd=nitems(df_ooc)); if(ismissing(theEnd), theEnd=1);
For( rptGroup = 1, rptGroup <= theEnd, rptGroup++,
IF( theEnd == 1,
lb << append( Report( df_ooc ) );
lb << append( Report( vc ) );
,
lb << append( Report( df_ooc[rptGroup] ) );
lb << append( Report( vc[rptGroup] ) );
);
);
df_ooc << close window;
vc << close window;
); ///// 2nd for loop end
jrn_df = New Window( "Trend Correlation Report", <<JOURNAL></JOURNAL>
Das Skript funktionierte fehlerfrei mit Ihren angegebenen Beispieldaten.