Wie kann ich GB erweitern, um den gesamten verfügbaren Speicherplatz auszufüllen?Nehmen wir an, ich habe ein dreispaltiges Line-Up-Feld mit einigen Anzeigefeldern und dann als zweite Zeile ein Unlineup-Feld mit einem Graph Builder darin.
Ein Beispiel kann durch Ausführen dieses Skripts angezeigt werden:
dt = New Table( "DEMO",
Add Rows( 10 ),
New Column( "Category",
Character,
"Nominal",
Set Values( {"A", "A", "A", "A", "A", "B", "B", "B", "B", "B"} )
),
New Column( "X",
Character,
"Nominal",
Set Values( {"AA", "AD", "AC", "AD", "AC", "BD", "BF", "BF", "BD", "BS"} )
),
New Column( "Y_veryLongName_toMake_Tabulat_Large",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [12, 32, 42, 23, 21, 12, 34, 53, 23, 12] )
)
);
tab = dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Analysis Columns( :Y_veryLongName_toMake_Tabulat_Large ),
Statistics( Sum, Mean )
),
Row Table( Grouping Columns( :Category, :X ) )
)
);
gb = dt << Graph Builder(
//Size( 528, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Category ),
X( :X, Position( 1 ) ),
Y( :Y_veryLongName_toMake_Tabulat_Large ),
Color( :Category )
),
Elements( Points( X( 1 ), X( 2 ), Y, Legend( 9 ) ) )
);
rtab = tab << Report;
rgb = gb << Report;
lb = LineUp Box(NCol(3), rtab, rtab, rtab, Unlineup Box(rgb) );
nw = New Window("DEMO", Show Menu(0), Show Toolbars(0), lb);So sieht es also aus:

Jetzt möchte ich, dass der Graph Builder den gesamten horizontalen Raum ausfüllt. Ich kenne die Größe dieses Bereichs nicht, deshalb möchte ich ihn nicht direkt angeben, ich möchte nur, dass er den gesamten verfügbaren Speicherplatz ausfüllt.
Ich habe versucht, Set Auto Stretching (1,0) für RGB zu verwenden, aber es hat nicht viel geholfen.
Experimentell habe ich herausgefunden, dass, wenn ich zu den Eigenschaften gehe und die Dehnung für

dann sieht es so aus, wie ich es haben möchte:

Fragen:
1. Ist das der einzige Weg?
2. Wenn ja, wie erstellt man ein Skript dafür?
Update: Ich schätze, ich sollte in der Lage sein, XPath mit ancestor-or-self (oder in einer einfacheren Variante nur ancestor unten) zu verwenden, aber ich bekomme es nicht zum Laufen.
rgb << Xpath("//FrameBox/ancestor")MassenanpassungBetreff: Wie kann ich GB erweitern, um den gesamten verfügbaren Speicherplatz auszufüllen?Ich denke, es funktioniert, wenn Sie nach dem Klonen des Berichts die automatische Dehnung im Rahmenfeld festlegen:
lb = LineUp Box(NCol(3), rtab, rtab, rtab, Unlineup Box(rgb) );
lb[FrameBox(1)] << Set Auto Stretching(1,0);
nw = New Window("DEMO", Show Menu(0), Show Toolbars(0), lb);
Dehnungseigenschaften werden normalerweise beim Klonen von Boxen gelöscht, da Verhaltensweisen nicht immer übersetzt werden, wenn sich das Layout ändert.
Betreff: Wie kann ich GB erweitern, um den gesamten verfügbaren Speicherplatz auszufüllen?Nun, es ist eine gute Möglichkeit, das zu tun, außer dass dieses Skript in meinem Anwendungsfall auf vielen Tabellen ausgeführt wird, die ein Benutzer nacheinander lädt, und in diesem Fenster werden diese Line-Up-Boxen nun eine nach der anderen angehängt. Mit jeder nächsten Tabelle wird die vorherige geschlossen, sodass ich keine Live-Diagramme haben kann. Ich benötige Berichte, die auch nach dem Schließen der R-Tabelle bestehen bleiben.
Ich habe versucht, diesen Ausdruck auszuführen:
gb_expr = Expr(
(gb = dt << Graph Builder(
//Size( 528, 464 ),
Show Control Panel(0),
Variables(X(:Category), X(:X, Position(1)), Y(:Y_veryLongName_toMake_Tabulat_Large), Color(:Category)),
Elements(Points(X(1), X(2), Y, Legend(9)))
))<<REPORT></REPORT>
aber es hat nicht funktioniert. Irgendeine Idee, wie ich es ändern kann, damit Graph Builder nicht aus dem Fenster verschwindet, wenn ich die Tabelle schließe?
Betreff: Wie kann ich GB erweitern, um den gesamten verfügbaren Speicherplatz auszufüllen?Eine andere Möglichkeit wäre auch, den Graph Builder direkt im neuen Fenster zu erstellen
Names Default To Here(1);
dt = New Table("DEMO",
Add Rows(10),
New Column("Category", Character, "Nominal", Set Values({"A", "A", "A", "A", "A", "B", "B", "B", "B", "B"})),
New Column("X", Character, "Nominal", Set Values({"AA", "AD", "AC", "AD", "AC", "BD", "BF", "BF", "BD", "BS"})),
New Column("Y_veryLongName_toMake_Tabulat_Large",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([12, 32, 42, 23, 21, 12, 34, 53, 23, 12])
)
);
tab = dt << Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Analysis Columns(:Y_veryLongName_toMake_Tabulat_Large), Statistics(Sum, Mean)),
Row Table(Grouping Columns(:Category, :X))
)
);
gb_expr = Expr(
gb = dt << Graph Builder(
//Size( 528, 464 ),
Show Control Panel(0),
Variables(X(:Category), X(:X, Position(1)), Y(:Y_veryLongName_toMake_Tabulat_Large), Color(:Category)),
Elements(Points(X(1), X(2), Y, Legend(9)))
)
);
rtab = tab << Report;
lb = Lineup Box(N Col(3), rtab, rtab, rtab, Unlineup Box(gb_expr));
nw = New Window("DEMO", Show Menu(0), Show Toolbars(0), lb);
gb << Auto Stretching("On");Betreff: Wie kann ich GB erweitern, um den gesamten verfügbaren Speicherplatz auszufüllen?Ok, ich habe noch mehr versucht:
rgb << Fit To Window("On");Dieses hat nicht funktioniert.
rgb[FrameBox(1)] << Set Auto Stretching(1,0);
Dieser, bei dem ich die automatische Dehnung auf FrameBox anwende, nicht den gesamten Bericht, hat funktioniert.
Die Fragen, auf die ich dabei gestoßen bin, bleiben bestehen: Was ist die richtige Syntax für XPath-Achsen? Wie Vorfahr, Kind, Vorfahr oder sich selbst usw.