Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: jens1979 am 22.03.04 - 11:21:15
Titel: Agenten auf eine Ansicht anwenden
Beitrag von: jens1979 am 22.03.04 - 11:21:15
Hallo mal wieder,
ich hatte vor einigen Monaten mal eine Frage gestellt, in der es sich darum handelte beim Erstellen eines Dokuments ein Feld mit Hilfe einer Prüfziffernkontrolle zu überprüfen. Das klappt auch wunderbar. Nun würde ich gern die alten Einträge (welche vor der Kontrolle eingepflegt wurden) überprüfen. Ich habe also eine Maske die nach dem zu überprüfenden Feld sortiert ist und möchte einen Agenten darauf ansetzen. Wie mache ich jetzt meinem Agenten klar das er jedes Dok nacheinander öffnet das Feld ausliest, überprüft und ggf. eine Meldung "Konrtolle nicht bestanden" bringt?
Jens
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: Don Pasquale am 22.03.04 - 11:24:03
Du programmierst eine Schleife, welche mittels einer Collection alle Dokumente durchläuft.
Set doc = view.GetFirstDocument While Not doc Is Nothing ' # .... dein Code Set doc = view.GetNextDocument(doc) Wend
Weisst Du wie es weitergehen könnnte ?
Ciao Don Pasquale
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: jens1979 am 22.03.04 - 11:28:32
Ich glaub schon das ich's verstanden habe. Ich check das gleich mal nach dem Mittag ab und meld mich dann nochmal.
Danke erstmal
Jens
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: jens1979 am 22.03.04 - 12:04:18
Ein kleines Problem hab ich noch.
Bis jetzt habe ich das Feld das ich überprüfen wollte ja direkt aus der Mase ausgelesen
kontonr = Cstr(doc1.tKontonummer(0) )
jetzt muss ich ja die 1. Spalte meiner Ansicht auslesen, wenn ich das richtig verstanden habe.
Wie geht dem?
Jens
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: koehlerbv am 22.03.04 - 12:06:10
Wieso ? Don Pasquale hat Dir doch schon das erste Doc instantiiert:
Code
Set doc = view.GetNextDocument(doc)
Da hast Du doch Dein Backend-Doc wie gewohnt vor Dir liegen ...
Bernhard
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: Semeaphoros am 22.03.04 - 12:06:38
Wieso denn das? So wie Don Pasuale Dir das vorbereitet hast, bekommst Du ein Dokument nach dem anderen in der Variablen Doc geliefert.
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: jens1979 am 22.03.04 - 12:36:06
Okay ... das dumme ist nur egal wie ich es Anstelle er schreibt mir nix in meine Workspace (ws).
Ich verstehe es nicht mehr. Ich werd gleich mal den Script für die Überprüfung posten, vileicht seht ihr ja dann mein Problem.
Jens
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: jens1979 am 22.03.04 - 12:40:17
Also hier das Script:
'# Allgemeine Variablendeklirationen
Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim session As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument
'# Pruefziffernkontrolle Variablendeklirationen
Dim kontonr As String Dim laenge As Integer Dim zahl As Integer Dim i As Integer Dim summe As Integer Dim modulo_erg As Integer Dim pruefziffer As Integer Dim letzte As Integer Set uidoc=ws.currentdocument
'# Beginn Pruefziffernkontrolle
Set ws = New NotesUIWorkspace Set uidoc = ws.CurrentDocument Set doc = uidoc.Document
kontonr = Cstr( doc.tKontonummer(0) ) If Len(kontonr) > 7 Then kontonr = Right$(kontonr, 7) End If laenge = Len( kontonr ) summe = 0 For i = 2 To laenge zahl = Cint( Mid( kontonr, laenge - i + 1, 1 ) ) summe = summe + zahl * i Next
modulo_erg = summe Mod 11
If modulo_erg <= 1 Then pruefziffer = 0 Else pruefziffer = 11 - modulo_erg End If
letzte = Cint( Mid( kontonr, laenge ,1 ))
If letzte = pruefziffer Then Messagebox "Prüfziffernkontrolle erfolgreich abgeschlossen" Else Messagebox "Prüfziffernkontrolle nicht bestanden" End If
'# Ende Pruefziffernkontrolle
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: Semeaphoros am 22.03.04 - 12:47:13
Studiere mal den Code ganz genau, den Dir Don da geliefert hat und überlege mal, was dabei passiert.
Dann überlege mal, was dieser Code von Dir hier macht:
Set ws = New NotesUIWorkspace Set uidoc = ws.CurrentDocument Set doc = uidoc.Document
Das macht nur Sinn, wenn Du ein geöffnetes Dokument vor der Nase hast, nicht wenn Du einen View in der Anzeige hast.
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: jens1979 am 22.03.04 - 13:07:22
okay ... es ist doch so das nachdenken was bringt ;)
Don's Code schreibt also immer das komplette Dokument in die doc Variable ... aha ...
Ich habs jetzt hinbekommen ... muss ja meine Kontonummer nur aus dieser doc auslesen.
Danke für den Denkanstoß. Und natürlich auch allen anderen für die Hilfe.
Jens
Titel: Re:Agenten auf eine Ansicht anwenden
Beitrag von: Semeaphoros am 22.03.04 - 13:13:18
Jo, das ist so, Denkanstoss von J an J gerne erfolgt.
Dafür darfst Du dann den Thread noch auf erledigt stellen, erleichtert die Uebersicht :)