[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: 378

13. Apr 2021, 05:04
Beitrag # 1 von 18
Bewertung:
(6786 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: 12685

13. Apr 2021, 07:04
Beitrag # 2 von 18
Beitrag ID: #579471
Bewertung:
(6761 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: 2700

13. Apr 2021, 07:12
Beitrag # 3 von 18
Beitrag ID: #579472
Bewertung:
(6750 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: 12685

13. Apr 2021, 07:40
Beitrag # 4 von 18
Beitrag ID: #579473
Bewertung:
(6729 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: 378

13. Apr 2021, 11:40
Beitrag # 5 von 18
Beitrag ID: #579476
Bewertung:
(6613 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: 2700

13. Apr 2021, 11:47
Beitrag # 6 von 18
Beitrag ID: #579477
Bewertung:
(6602 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: 378

13. Apr 2021, 11:49
Beitrag # 7 von 18
Beitrag ID: #579478
Bewertung:
(6599 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: 2700

13. Apr 2021, 11:59
Beitrag # 8 von 18
Beitrag ID: #579479
Bewertung:
(6588 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: 378

13. Apr 2021, 12:06
Beitrag # 9 von 18
Beitrag ID: #579480
Bewertung:
(6579 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: 2700

13. Apr 2021, 12:09
Beitrag # 10 von 18
Beitrag ID: #579481
Bewertung:
(6578 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: 2700

13. Apr 2021, 12:25
Beitrag # 11 von 18
Beitrag ID: #579482
Bewertung:
(6562 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: 378

13. Apr 2021, 12:46
Beitrag # 12 von 18
Beitrag ID: #579483
Bewertung:
(6528 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: 2700

13. Apr 2021, 13:06
Beitrag # 13 von 18
Beitrag ID: #579484
Bewertung:
(6488 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: 378

13. Apr 2021, 13:42
Beitrag # 14 von 18
Beitrag ID: #579485
Bewertung:
(6458 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: 2700

13. Apr 2021, 13:45
Beitrag # 15 von 18
Beitrag ID: #579486
Bewertung:
(6454 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

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/