Hier ist ein Beispiel, das an Ihren Zweck angepasst werden könnte. Es folgt Ihrem ursprünglichen Muster, Graph Builder zu starten und dann den Verweis auf die Berichtsebene abzurufen.
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb expr = Expr(
gb = dt << Graph Builder(
Size( 534, 452 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( xxx ), Y( yyy ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
);
Eval(
Substitute(
Name Expr( gb expr ),
Expr( yyy ), Expr( dt:weight ),
Expr( xxx ), Expr( dt:height )
)
);
gb rep = gb << Report;
Ich kann auf einfache Weise ein Handle für ein Graph Builder-Fenster erstellen, damit ich die Berichtsebene erstellen kann:
myGraph = dt << Graph Builder(yada, yada, yada);
myRep = myGraph << Report;
Angenommen, ich möchte ein Argument in Graph Builder ändern, bevor ich das Diagramm erstelle:
myExpr = expr(Graph Builder(yada, yada, yada);
// Use remove from and insert into to modify myExpr
myExpr1 = expr(myGraph = dtIn << expr(myExpr));
eval expr(myExpr1);
Wenn ich die obigen Befehle verwende, wird das Diagramm erstellt, aber es scheint nicht, dass myGraph ein korrektes Handle ist, sodass ich mit keine Berichtsebene erstellen kann
myRep = myGraph << Report;
Wie manipuliere ich myExpr, um beim Erstellen des Diagramms ein Handle zu erstellen?
Ich habe eine Hack-Arbeit, die ich wirklich nicht mag:
myList = window() << get window title;
// search myList for the number of items that contain the "Graph Builder" string (call this n)
myRep = Graph Builder[n] << Report;
Vielen Dank,
Rechnung
Vielen Dank Mark !!
Ihre Erklärung hat mir gezeigt, wie man die Substitution und Bewertung in einem Schritt durchführt.
Grüße,
Rechnung