Hallo,
Ich versuche, ein Skript zu erstellen, um eine Ausgabe zu generieren und einen Powerpoint (oder nicht) auf der Grundlage der Benutzerauswahl zu speichern. Ich kann den Befehl "Präsentation speichern" nicht aktivieren, wenn er in der Struktur des Listenfelds H verschachtelt ist.
Das erste Skript funktioniert gut:
Names Default To Here( 1 );
dt1 = open(Pick File("Select the the DATA TABLE to open.")); //open a file
WinHandle2 = new Window("Graphs",Distribution(Column(2))); //generate some output of interest
product_name = dt1:Product[1]; //get the product name from the first cell in the data table
//OUTPUT report to a Powerpoint file (THIS WORKS FINE):
saveFilename=product_name ||"_Distribution_"||char(year(today())) ||"-"||char(month(today()))||".pptx";
WinHandle2 << Save Presentation(saveFilename, Outline Titles("TopLeft")); //save the output to a Powerpoint file.
//prompt user to see if they want to save and close remaining windows.
w1 = New Window("What's Next?", text box("
Save the report and Close the Data Table?
"),
// Get user input,
H List Box(Button Box("Yes",
WinHandle2<<CLOSE window=""></CLOSE>Wenn ich den Befehl "Präsentation speichern" in das H-Listenfeld verschiebe, erhalte ich einen Fehler "Fehler beim Schreiben der Präsentationsdatei. Kann im ReadWrite-Modus nicht geöffnet werden. Die angegebene Datei wurde vom System nicht gefunden". Siehe den nicht funktionierenden Code unten:
Names Default To Here( 1 );
dt1 = open(Pick File("Select the the DATA TABLE to open.")); //open a file
WinHandle2 = new Window("Graphs",Distribution(Column(2))); //generate some output of interest
product_name = dt1:Product[1]; //get the product name from the first cell in the data table
//prompt user to see if they want to save and close remaining windows.
w1 = New Window("What's Next?", text box("
Save the report and Close the Data Table?
"),
// Get user input,
H List Box(Button Box("Yes",
//OUTPUT report to a Powerpoint file (THIS WORKS FINE):
saveFilename=product_name ||"_Distribution_"||char(year(today())) ||"-"||char(month(today()))||".pptx";
WinHandle2 << Save Presentation(saveFilename, Outline Titles("TopLeft")); //save the output to a Powerpoint file.
WinHandle2<<CLOSE window=""></CLOSE>Grundsätzlich möchte ich, dass der Benutzer wählt, ob die Präsentation gespeichert werden soll, oder einfach nur beendet wird. Vielen Dank im Voraus für Ihre Hilfe
Hier ist eine Möglichkeit, dies zu tun:
Names Default To Here( 1 );
dt1 = Open( path = Pick File( "Select the the DATA TABLE to open." ) );
pathToFolder = Left( path, Contains( path, Word( -1, path, "\/" ) ) - 1 );
Danke für die Antwort. Es ist merkwürdig, dass der erste Satz von Code (bei dem sich die gespeicherte Präsentation außerhalb des H-Listenfelds befindet) einwandfrei ausgeführt wird.
Im oberen Code wird die Datei im letzten aktiven Verzeichnis gespeichert. (Der Speicherort, von dem aus das Skript ausgeführt wird, und die Eingabedatendatei befindet sich.) Wie kann ich dies mit der H List Box-Version des Codes tun?
Das Problem ist, dass der Pfad / Dateiname, den Sie an die Save Presentation übergeben, auf einen Ordner verweist, der nicht vorhanden ist oder der keine Schreibzugriff hat. Ich habe dieselbe Nachricht erhalten, als Sie Ihren Code ausgeführt haben, und dann habe ich dem Wert von product_name einen Pfad zu einem beschreibbaren Verzeichnis hinzugefügt, und der Code funktionierte einwandfrei.