Domino 9 und frühere Versionen > ND6: Entwicklung

Quellcode ... ich kapiers nicht

(1/4) > >>

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