Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Mithilfe eines Skripts muss ich eine vollständig eigenständige Journaldatei mit Schaltflächenfeldern erstellen, die Datentabellen reproduzieren.In der Produktionsanwendung gibt es viele Überschriften (von denen jede ein Teil darstellt) und unter jeder Überschrift befinden sich mehrere Schaltflächenfelder, die jeweils eine andere, dem Teil zugeordnete Datentabelle anzeigen.Aufgrund der komplexen Berechnungen, die in die Erstellung der Datentabellen einfließen, verwende ich zum Erstellen dieser Tabellen Funktionen.Meine Absicht wäre es, NUR die Journaldatei an Benutzer zu verteilen.
Ich habe ein Skelettbeispiel mithilfe der Beispieldatentabelle Baltic.jmp erstellt. Die Funktion „SmallTables()“ gibt das Tabellenskript als Text zurück.Aber ich finde keine Möglichkeit, diesen Text in die Skriptfelder für die Schaltflächenfelder in der Journaldatei einzugeben. Jede Hilfe wäre sehr dankbar.
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ) );
Close( dt, NoSave );
tblScript = dt_Small << Get Script;
result = Char( Name Expr( tblScript ) );
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( SmallTables( k ) ) ) )
);Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Vielen Dank für den Hinweis auf diesen Artikel!Es ist eine sehr klare Erklärung mit schönen Beispielen.Es ist sehr hilfreich.
Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Der Trick besteht darin, sicherzustellen, dass der Unterausdruck eingefügt wird, bevor er ausgewertet wird.Dieser JSL-Kochbuchartikel könnte hilfreich sein:
Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden
Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Was für ein schönes Beispiel!In meinem Projekt muss ich jedoch Hunderte von Datentabellen erstellen, mehrere für jeden der vielen Teile.Aus diesem Grund verwende ich Funktionen zum Erstellen der Datentabellen (hoffentlich sieht das kein Anfänger). Das Skript!). Ich befürchte, dass Ihr Vorschlag dazu führen würde, dass zu viele Fenster gleichzeitig geöffnet sind. Aber für eine überschaubare Anzahl an Datentabellen ist Ihr Konzept sehr schön!Ich bin sicher, dass ich Gelegenheit haben werde, es zu nutzen.
Vielen Dank für deine Hilfe.
Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Vielen Dank!Das funktioniert in meinem „großen“ Drehbuch perfekt.Ich war auf die Idee fixiert, dass das Ergebnis meiner Funktion eine Textdarstellung des Skripts war und als solche in den Skriptdialog der Schaltflächenbox eingegeben werden sollte. Ich bin mir immer noch nicht sicher, warum das nicht funktioniert, aber die Verwendung der Funktion „Name Expr“ und „Substitute“ funktioniert, wie Sie gezeigt haben, perfekt.
Übrigens ist die Schleife in meiner realen Anwendung erforderlich, da ich verschiedene Tabellen erstellen muss.Ich habe eine große Anzahl von Teilen und das Skript erstellt mehrere Datentabellen mit Skripten, die für jeden Teil einzigartig sind.Die Ausführung dieses Skripts dauert eine Weile, daher ist es großartig, dieses Skript ausführen zu können, um eine eigenständige Journaldatei zu erstellen.
Nochmals vielen Dank, dass Sie mich auf den richtigen Weg gebracht haben!
Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Ich verwende eigenständige Journaldateien für Demos und Schulungen, sodass sie leicht geteilt werden können.Links zum Schließen einzelner Abschnitte und zum Aufräumen sorgen für Bewegung.Das folgende Skript erstellt ein einfaches Beispieljournal. Sobald Sie es ausführen, sollten Sie ein Tagebuch mit darin enthaltenen Links sehen.Klicken Sie mit der rechten Maustaste auf die einzelnen Elemente und wählen Sie „Bearbeiten“ > „Skript bearbeiten“, um zu sehen, wie sie aufgebaut sind.Ich verwende oft „Copy Table Script“, um diese zu füllen.Es ist eine gute Idee, diese Codes in Funktionen einzufügen, aber denken Sie daran, dass es für Anfänger, die versuchen, Ihr Tagebuch zu erkunden, eher wie schwarze Magie aussieht.

Beachten Sie, dass ich Tagebücher normalerweise interaktiv erstelle und kein Skript wie dieses verwende.
names default to here(1);
//Open data tables temporarily so we can copy their scripts
dtIrisTemp = open("$Sample_Data/Iris.jmp");
dtBigClassTemp = open("$Sample_Data/Big Class.jmp");
//Use Eval(EvalExpr()) so the actual scripts for the data table are saved in
//the journal.
Eval( Eval Expr(
journal = New Window( "A Journal", <<JOURNAL></JOURNAL>
Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?Wenn Sie eine Tabelle verwenden, würde ich sie nicht für jeden Funktionsaufruf öffnen und schließen. Ich würde die Tabelle öffnen, das Fenster mit der for-Schleife erstellen und dann die Tabelle schließen.
Versuche dies.
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ), Invisible );
Close( dt, NoSave );
_xx = dt_Small << Get Table Script Names;
dt_Small << Delete Scripts(_xx);
tblScript = dt_Small << Get Script;
wait(0);
Close( dt_Small , NoSave);
NameExpr(tblScript)
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
_xx = SmallTables(k);
Eval(Substitute(Expr(jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( _scr ) ) )),
Expr(_scr), NameExpr(_xx) ) )
);Betreff: Wie lege ich mithilfe eines Skripts den Text eines Tabellenskripts in einem Schaltflächenfeld in einer Journaldatei fest?