Domino 9 und frühere Versionen > ND6: Entwicklung
Quellcode ... ich kapiers nicht
TomLudwig:
Hallo zusammen,
ich habe mir einen Beispielcode runter geladen aus der Sandbox. Leider steig ich nicht so ganz durch. Der Agent wird über einen Button im WEB aufgerufen.
Die entstehende HTML Seite wird in der Funktion BuildForm erstellt.
Kann mir jemand allgemein erklären was da gemacht wird??? Danke...
Dim windowTitle As String
Dim DB As NotesDatabase
Dim agentName As String
Dim Session As New NotesSession
Dim nabDB As NotesDatabase
Dim View As NotesView, ViewDoc As NotesDocument
Dim Doc As NotesDocument, noteName As NotesName
Dim nabName As String
Dim nabView As String
windowTitle = "Titel"
agentNames = Evaluate({@explode("} & Session.currentAgent.Name & {"; "|")} )
agentName = Trim(agentNames( Ubound(agentNames) ))
nabName = "names.nsf"
nabView = "($People)"
Set DB = Session.CurrentDatabase
Set Doc = Session.DocumentContext
If Doc Is Nothing Then
' For testing only.
Set Doc = DB.CreateDocument
doc.query_string = "OpenAgent&data"
End If
If Instr( Lcase(Doc.Query_String(0)), "&data") Then
' read the view and product a comma separated file
Print "Content-Type: text/plain" ' needed to make this a plain file
'Open the NAB
Set nabDB = Session.GetDatabase( DB.Server, nabName)
Set View = nabDB.GetView( nabView )
' Output the header
Print "Name,lastName,returnValue"
Set ViewDoc = View.GetFirstDocument
While Not ViewDoc Is Nothing
Set noteName = New NotesName( ViewDoc.Fullname(0) )
Print noteName.common & "," & Ucase(ViewDoc.Lastname(0)) & "," & ViewDoc.Fullname(0)
Set ViewDoc = View.GetNextDocument( ViewDoc )
Wend
Else
Call BuildForm
End If
Semeaphoros:
Also, wenn Du das aus dem Sandkasten hast, dann gibt es da bestimmt auch eine Beschreibung, was das Ding tut, wäre gut gewesen, wenn Du das mitgeliefert hättest.
Ansonsten, da werden die Namen aus dem lokalen Adressbuch ausgelesen und dargestellt (oder sollen wenigstens), soweit ich das verstehe
TomLudwig:
Sorry,
genau das soll das Teil machen. Aber ich kapier den Ablauf nicht.
Der DocumentContext gibt mir das aktuelle Dokument zurück.
Somit ist die erste IF-Abfrage sinnlos. Oder nicht?
Im IF-Fall der zweiten Abfrage werden die Namen irgendwo (wo auch immer) hingeschrieben. Aber nicht angezeigt.
Erst im Else-Fall wird das HTML-Dok erzeugt. Aber dennoch werden beim ersten Auffruf (IF-Fall) die Namen angezeigt.
Semeaphoros:
DocumentContext gibt nicht das aktuelle Doc zurück, sondern eine temporäre Kopie davon und das auch nur in einer Web-Anwendung. Darüber hinaus findet man in dem Document auch die CGI-Variablen.
Will man das Ding ohne Web testen, macht die erste If-Anfrage Sinn, denn so lässt sich die Sache imitieren, das ist auch der Sinn des Kommentares dabei.
Print geht in diesem Falle an den Browser raus, damit werden die Namen rausgeschrieben. Ich denke, Du solltest mal in der Designer-Hilfe nachlesen, wie die Agenten wirken, wenn sie im Web eingesetzt sind, das sind Basics hier.
Glombi:
Der Vollständigkeit halber:
Der Code befindet sich in dem Sandbox-Teil aus diesem Thread:
http://www.atnotes.de/index.php?topic=18865.0
doc muss das Dokument sein, in dem der Button für den Names Picker hinterlegt ist. Dort wird per Javascript der Agent aufgerufen.
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln