Ordnungsgemäßes Beenden eines Add-InsIch schreibe ein Add-In, um mit der Current Data Table() zu arbeiten. Ich möchte, dass das Add-In ordnungsgemäß beendet wird, ohne etwas zu tun, wenn:
(a) es gibt keine aktuelle Datentabelle ()
oder
(b) die aktuelle Datentabelle hat <2 Spalten.
Ich kann das anscheinend nicht zustande bringen. Ich habe das Add-In installiert und mir die generierte .jmpcust-Datei angesehen. Ganz oben im Skript, wo der Kommentar sagt: "Variablen und Funktionen, die hier deklariert werden, sind auf den Application-Namespace beschränkt", notiere ich diesen Code:
dt = Current Data Table();
If(Is Empty(dt),
Quit Application()
);
Quit Application = Function({},
Current Window() << Close Window;
Throw()
)die ich *glaube* von Application Builder (und nicht von mir) eingefügt wurde.
Es scheint richtig zu sein, um (a) zu erreichen, aber stattdessen lädt mein Add-In in Ermangelung einer aktuellen Datentabelle () voraus und öffnet sein Dialogfenster.
Kann mir jemand weiterhelfen?
SkripterstellungBetreff: Ordnungsgemäßes Beenden eines Add-InsIch habe versucht, das im Skript-Editor zu debuggen, und es hat den Editor geschlossen, ohne zu speichern. Ich habe nicht realisiert, was passiert ist, bis ich es erneut gemacht und es erneut ausgeführt habe.Die Funktion sollte definiert werden, bevor sie aufgerufen wird, so dass dies nicht in Ordnung zu sein scheint.
Ich habe den Application Builder noch nie verwendet. Ich führe diese Art der Steuerung auf Skriptebene durch, kurz bevor die GUI aufgerufen wird. Grundsätzlich sehen meine Skripte so aus:
1. Anfangsmaterial oben
2. Hauptskriptfunktion
3. Weisen Sie dt zu und entscheiden Sie, ob Sie mit der GUI fortfahren möchten oder nicht
4. GUI, wo die OK-Schaltfläche die Skriptfunktion aufruft.
So suche ich nach einer Datentabelle. Sie könnten eine modifizierte Version davon verwenden und auch nach ncol(dt) >= 2 suchen.
dtData = current data table();
try(dtData << get name, throw(New Window("No Data Table Found",<<MODAL></MODAL>
Betreff: Ordnungsgemäßes Beenden eines Add-InsIch glaube, ich habe in der Zwischenzeit eine Lösung gefunden, als ich mir einen der Beiträge von txnelson angesehen habe. In das Anwendungsskript habe ich Folgendes eingefügt:
If( N Table() == 0,
Throw( "Add-in requires an open data table." )
);
dt = Current Data Table();
If( N Cols( dt ) < 2,
Throw(
"Add-in requires a table with at least two columns."
)
);