Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tingeltangel am 24.10.03 - 11:36:02

Titel: Mailfunktion
Beitrag von: tingeltangel am 24.10.03 - 11:36:02
Hallo Notes Gemeinde

Ich habe ein kleines Problem.

Über einen Button sollen alle markierten Dokumente in einer Ansicht. Zu einem Mail zusammen gefügt werden. Habe irgendwie ein Brett vor dem Kopf. Beim jetzigen Zustand wird zwar ein Mail verschickt aber es enthält keine Informationen.

Danke schon jetzt für eure Hilfe.

Hier mal mein erster Ansatz
Sub Click(Source As Button)
   Dim s As New NotesSession   
   Dim rtitem As NotesRichTextItem      
   Dim ws As New NotesUIWorkspace                        
   Dim db As NotesDatabase                                 
   Dim view As NotesView                                    
   Dim UIview As NotesUIView                              
   Dim doc As NotesDocument                              
   Dim memo As NotesDocument                              
   
   Dim memortitem As NotesRichTextItem                              
   Dim col As NotesDocumentCollection
   Dim colresp As NotesDocumentCollection
   Dim parent As NotesDocument
   Dim response As NotesDocument
   Dim uidoc As NotesUIDocument
   Dim flgDoneCounter As Integer
   
   Set db = s.CurrentDatabase                               
   Set UIview = ws.CurrentView                                  
   Set view = UIView.view                                    
   Set memo = New NotesDocument( db )                     
   Set memortitem = New NotesRichTextItem( memo, "Body" )           
   Set col = db.UnprocessedDocuments
   
   memo.Form = "Memo"
   memo.Subject = "Release-Infos"
   
   Set doc = col.GetFirstDocument()
   If (doc Is Nothing) Then
      Messagebox "No documents available to send release infos!", 48, "No documents"
      Exit Sub
   End If
   
   While Not(doc Is Nothing)
      Set rtitem = doc.GetFirstItem( "Body" )          
      If doc.HasItem( "Body" ) Then    
         If ( rtitem.Type = RICHTEXT And memortitem.Type = RICHTEXT ) Then      
            Call memortitem.AppendText( "Titel: " )
            Call memortitem.AddTab( 2 )
            Call memortitem.AppendText( doc.f_ed_tx_3(0) )
            Call memortitem.AddNewLine( 1 )
            Call memortitem.AppendText( "Auftrag: " )
            Call memortitem.AddTab( 1 )
            Call memortitem.AppendText( doc.f_ed_tx_5(0) )
            Call memortitem.AddNewLine( 2 )
            Call memortitem.AppendRTItem( rtitem )
            Call memortitem.AddNewLine( 1 )
            Call memortitem.AppendText("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")
            Call memortitem.AddNewLine( 1 )
         End If
         
      End If
      Set doc = col.GetNextDocument(doc)
   Wend
   
   memo.SendTo = s.UserName
   Call memo.Send( False )
   Print "Mail sended"
End Sub
Titel: Re:Mailfunktion
Beitrag von: koehlerbv am 24.10.03 - 11:42:30
Und was sagt der Debugger ?

Und was machst Du mit diesen Zeilen:
Code
Set rtitem = doc.GetFirstItem( "Body" )         
      If doc.HasItem( "Body" ) Then    
         If ( rtitem.Type = RICHTEXT And memortitem.Type = RICHTEXT ) Then
Titel: Re:Mailfunktion
Beitrag von: tingeltangel am 24.10.03 - 13:11:24
If doc.HasItem( "Body" ) Then    
If ( rtitem.Type = RICHTEXT And memortitem.Type = RICHTEXT ) Then

Bis zu dieser Zeile läuft der Debugger anschliessend springt er ans ende. Ohne den restlichen Code auszuführen.
Titel: Re:Mailfunktion
Beitrag von: koehlerbv am 24.10.03 - 13:13:25
Da stimmte ja meine Vermutung ;-)
Titel: Re:Mailfunktion
Beitrag von: Semeaphoros am 24.10.03 - 13:16:50
Bernhard, jetzt hast Du aber Tingeltangel schön im Regen -- oder im Moment mehr im weissen Sabotagepulver --- stehen gelassen ...... aber zu Recht, da sollte man mal schon seine Gedanken drüber tangeln lassen ......... ;-O
Titel: Re:Mailfunktion
Beitrag von: tingeltangel am 24.10.03 - 13:17:23
welche vermutung. Kennst du das Problem. Wie könnte das behoben werden.  ???
Titel: Re:Mailfunktion
Beitrag von: Semeaphoros am 24.10.03 - 13:18:30
Ueberlege mal, warum das Programm wohl springt
Titel: Re:Mailfunktion
Beitrag von: koehlerbv am 24.10.03 - 13:21:09
Oder beantworte einfach meine Frage ;-)
Titel: Re:Mailfunktion
Beitrag von: tingeltangel am 24.10.03 - 13:24:01
das ist ja genau das Problem.

Diese Funktion stammt nicht von mir. Ich muss sie nur bearbeiten und habe ehrlich gesagt keine grosse Ahnung was mein vorgänger hier machen wollte. Ich währe euch Dankbar wenn ihr mir helfen könntet.
Titel: Re:Mailfunktion
Beitrag von: Semeaphoros am 24.10.03 - 13:27:17
Eines der beiden Felder ist nicht vom Typ Richtext
Titel: Re:Mailfunktion
Beitrag von: koehlerbv am 24.10.03 - 15:14:04
Hallo, Tingeltangel,
Zitat
Diese Funktion stammt nicht von mir. Ich muss sie nur bearbeiten und habe ehrlich gesagt keine grosse Ahnung was mein vorgänger hier machen wollte.
Sind wir doch mal ehrlich: Du hast nicht nur keine Ahnung, was Dein Vorgänger machen wollte, sondern Du hast prinzipiell von LotusScript keine Ahnung.

Ich postuliere jetzt mal, daß Du lernen möchtest. Dann mußt Du aber auch selber durch bei diesem Problem. Danach hast Du nämlich aus wesentliches begriffen.
Hierzu folgende Tips:
Zitat
If doc.HasItem( "Body" ) Then    
If ( rtitem.Type = RICHTEXT And memortitem.Type = RICHTEXT ) Then

Bis zu dieser Zeile läuft der Debugger anschliessend springt er ans ende. Ohne den restlichen Code auszuführen.
Das ist etwas sehr oberflächlich und in der Programmiererei prinzipiell unzulässig: Das sind nämlich ZWEI Zeilen, und nur in einer Zeile kann der Sprung zum zugehörigen End If erfolgen.

Du must Dir die Situation durchdenken:
- Was ist das Item "Body" in doc ? Gibt es das ?
- Was ist rtitem und was memortitem ?
- Sind diese Items wirklich vom Typ RICHTEXT ?
- Gibt es die Items überhaupt ?

Oder Du sagst "Ich will keine Belehrung". Dann stell einen Auftrag, und einer von uns programmiert Dir das (damit verdienen wir nämlich unseren Lebensunterhalt).

Bernhard
Titel: Re:Mailfunktion
Beitrag von: Semeaphoros am 24.10.03 - 15:49:34
Genau, ist auch meine Meinung, was Bernhard da sagt
Titel: Re:Mailfunktion
Beitrag von: kawie am 27.10.03 - 17:26:17
Was zum Henker ist den memortitem ???
Titel: Re:Mailfunktion
Beitrag von: Semeaphoros am 27.10.03 - 17:35:18
Kein Kuckucksei, nur ein ungeschickt geschriebener Variablen - Namen:

memoRTitem: das RichtText Item fürs Memo ......


Wie fein sind doch die Spargel-
der auf der Bank .......  ;D
Titel: Re:Mailfunktion
Beitrag von: robertpp am 27.10.03 - 17:47:19
Ich finde es eigentlich nicht i.O. das wenn sich einer nicht auskennt und um hilfe bittet das man dann noch sagt:
Zitat
Sind wir doch mal ehrlich: Du hast nicht nur keine Ahnung, was Dein Vorgänger machen wollte, sondern Du hast prinzipiell von LotusScript keine Ahnung.
Muss man das wirklich so schreiben?

Ich meine er kenn sich vielleicht wirklich nicht aus und wollte nur schnell eine Löusng!!
Titel: Re:Mailfunktion
Beitrag von: Semeaphoros am 27.10.03 - 17:57:05
Robert

Genau da drin steckt ja das Problem: die Sache lässt sich mit genügend Kenntis recht rasch lösen. Dass man vielleicht mal aufm Schlauch steht und Hilfe braucht, ist eines. In vielen dieser Fälle ist es aber so, dass sich dann hier 2 bis 4 Leute gleichzeitig den Kopf zerbrechen, alle Antworter hätten die Lösung schon längstens realisiert, während die Person, die das Problem selber hat, nicht merkt (oder nicht merken will), dass sie dadurch völlig überfordert ist und wohl kaum wirklich auf einen grünen Zweig kommt.  Ab und an kommt man nicht darum herum, jemandem das zu sagen - leider. Bernhard haben vorgängig sehr subtil versucht, ihm zu zeigen, dass er ohne eigene Ueberlegungen da nicht wirklich ans Ziel kommt. Leider kommt meistens nach der Beseitigung des ersten solchen Problemes gleich hinterher das zweite, Beispiele gibt es hier zu Hauf, nennen werde ich aber hier ganz sicher keines.
Titel: Re:Mailfunktion
Beitrag von: koehlerbv am 27.10.03 - 18:23:15
Hallo, Robert,

Du hast mich aber nicht vollständig zitiert ...

Du hast, glaube ich, auch nicht vollständig den Sinn dieses Forums verstanden: Hilfe zur Selbsthilfe, Kollegen bei Problemen unterstützen, Tipps und Tricks weitergeben und so weiter. Aber nicht jemanden etwas programmieren, der dann nicht weiß, was er da eigentlich einsetzt.
Wenn jemand LotusScript nicht kann, kann er sein Programm dann damit auch (noch) nicht aufpeppen.
Die, die hier in erster Linie Erfahrungen (gerne) weitergeben, sind doch alles Leute, die damit (in diesen Zeiten hart genug) ihr täglich Brot verdienen. Wenn sie sich hier engagieren, geht das on-top auf ihr tägliches Pensum, was wohl bei keinem der Genannten ein Acht-Stunden-Tag ist.

Stell Dir mal 'nen Rasthof an der Autobahn vor: Trucker 1 hat 'nen Reifenschaden und bittet Trucker 2 um Hilfe (Werkzeug vielleicht oder "kräftige Unterstützung"). Das ist okay, oder?
Aber jetzt: Trucker A hat im Rasthof ein nettes Mädel kennen gelernt und will mit ihr eigentlich am liebsten für die Nacht ins Motel. Da bittet er eben Trucker B, ob der nicht für ihn seinen Truck nach Eindhoven fahren könnte. Ich wette, Trucker 2 holt wie im ersten Fall jetzt auch wieder die Hebelstange für den Kreuzschlüssel aus dem Werkzeugkasten ...

Alternativen für die Lösung seines Problems habe ich tingeltangel aufgezeigt, die früher oder später sein Problem lösen würden.

Bernhard