Hallo Roland,
vielen Dank für Deine Antwort. Die Idee ist klasse und ich habs gleich mal ausprobiert. Prinzipiell scheint das zu funktionieren, wenn ich auch im Detail noch ein bisschen was machen muss. Ich bin mir aber noch nicht sicher, ob diese Umleitung von den Zielapplikationen erkannt wird, das muss ich dann beim Kunden prüfen.
Hier meine Umsetzung:
1. Eine Ansicht mit den Dokumenten und einer Link-Spalte. Eine Maskenformel "WebOpen" und der Link wird wie folgt generiert (sKey ist ein Primärschlüssel):
"[" + "<a href='" + "viewLookupByKey/" + sKey + "?OpenDocument" + "'>" + sTitle + "</a>]"
2. Maske WebOpen mit folgendem Code im HTML Head Content:
url := @Text(@DocumentUniqueID) + "/$File/" + @Subset(@AttachmentNames; 1);
"<script language='JavaScript' type='text/javascript'>window.open('" + url + "', '_self');</script>"
oder alternativ
"<meta http-equiv='refresh' content='0; " + url + "'>"
Klick auf den Link bringt öffnet sofort den "Datei speichern"-Dialog im Browser. Bei der meta-Variante erscheint im Browser noch das Dokument selbst (was nur aus dem Dateianhang besteht), was ich eigentlich vermeiden möchte.
Jetzt gibts aber noch folgendes kleine Problemchan: Bei a href ohne target öffnet er die leere Seite (im Prinzip die Maske WebOpen) und die Ansicht ist weg. Mit target=_blank macht er eine neue Seite auf. Dort wird dann der "Datei speichern"-Dialog angezeigt, aber das Fenster bekomme ich nicht mehr weg. Wenn ich im HTML Head Content noch ein "opener.close()" hinzufüge, erscheint der Dialog erst gar nicht, sondern öffnet kurz das Fenster und schließt es gleich wieder. Wenn ich im window.open ein anderen target angebe, dann will er einen Popup öffnen und das sperrt der Browser. Hab noch keine sinnvolle Lösung gefunden, aber das sind nur Kleinigkeiten und ist sicher irgend wie hinzubekommen.
Das größere Problem ist die Umleitung. Ob mit <meta http-equiv...> oder window.open, beides sind Umleitungen auf eine zweite Seite und ich vermute, dass das Zielprogramm einfach den HTML-Code ausliest. Aber wie gesagt kann ich das erst beim Kunden testen. Auf jeden Fall ein super Ansatz und jetzt heißt es für mich "mach was draus.." ;-)
Nochmals vielen Dank,
Joachim