Newsletter-Abonenten in Config-Dok speichern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Newsletter-Abonenten in Config-Dok speichern

    Moin zusammen,

    ich trete gerade irgendwie auf der Stelle und sehe scheinbar den Wald das Postfach vor lauter Mails (schöne ableitung von wald vor lauter bäumen :D ) nicht mehr.
    Ich möchte gerne, dass der Anwender durch den Klick auf einen Button in einem Navigator sich für ein Newsletter an- bzw. abmeldet.
    Hierfür hatte ich mir überlegt, kann man doch in ein Configdokument die notesnamen speichern... am besten wäre da ein mehrfachfeld, so dachte ich.. da mein altes Skript

    Quellcode

    1. Dim db As NotesDatabase
    2. Dim s As New NotesSession
    3. Dim doc As NotesDocument
    4. Dim var As Integer
    5. Dim nam(0) As Variant
    6. Dim neu As Variant
    7. Dim rep(0) As Variant
    8. Set db = s.CurrentDatabase
    9. Set doc = db.GetProfileDocument("(config)")
    10. nam(0) = s.UserName
    11. rep(0) = ""
    12. var = 0
    13. Forall dd In doc.newsletter
    14. If dd = s.UserName Then
    15. var = 1
    16. neu = Arrayreplace(doc.newsletter, nam, rep)
    17. doc.newsletter = Fulltrim(neu)
    18. Call doc.Save(True, False)
    19. Msgbox "Sie wurden erfolgreich aus dem Newsletter entfernt!"
    20. End If
    21. End Forall
    22. If var = 0 Then
    23. neu = Arrayappend(doc.newsletter, nam)
    24. doc.newsletter = Fulltrim(neu)
    25. Call doc.Save(True, False)
    26. Msgbox "Sie wurden erfolgreich für das Newsletter angemeldet!"
    27. End If
    Alles anzeigen


    unter R4.6 ja leider nicht funktiert hat, weil R4.6 keine Arrayfunktionen kennt.

    Also wollte ich es umschreiben, bekomme das grad aber nicht ganz so hin.. hatte mir schon überlegt, einfach in das Feld mit Komma getrennt, den Namen hinzuzufügen oder mit replace den namen zu entfernen und das Dokument zu aktualisieren. Durch die feldvalidation würden dann Leere Werte entfernt und neue als Array interpretiert werden.. nur hat das nicht ganz funktioniert.. hat wer von euch noch eine gute Idee?
    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...
  • Re: Newsletter-Abonenten in Config-Dok speichern

    du meinst

    Quellcode

    1. doc.computewithform(true, false)
    ?
    das hatte ich da mit eingebaut.. warte ich poste mal den code..

    Quellcode

    1. Sub Click(Source As Navigator)
    2. Dim db As NotesDatabase
    3. Dim s As New NotesSession
    4. Dim doc As NotesDocument
    5. Dim ws As New NotesUIWorkspace
    6. Dim y As Integer
    7. Dim z As Integer
    8. Dim st As String
    9. Set db = s.CurrentDatabase
    10. Set doc = db.GetProfileDocument("(config)")
    11. y = 0
    12. z = 0
    13. Forall x In doc.newsletter
    14. If x = s.UserName Then
    15. y = 1
    16. Exit Forall
    17. End If
    18. z = z + 1
    19. End Forall
    20. If y = 0 Then
    21. For i = 0 To z - 1
    22. st = st & doc.newsletter(i) & ", "
    23. Next
    24. st = st & s.UserName
    25. doc.newsletter = st
    26. Else
    27. doc.newsletter = Replace(doc.newsletter, s.UserName, "")
    28. End If
    29. Call doc.ComputeWithForm(True, False)
    30. Call doc.Save(True, False)
    31. If y = 0 Then Msgbox "Sie wurden erfolgreich dem Newsletter hinzugefügt!"
    32. If y = 1 Then Msgbox "Sie wurden erfolgreich aus dem Newsletter entfernt!"
    33. End Sub
    Alles anzeigen
    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...
  • Re: Newsletter-Abonenten in Config-Dok speichern

    Möglicherweise macht er da keine Umsetzung.

    Du willst also einen Benutzer ans Ende der Liste hinzufügen.
    Das geht aber auch einfacher:

    Feld = doc.Newsletter

    Redim Preserve Feld(0 to (ubound(Feld) + 1))

    Feld(Ubound(Feld)) = s.UserName

    doc.Newsletter = Feld

    Das hängt den aktuellen Benutzernamen an den Inhalt des Feldes Newsletter an
  • Re: Newsletter-Abonenten in Config-Dok speichern

    der vollständigkeithalber, poste ich noch den gesamten, fertigen code..

    Quellcode

    1. Option Public
    2. Option Explicit
    3. Sub Initialize
    4. Dim db As NotesDatabase
    5. Dim s As New NotesSession
    6. Dim doc As NotesDocument
    7. Dim ws As New NotesUIWorkspace
    8. Dim y As Integer
    9. Dim z As Integer
    10. Dim st As String
    11. Dim Feld As Variant
    12. Set db = s.CurrentDatabase
    13. Set doc = db.GetProfileDocument("(config)")
    14. y = 0
    15. z = 0
    16. Forall x In doc.newsletter
    17. If x = s.UserName Then
    18. y = 1
    19. Exit Forall
    20. End If
    21. z = z + 1
    22. End Forall
    23. If y = 0 Then
    24. Feld = doc.newsletter
    25. Redim Preserve Feld(0 To (Ubound(Feld) + 1))
    26. Feld(Ubound(Feld)) = s.UserName
    27. doc.newsletter = Feld
    28. Else
    29. Feld = doc.newsletter
    30. Feld(z) = ""
    31. doc.newsletter = Feld
    32. End If
    33. Call doc.ComputeWithForm(True, False)
    34. Call doc.Save(True, False)
    35. If y = 0 Then Msgbox "Sie wurden erfolgreich dem Newsletter hinzugefügt!"
    36. If y = 1 Then Msgbox "Sie wurden erfolgreich aus dem Newsletter entfernt!"
    37. End Sub
    Alles anzeigen
    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...