Das funktioniert zwar, jedoch wird beim ersten Speichern nun das Fenster "SaveAs" aufgemacht....
Ich habe dann "[fontsize=2]
myTrustedSaveAs(event.target[/fontsize][fontsize=2][fontsize=2],[/fontsize][/fontsize][fontsize=2]fullName);[/fontsize]
[fontsize=2]eingefügt . Nun speichert er es unter dem zusammengesetzten Namen.[/fontsize]
[fontsize=2]Allerdings Funktioniert das beim ersten mal, wenn der SaveCounter noch auf 0 ist, nur durch zweimaliges Klicken.[/fontsize]
[fontsize=2]Der erste Klick führt das Speichern aus der nächste das Senden. Das muss doch auch gleichzeitig gehen...[/fontsize]
[fontsize=2]Bei identischen Namen wird die Datei ohne Vorwarnung überschrieben, kann man das auch abfangen?[/fontsize]
[fontsize=2]Danke für die Hilfe[/fontsize]
[fontsize=2]Gruß[/fontsize]
[fontsize=2]noboc
[/fontsize]
Betreffzeile in Email und Dateiname
Betreffzeile in Email und Dateiname
Das SaveAs Skript hab ich nur eingesetzt, da ich dein Folder Level Skript nicht hatte.
Du musst die Zeile entsprechend auskommentieren.
So, zu der anderen Geschichte.
Ich hab das Skript noch etwas verändert.
Es vergleicht zum einen den aktuellen Dateipfad mit dem,der aus den Feldinhalten generiert wird.
Ist er gleich, wird nicht das Folder Level Skript benutzt, sondern Speichern unter, da ja schon eine so benannte Datei existiert.
Desweiteren wird nach dem Speichern das MailTo-Skript über einem TimeOut nachträglich ausgeführt.
Somit brauchst Du nicht mehr 2 Mal auf den Button klicken.
Du musst die Zeile entsprechend auskommentieren.
So, zu der anderen Geschichte.
Ich hab das Skript noch etwas verändert.
Es vergleicht zum einen den aktuellen Dateipfad mit dem,der aus den Feldinhalten generiert wird.
Ist er gleich, wird nicht das Folder Level Skript benutzt, sondern Speichern unter, da ja schon eine so benannte Datei existiert.
Desweiteren wird nach dem Speichern das MailTo-Skript über einem TimeOut nachträglich ausgeführt.
Somit brauchst Du nicht mehr 2 Mal auf den Button klicken.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Betreffzeile in Email und Dateiname
Hallo Radzmar,
das funktioniert fast.
Ich denke das mit dem Counter die Funktion SaveAss bei existierendem Dateinamen ausgehebelt wird, da der Counter ja weiß, das er bei einem bereits gespeichertem Dokument nur mailen soll.
Gruß
noboc
das funktioniert fast.
Ich denke das mit dem Counter die Funktion SaveAss bei existierendem Dateinamen ausgehebelt wird, da der Counter ja weiß, das er bei einem bereits gespeichertem Dokument nur mailen soll.
Gruß
noboc
Betreffzeile in Email und Dateiname
Hmm,
ich glaub ich versteh nicht, was Du meinst.
Den Vergleich macht das Skript, weil immer noch die Möglichkeit besteht, dass das Formular anderweitig umbenannt wurde, was man nie ausschließen kann.
Bei mir funktioniert's eigentlich, wie angedacht.
Nun ja, ich hab das nochmal überarbeitet.
Hier das Skript des Mail-Buttons:
Und die Funktionen im Skriptobjekt:
Das Formular braucht anderes Folder Level Skript, da ich deines nicht hatte, brauchst Du dieses hier.
Wichtig: Wenn Du das in Reader X mit dem Geschützten Modus verwenden willst, muss du eine eigene Policy anlegen, da das Folder Level Script sonst nicht funktioniert.
http://thelivecycle.blogspot.com/2010/1 ... -mode.html
ich glaub ich versteh nicht, was Du meinst.
Den Vergleich macht das Skript, weil immer noch die Möglichkeit besteht, dass das Formular anderweitig umbenannt wurde, was man nie ausschließen kann.
Bei mir funktioniert's eigentlich, wie angedacht.
Nun ja, ich hab das nochmal überarbeitet.
Hier das Skript des Mail-Buttons:
Code: Alles auswählen
// Standardnamen des Formulars festlegen
var DefaultFileName = "BeispielAbweichung_mod.pdf"
// Counter in extras-Objekt dieses Buttons erstellen
Aktionen.initSaveCounter(this);
var CurrentSaveCount = this.extras.SaveCounter.nodes.item(0).value;
// Variablen
var namePart = Auftrag.rawValue;
var namePart1 = Kunde.rawValue;
var datum = new Date();
var datePart = (datum.getDate() + 0) + "-" + (datum.getMonth() + 1) + "-" + datum.getFullYear();
//var fullName = "/y/Band/GRP/Prod/FERTIGUN/Denkmann/RSV/Bochmann/" + namePart + "-" + namePart1 + " -" + datePart + ".pdf";
var currentFileName = event.target.path;
// Prüfen, ob Variablen nicht leer sind
if (namePart !== null && namePart !== "" && namePart1 !== null && namePart1 !== "") {
// Wenn der SaveCounter noch bei 0 ist, dann Formular erst mal speichern
if (CurrentSaveCount < 1) {
// Counter um 1 erhöhen
this.extras.SaveCounter.nodes.item(0).value = this.extras.SaveCounter.nodes.item(0).value + 1;
// Speicherpfad aus dem Variablen zusammenbasteln und als globale Variable speichern (Wichtig für Folder Level Script!)
SaveAsTarget = Aktionen.createSavePath(namePart, namePart1, datePart, DefaultFileName);
// Namen des aktuellen Formulars mit dem Speicherpfad vergleichen. Wäre ja möglich, dass das Formular umbenannt wurde.
if (SaveAsTarget !== currentFileName) {
// Versuchen, das Formular unter dem Speicherpfad zu speichern
try {
// Folder Level Script aufrufen
event.target.SaveAsFunction(event.target);
// Mitteilen, wo Formular gespeichert wurde
xfa.host.messageBox("Formular gespeichert unter:\r\r" + SaveAsTarget, "Formular gespeichert", 3, 0);
} catch (e) {
xfa.host.messageBox(e.toString().replace("RaiseError: ", "") + "\r\rStellen Sie sicher, dass der Zielordner existiert und keine gleichbenannte Datei dort existiert!", "Fehler beim Speichern des Formulars", 0, 0);
app.execMenuItem("SaveAs");
}
// MailTo-Funktion zeitverzögert ausführen.
app.setTimeOut(Aktionen.MailForm(), 3000);
// Formular nur speichern, wenn der aktuelle Name von Standardnamen abweicht.
} else {
try {
app.execMenuItem("SaveAs");
} catch(e) {
this.extras.SaveCounter.nodes.item(0).value = this.extras.SaveCounter.nodes.item(0).value - 1;
}
}
// Wenn der Counter höher als 0 ist, dann Formular nur mailen
} else {
Aktionen.MailForm();
}
// Warnen, wenn min. eine Variable leer ist
} else {
xfa.host.messageBox("Bitte erst die erforderlichen Felder ausfüllen");
}
Code: Alles auswählen
// Counter erstellen
function initSaveCounter(targetObject)
{
if (targetObject.extras.nodes.namedItem("SaveCounter") === null)
{
targetObject.extras.nodes.append(xfa.form.createNode("extras", "SaveCounter"));
targetObject.extras.SaveCounter.nodes.append(xfa.form.createNode("integer", "state"));
while (targetObject.extras.SaveCounter.nodes.length > 0)
{
targetObject.extras.SaveCounter.nodes.remove(targetObject.extras.SaveCounter.nodes.item(targetObject.extras.SaveCounter.nodes.length-1));
}
var newState = xfa.form.createNode("integer", "SaveCounter");
newState.value = 0;
targetObject.extras.SaveCounter.nodes.append(newState);
}
}
// Formular mailen
function MailForm() {
var Mailto = "a@b.c";
var Betreff = Auftrag.rawValue;
var Betreff1 = Kunde.rawValue;
var Nachricht = "Abweichungsmeldung über ein Band";
var CC = "";
var BCC = "";
var Mail = "mailto:" + Mailto + "?Subject=Abweichungsmeldung für " + Betreff + " - " + Betreff1 + "&Body=" + Nachricht + "&cc=" + CC + "&bcc=" + BCC;
event.target.submitForm({
cURL: Mail,
bEmpty: true,
cSubmitAs: "PDF"
});
}
// Speicherpfad erstellen
function createSavePath(namePart, namePart1, datePart, DefaultFileName) {
// Variablen
var Var1 = namePart;
var Var2 = namePart1;
// Zeitstempel
var TimeStamp = datePart;
// Dateinamen mit Standardnamen vergleichen
if (event.target.documentFileName === DefaultFileName) {
// Variablen zu neuem Speicherpfad verketten
var NewFileName = DefaultFileName.replace(".pdf", "_");
NewFileName += Var1 + "_";
NewFileName += Var2 + "_";
NewFileName += TimeStamp;
NewFileName += ".pdf";
// Alle unsicheren Zeichen aus dem Speicherpfad entfernen und durch Unterstrich ersetzen, um Raise Error zu verhindern (Wichtig!)
NewFileName = NewFileName.replace(/[\s\!\?\<\>\'\"\*\/\\\=\?\^\`\{\}\|\~]+/g, "_");
// Speicherpfad zurückgeben
return event.target.path.replace(event.target.documentFileName, "") + NewFileName;
} else {
return event.target.path;
}
}
Code: Alles auswählen
var SaveAsFunction = app.trustedFunction(function(doc)
{
app.beginPriv();
var newSaveAsTarget = SaveAsTarget;
doc.saveAs({cPath: newSaveAsTarget});
app.endPriv();
});
http://thelivecycle.blogspot.com/2010/1 ... -mode.html
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.