@ata
Hallo Toni!
Du hast natürlich Recht! Nur experimentiere ich hier mit einem Beispiel, welches ich bei www.jNotes.de (http://www.jNotes.de) gefunden habe.
Hier der link
http://www.jnotes.de/JNotes/jnotes_webware.nsf/0/3D61CB985812D11EC1256E1400351407?openDocument (http://www.jnotes.de/JNotes/jnotes_webware.nsf/0/3D61CB985812D11EC1256E1400351407?openDocument)
Der Aufruf des Auswahlfensters erfolgt so:
addSingleName("Selection_2", "no", 250, 420, "comma");
function addSingleName(FieldName, Groups, width, height, sChar) {
var left = Math.floor( (screen.width - width) / 2);
var top = Math.floor( (screen.height - height) / 2);
var params = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
var URL1 = "/MsingleSelect?openform&sChar="+ sChar; //pfad des auswahlmenus
var URL2 = "/MsingleSelect?openform&groups=yes&sChar="+ sChar;
accessField = FieldName ;
if ( Groups != "yes" ) {
var w = window.open( url + URL1 ,"Select", params); //öffnet ein pop-up
} else {
var w = window.open(url + URL2,"Select", params); //öffnet popup
}
}
Der OK-Button im popup-Fenster ruft ready() auf.
var accessFieldName = window.opener.accessField;
var accessField = window.opener.document.forms[0][accessFieldName];
var href = new String();//dieser zeilenblcok liest die adresse der datenbank aus
href = window.location.href; //adresszeile im browser
var pos_nsf = href.lastIndexOf(".nsf"); //position von ".nsf" wird gesucht
var url = href.substr(0, pos_nsf + 4) //alles hinter ".nsf" wird abgeschnitten
function ready() {
var sIndex = document.forms[0].Namen.selectedIndex;
if (sIndex!=-1) {
accessField.value = document.forms[0].Namen[sIndex].text;
};
window.close();
}
Ich hatte auch versucht, den Agent im If-Block (sIndex!=-1) über window.location und auch document.location zu starten, aber es klappt icht.
So, ich hoffe die code-Ausschnitte sind so ausreichend und verwirren nicht.
Danke für weitere Tips!!!
Nils
Die NoteID oder DocumentID muss bereits im HTML Code vorhanden sein.
Dabei kann es als Feld oder eleganter als Computed Text im übergeben werden.
Falls das JS im Body der Maske übergeben wird, kann somit direkt die ID in eine Funktion geschrieben werden.
<script type="text/javascript">
function getID() { return "<computedTExt=@text(@Documentuniqueid)>";}</script>
Evtl. wäre die CGI-Variable Query_String_Decoded besser geeignet, da alle Sonderzeichen wieder zurückübersetzt wurden z.B: %20 -> " "
Deinen Agent kannst Du ja wie folgt aufrufen
http://server/pfadzurDB/db.nsf/AgentNAme?OpenAgent&docunid=0918208201298310812313&Parameter1=yes¶meter2=rot
Im Agent kannst Du dann folgendes machen
dim s as notessession
dim context as notesdocument
dim querystring as string
set s = new notessession
set context = s.documentcontext
querystring = context.getitemvalue("Query_string_decoded")(0)
Im Agent brauchst Du dann nur die Variable "QueryString" zu parsen um die einzelnen Parameter (docunid,parameter1,parameter2) auszulesen.
Um am Ende des Agent etwas zu erhalten kann mit einem entsprechenden Print eine URL zurückgegeben werden z.B. auf das geändert Dokument oder eine Bestätgungsmeldung
print "[/pfad/db/view/docid?Open"]