/*""" Funktionsbeschreibung in einem Satz. Autor: jthi Erstellungsdatum: 16.11.2023 Erstellung JMP-Version: JMP Pro 17.2.0 Beschreibung (im Allgemeinen handelt es sich bei diesem Teil um eine längere Erklärung der App): Dies ist Teil der Vorlage, die ich im Allgemeinen verwende. Ich habe verschiedene Dienstprogrammfunktionen, die ich bei Bedarf über die Versionskontrolle hinzufüge, und ich speichere meine Konfigurationsdateien getrennt von diesem Skript. Die Grundstruktur für meine Add-Ins/größeren Tools ist: /my_app /config ma_config.jsl /bin /externals ma_utilies.jsl /doc my_app.jsl my_app -> ma-Präfix. Ich verwende diese Art von Präfixen für einige meiner Skriptnamen, da JMPs Recent Files nur den Dateinamen anzeigt, mehr nicht. Auf diese Weise kann ich zumindest eine Vorstellung davon haben, welche Konfigurationsdatei ich öffnen werde, wenn ich viele verschiedene Tools entwickle. /config enthält alle Arten von Konfigurationsdateien, es können SQL-Abfragevorlagen, Bilder, Einstellungsdateien, Spezifikationstabellen usw. sein. /bin enthält die Skripte, die enthalten sind, damit meine_App funktioniert. /bin/externals sind allgemeine Skripte/Dateien, die ich nach Bedarf als externe Skripte (ich verwende svn für die Versionskontrolle) kopiere (zum Beispiel generische Dienstprogrammfunktionen, Versionskontrollfunktionen) / Das Dokument enthält zwar Dokumentation, diese ist jedoch normalerweise leer. Benutzeranweisungen und dergleichen schreibe ich in das Content-Management-System und mein Code dokumentiert sich (meistens) selbst. Manchmal enthält dieser Ordner Flussdiagramme oder eine Art Readme-Datei, wenn ich das Gefühl habe, dass diese benötigt werden. Einige Beispiele, die dieser Art von Vorlage folgen könnten (oder auch nicht), finden Sie in der Community: -
https://community.jmp.com/t5/Discovery-Summit-Europe-2023/Pythonless-Python-Integration-for-JMP -2023-EU-30MP-1265/ta-p/572674 –
https://community.jmp.com/t5/JMP-Add-Ins/Analyse-Columns/ta-p/460329 –
https://community.jmp .com/t5/JMP-Add-Ins/Enhanced-Sankey-Plot-ESP/ta-p/549745 (anderes Layout) Todo: * * """*/ Names Default To Here(1); app_name = "My App Template"; version_str = "1.0.0"; window_name = app_name || " - version: " || version_str; help_url = "
https://community.jmp.com/"; window_icon = "Distrib"; // Gebaut- in JMP Icons ist sehr hilfreich für Symbole // Ich behalte entweder das Logo in meinem Konfigurationsordner oder speichere den von // JMP erstellten Ausdruck, wenn ich das öffne (normalerweise speichere ich den Ausdruck), zum Beispiel: // company_logo = Open(" $SAMPLE_IMAGES/tile.jpg", "jpg"); company_logo = Icon Box("JMPLogo") << get picture; run_app = Expr( nw = New Window(window_name, Show Menu(0), Show Toolbars(0), V List Box(align("center"), H List Box( Try(Picture Box(company_logo)), Spacer Box(Size(5,0)), H List Box(Align(top), Text Box(app_name, < < Schriftgröße festlegen (22), << Schriftfarbe („Rot“), << Schriftstil festlegen („Fett“), << Zeilenumbruch festlegen (500)), Textfeld (version_str, << Schriftgröße festlegen (11 ), << Font Color("Black"), << Set Font Style("Plain")) ) ), Tab Box( Tab Page Box("Inputs", // Normalerweise erzwinge ich die Größe meiner Tab-Page-Boxen nicht , aber wenn ja, verwende ich Abstandsboxen wie diese V List Box(Spacer Box(Size(600, 0)), // Breite erzwingen mit V List Box + Spacer Box H List Box(Spacer Box(Size(0, 300 )), // H List Box + Spacer Box for height Lineup Box(N Col(1), Text Box("Some inputs here"), // Und Inhalt innerhalb dieser H List Box + Spacer Box ) ), , < < Basisschriftart festlegen("Titel") ), Registerkartenseitenfeld("Aktionen", Aufstellungsfeld(N Col(1), Schaltflächenfeld("OK", << Symbol festlegen("RunTableScript") ), Schaltflächenfeld(" Abbrechen", << Set Function(function({this}, (this << top parent) << close window) ), << Set Icon("DebuggerAddBreakpoint") ), Spacer Box(Size(0, 10)), Button Box("Help", Web(help_url), << Set Icon("WinHelpAbout")), ), << Set Base Font("Title") ), << Set Style("Horizontal Spread") ) ), << Fenstersymbol festlegen(window_icon) ); ); run_app; Schreiben(); // Ich verwende Write(); um zu vermeiden, dass die letzte Laufzeile „zurückgegeben“ wird, hauptsächlich um das Protokoll sauberer zu halten