[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Dokument öffnen - innerhalb Funktion

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 05:04
Beitrag # 1 von 18
Bewertung:
(8687 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
ich kämpfe mal wieder mit function.
Außerhalb von function main() kann ich mit
Code
_doc = app.open(File(myFile); 

ein Dokument öffnen. Wenn ich dies aber innerhalb der Funktion abrufen möchte, macht er dies nicht.
Um zu überprüfen, ob myFile auch 'ankommt', habe ich in die Funktion ein alert(myFile) eingebaut. Der richtige Pfad wird mir auch angezeigt.
Ich habe es so schon einmal gemacht, aber irgendwie will er nicht.
X

Dokument öffnen - innerhalb Funktion

Martin Fischer
  
Beiträge gesamt: 12783

13. Apr 2021, 07:04
Beitrag # 2 von 18
Beitrag ID: #579471
Bewertung:
(8662 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

kann‘s grad nicht prüfen, bin mir über die Rückgabe der Funktion app.open() jedoch etwas unsicher.

Gibt die tatsächlich ein document-Objekt zurück und nicht vielmehr einen boolschen Wert, der angibt, ob das Dokument mit Erfolg geöffnet wurde oder nicht?

Prüfe mal, was in _doc steckt.

Vermutlich braucht‘s ein _doc = app activeDocument oder ein _doc = app.documents.firstItem().


als Antwort auf: [#579470]
(Dieser Beitrag wurde von Martin Fischer am 13. Apr 2021, 07:06 geändert)

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 07:12
Beitrag # 3 von 18
Beitrag ID: #579472
Bewertung:
(8651 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Mario,

rein syntaktisch fehlt Dir eine Klammer, das müsste Dir aber als Syntaxfehler angezeigt werden.

_doc definierst Du als Global-Variable, besser Local:

var _doc =

versuche es doch mal so:
Code
main(); 

/*Void*/function main(){
try{
var /*File*/file = new File("C:/Users/WernerPerplies/Source/AllIncludes/NNNNNNN/Ean/Automatisierte EAN-Erstellung/Dokumente8_Ersatzteile_BE-FR_2021.indd"),
/*Document*/doc = null;

if (file.exists){
doc = app.open(file);
alert("offene Datei: " + doc.name);
}
else
alert("Datei:\n" + file.fullName + "existiert nicht!");
}
catch (error){
alert("Fehler: " + error.message + "\nin Zeile: " + error.line + "\nFehlernummer: " + error.number);
}
}


Wichtig:
Falls die file-Variable nur ein Verzeichnis enthält, gibt es keinerlei Fehlermeldung!

Das halte ich für einen Bug.


als Antwort auf: [#579470]

Dokument öffnen - innerhalb Funktion

Martin Fischer
  
Beiträge gesamt: 12783

13. Apr 2021, 07:40
Beitrag # 4 von 18
Beitrag ID: #579473
Bewertung:
(8630 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: app.open()

Gibt die tatsächlich ein document-Objekt zurück und nicht vielmehr einen boolschen Wert, der angibt, ob das Dokument mit Erfolg geöffnet wurde oder nicht?


Mit meiner Vermutung lag ich falsch.
app.open() gibt ein document-Objekt zurück.


als Antwort auf: [#579471]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 11:40
Beitrag # 5 von 18
Beitrag ID: #579476
Bewertung:
(8514 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
danke für die Hilfe. Ich bekomme folgende Meldung:
Fehler: Die Anforderung kann nicht bearbeitet werden, da ein modales Dialogfeld oder eine modale Warnmeldung aktiv ist.


als Antwort auf: [#579472]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 11:47
Beitrag # 6 von 18
Beitrag ID: #579477
Bewertung:
(8503 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

Du hast ein modales Dialogfeld offen.
Dieses Fenster musst Du zuerst schließen bevor der nächste Skriptbefehl ausgeführt werden kann.

Alert-Windows (z.B. Fehlermeldungen)sind solche Fenster.

Allegemeiner ausgedrückt:
Dein Skript oder InDesign wartet auf eine Eingabe von Dir.


als Antwort auf: [#579476]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 11:49
Beitrag # 7 von 18
Beitrag ID: #579478
Bewertung:
(8500 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, das habe ich mir gedacht. Nun muss ich mal schauen, wo es zickt.


als Antwort auf: [#579477]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 11:59
Beitrag # 8 von 18
Beitrag ID: #579479
Bewertung:
(8489 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das kann doch nicht so schwierig sein, Du müsstest den Dialog doch sehen.

Schließe ggf. alle anderen Fenster.

Wenn Du dann immer noch nichts siehst, liegt das Fenster hinter InDesign.

Für diesn Fall verkleinere das InDesignfenster und schiebe es in iregend eine Ecke, bevor Du Dein Skript neu startest.


als Antwort auf: [#579478]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 12:06
Beitrag # 9 von 18
Beitrag ID: #579480
Bewertung:
(8480 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das ist es ja: es ist kein weiterer Dialog auf.


als Antwort auf: [#579479]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 12:09
Beitrag # 10 von 18
Beitrag ID: #579481
Bewertung:
(8479 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das würde mich sehr wundern.

Das Fenster könnte auch sehr klein oder sogar unsichtbar sein.

Aber ohne weiter Informationen kann ich Dir dann nicht mehr helfen.


als Antwort auf: [#579480]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 12:25
Beitrag # 11 von 18
Beitrag ID: #579482
Bewertung:
(8463 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Das ist es ja: es ist kein weiterer Dialog auf.


kein weiterer verwirrt mich, einer wäre schon zuviel!


als Antwort auf: [#579480]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 12:46
Beitrag # 12 von 18
Beitrag ID: #579483
Bewertung:
(8429 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier mal ein einfacher Dialog, der den Fehler schmeißt:
Code
var w = new Window("dialog"); 
w.text = "Test";
w.preferredSize.width = 300;
w.alignChildren = ["left", "top"];
w.spacing = 10;
w.margins = 16;

var button = w.add("button", undefined, undefined, { name: "button" });
button.text = "Ausführen";
button.onClick = function () {
this.window.close();
main();
}

w.show();

function main(){
try{
var file = new File("xxxx"),
doc = null;

if (file.exists){
doc = app.open(file);
alert("offene Datei: " + doc.name);
}
else
alert("Datei:\n" + file.fullName + "existiert nicht!");
}
catch (error){
alert("Fehler: " + error.message + "\nin Zeile: " + error.line + "\nFehlernummer: " + error.number);
}
}



als Antwort auf: [#579482]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 13:06
Beitrag # 13 von 18
Beitrag ID: #579484
Bewertung:
(8389 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

Dein Skript funktioniert, natürlich musst Du den "Ausführen"-Button anklicken.

Dennoch sähe meine Fassung so aus:
Code
main(); 

/*Void*/function main(){
try{
var /*File*/file = new File("xxxx"),
/*Document*/doc = null; var w = new Window("dialog"),
/*Any*/result = dialogWindow();

if (file.exists){
doc = app.open(file);
alert("offene Datei: " + doc.name);
}
else
alert("Datei:\n" + file.fullName + "existiert nicht!");

/*Any*/ function dialogWindow(){
var /*Window*/w = new Window("dialog"),
/*Button*/ button = null;

w.text = "Test";
w.preferredSize.width = 300;
w.alignChildren = ["left", "top"];
w.spacing = 10;
w.margins = 16;

var button = w.add("button", undefined, undefined, { name: "button" });
button.text = "Ausführen";
button.onClick = function () {
this.window.close();
}
return w.show();
}
}
catch (error){
alert("Fehler: " + error.message + "\nin Zeile: " + error.line + "\nFehlernummer: " + error.number);
}
}



als Antwort auf: [#579483]

Dokument öffnen - innerhalb Funktion

MarioF
Beiträge gesamt: 390

13. Apr 2021, 13:42
Beitrag # 14 von 18
Beitrag ID: #579485
Bewertung:
(8359 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: ... natürlich musst Du den "Ausführen"-Button anklicken.

Also daran scheitert es nun nicht ;-)


als Antwort auf: [#579484]

Dokument öffnen - innerhalb Funktion

WernerPerplies
Beiträge gesamt: 2762

13. Apr 2021, 13:45
Beitrag # 15 von 18
Beitrag ID: #579486
Bewertung:
(8355 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Also daran scheitert es nun nicht ;-)

;-)
beantwortet nicht die Frage, ob Du geklickt hast!

Also funktioniert es jetzt bei Dir auch, oder?


als Antwort auf: [#579485]
X