Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: braincrusha am 21.11.03 - 13:05:35
-
Also ich hab ein Agent programmiert welcher nur bestimmte Dokumente ausliest und diese dann ausgibt in eine HTML!
Also der Agent ist in LotusScript und wird manuell aus dem Menü gestartet.
Ich hab jetzt ne Abfrage reingebaut die nachfragt ob nur Dokumente aufgelistet werden müssen die in einem Feld(TT2) was stehen haben.
[...]
Dim ak As Variant
[...]
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?", 4 + 32 + 0 + 4096, "Nur Aktivitäten?")
[...]
If(ak = 7) Then
Do While Not (oh_document Is Nothing)
Set temp = view.GetNextDocument(oh_document)
If (bla bla bla) Then
Print #1, "BlaBla "
End If
Set oh_document = temp
Loop
Else
Do While Not (oh_document Is Nothing)
Set temp = view.GetNextDocument(oh_document)
If (blabla And Not(Isempty(TT2))) Then
Print #1, "BlaBla"
End If
Set oh_document = temp
Loop
End If
er gibt nun aber gar keine Dokumente aus. Wenn ich die Teile rausmach oder auf abbrechen klick durckt er mir alle Dokumente aus die den Rest der Anforderungen (hier abgekürzt mit blabla) entspricht.
-
Hi,
der Return der Messagebox wird in der Variable "ak" abgelegt, aber unten benutzt Du scheinbar "voigtak". Was passiert dazwischen oder warum ist das so ?
-
Was ist voigtak ?
[...]
If(voigtak = 7) Then
Ciao
Don Pasquale
-
ist ak... hab den quelltext bisschen umgeschrieben und das vergessen zu ändern... also da steht im echten auch ak
-
Hast Du mal den Debugger benutzt ?
Wo hängt er denn ?
Ciao
Don Pasquale
ps: Der Gebrauch von Kommata schadet nicht - nicht immer
-
Der hängt nirgends der Debugger läuft durch, der Agent lässt sich auch starten aber er gibt nicht aus was ich will. Er gibt gar keine Dokumente aus obwohl eigentlich Dokumente ausgegeben werden sollten..
-
... hat er denn überhaupt ein Dokument initialisiert? Vor Do while sollte das Dokument bereits initialisiert sein, sonst geht er erst gar nicht in die Schlaufe...
ata
-
ja werden sie weiter vorne... es klappt ja alles wunderbar wenn ich auf no klicke und er es ohne diesen "And Not(Isempty(TT2)" macht...
und wenn ich dann ja klicke und er den unteren teil nimmt funktioniert gar nix mehr
Also glaub ich nicht dass am Anfang en Fehler bei der Initialisierung ist
"
Dim db As NotesDatabase
Dim view As NotesView
Dim voi_Auslieferungsdoc As NotesDocument
Dim oh_document As NotesDocument
Dim temp As NotesDocument
Dim vrzfilename As Variant
Dim Server As New notesdbdirectory ("")
Dim ak As Variant
Dim tempdate As Variant
PrintDate = Date()
Dim AuslieferungDatum As Variant
Dim bis_date As Variant
Dim von_date As Variant
Set session = New NotesSession
Set db = session.CurrentDatabase
Set view = db.GetView("NextAuslieferung")
Set oh_document = view.GetFirstDocument
vrzfilename = Inputbox("Dateiname mit Pfadangabe:", "Dateiauswahl", "F:\Auslieferungsdokument.html")
Open vrzfilename For Output As #1
"
-
Pack doch mal nur das Wesentliche in einen Klickbutton
und poste dann mal den gesamten Code.
Und beschreibe ganz langsam, was passieren soll.
Benutze Kommas !
Ciao
Don Pasquale
-
Also ich habe einen Agenten welcher Dokumente durchsuchen soll und bei denen bei denen an bestimmten Stellen Haken gesetzt sind bezw. was bestimmtes drin steht sollen benützt werden um eine HTML mit bestimmtem Inhalt zu erzeugen!
Soweit noch alles klar???
Dieser Agent funktioniert auch einbahnfrei!!!!!
Jetzt habe ich noch was eingebaut! Und zwar eine Abfrage
Dim ak As Variant
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?", 4 + 32 + 0 + 4096, "Nur Aktivitäten?")
Wenn ich nun auf Nein klicke müsste er mir eine 7 zurückgeben falls ich dass richtig kapiert habe
falls er eine sieben zurückgibt soll er den normalen Ablauf den ich ja schon hatte durchführen
If(ak = 7) Then
Do While Not (oh_document Is Nothing)
Set temp = view.GetNextDocument(oh_document)
If (bla bla bla) Then
Print #1, "BlaBla "
End If
Set oh_document = temp
Loop
falls er ein andere Zahl zurückbekommt soll er weiter mit der Elseanwendung machen an die ich dieses Argument in der If-Schleife angefügt habe
Else
Do While Not (oh_document Is Nothing)
Set temp = view.GetNextDocument(oh_document)
If (blabla And Not(Isempty(TT2))) Then
Print #1, "BlaBla"
End If
Set oh_document = temp
Loop
End If
Also wenn in dem Feld TT2 etwas drinsteht soll er sie ausgeben!
Das Problem ist dass er dann keine Dokumente findet obwohl dort eins drin stehen sollte!!!!
Kommatas?? Was sind das?? Kommentare oder , ;???
-
@Braincrusha,
Also hast Du 2 Probleme
Ad 1:
Mit
Messagebox ak(0)
erfährst Du welcher Wert zurückgeliefert wird.
Ad 2:
Was ist TT2 ?
Meinst Du vielleicht Oh_Document.TT2(0) = ""
?
Ciao
Don Pasquale
-
... zu den Kommas - ich denke es sind die Kommas gemeint, die man in deinen Beschreibungen vermisst...
ata
-
@Braincrusha,
Also hast Du 2 Probleme
Ad 1:
Mit
Messagebox ak(0)
erfährst Du welcher Wert zurückgeliefert wird.
Ad 2:
Was ist TT2 ?
Meinst Du vielleicht Oh_Document.TT2(0) = ""
?
Ciao
Don Pasquale
Oh_Document.TT2(0) = "" in einer If-Schleife im LotusScript und das funktioniert?? Ich geh mal testen
Messagebox ak(0)?? Wo hin?? Wie funktioniert dies?? Muss ich das bei der Angabe beachten oder anstatt nur ak??? Kapier es nicht wirklich
-
Ad 1:
Dim ak As Variant
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?", 4 + 32 + 0 + 4096, "Nur Aktivitäten?")
Messagebox ak
Der Benutzer klickt etwas an und in einer Messagebox erhälst Du den Rückgabewert.
Ad2:
Unter der Voraussetzung, dass mit TT2 ein Feld im
Document oh_document gemeint ist,
könnte deine If-Abfrage folgendermassen aussehen :
If (blabla And Not(Isempty(oh_document.TT2(0)))) Then
Ciao
Don Pasquale
-
Ad 1:
Dim ak As Variant
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?", 4 + 32 + 0 + 4096, "Nur Aktivitäten?")
Messagebox ak
Der Benutzer klickt etwas an und in einer Messagebox erhälst Du den Rückgabewert.
Versteh ich jetzt nicht wirklich... also was muss ich angeben damit der Wert der aus der Messagebox zurückgegeben wird bei ak landet??
Also wenn ich jetzt Ja klick kommt ne 6 in ak und bei nein ne 7 in ak???
-
Mit dem Rückgabewert der MessageBox-Function hat das gar nichts zu tun, das ist schon okay.
Würdest Du Option Declare setzen, würdest Du sofort den Fehler bemeckert bekommen, denn TT2 ist nicht deklariert. Wie Don Pasquale schon geschrieben hat, meinst Du vermutlich das item TT2, und das musst Du wie vom Don beschrieben ansprechen.
Weiterhin: Das erste Document in Deiner View überliest Du mit Deinem Code permanent. Nicht, dass Du Dich dann später mal wunderst ...
Irgendwo schreibst Du mal "Dokumente, bei denen Haken gesetzt sind ..." Meinst Du damit etwa markierte Dolumente ? Dann ist Dein Verfahren (looping through a view) gänzlich verkehrt.
Würdest Du den Debugger benutzen, hättest Du die Fehler übrigens längst selber bemerkt - die Bedingung "Not(Isempty(TT2)" ist niemals erfüllt, und das kann man dann im Debugger sehr schön beobachten ...
Und - wie schon mehrfach von anderen angemahnt: Verzichte auf dusslige Massenansammlungen von Ausrufe- und Fragezeichen, setz' lieber wenigstens an ein paar (richtigen) Stellen Kommata. Sonst entsteht der Eindruck "Wer nicht ordentlich Text schreiben kann, wird erst recht keinen ordentlichen Code notieren können."
HTH,
Bernhard