Beiträge von Laura

    Tach Timo,


    und, hat's geklappert?


    Für alle Fälle - hier ein kompletter Agent, sogar getestet...


    Eine etwas andere Lösung mit der bequemen Mail-DB-Auswahl.


    [color=006600]Sub Initialize

    'Agent (Agent_Signatur)

    Dim nuiws As New notesuiworkspace
    Dim ndoc As notesdocument
    Dim dc As notesdocumentcollection
    Dim xAdressbuch As String

    Dim ns As New NotesSession
    Dim mailDb As NotesDatabase
    Dim mailprof As NotesDocument
    Dim xServer As String
    Dim xDB As String
    Dim fileNum As Long


    xServer = ns.Currentdatabase.Server
    xAdressbuch = "names.nsf"

    fileNum = Freefile()
    Open "c:\test.txt" For Output As fileNum

    Set dc = nuiws.PickListCollection(PICKLIST_CUSTOM, True, xServer, xAdressbuch, "Personen", "Mail-Datenbanken", "Wählen Sie..." )

    Set ndoc = dc.getfirstdocument
    While Not ndoc Is Nothing

    xDB = ndoc.MailFile(0) + ".nsf"
    Set mailDb = ns.GetDatabase( xServer, xDB, False )
    'Auf diese DB muss der Script-Ausführer min. die Leserechte haben!

    Set mailprof = maildb.GetProfileDocument("CalendarProfile") 'Benutzer-Profil, auf dieses Doc muss der Script-Ausführer min. die Leserechte haben!

    Print #fileNum, mailprof.Signature(0); '<-- Dieser Befehl überträgt den Inhalt des Text-Feldes in die Textdatei mit ; als Trennzeichen

    Print #fileNum,"" '<-- Dieser Befehl erstellt den Zeilenumbruch in der Textdatei, damit der nächste Datensatz in die neue Zeile kommt
    Print #fileNum,"" '<-- und noch eine leere Zeile
    Print #fileNum, Ustring$(80,"|") '<-- irgendeine Trennlinie
    Print #fileNum,"" '<-- und noch eine leere Zeile

    Set ndoc = dc.getnextdocument(ndoc)
    Wend 'Not ndoc Is Nothing

    Close fileNum

    End Sub[/color]


    [/color][color=000099]Edit 25.09.07 13:40:[/color] Print wurde in die Schleife verlagert; nicht das Feld Signature_1 sondern das berechnete Feld Signature wird wegexportiert.


    So, jetzte aber Schluß, muss heute noch was arbeiten!


    [Blockierte Grafik: http://lexass.spb.ru/smilies/kos.gif]


    Wie du die Textdatei mit diesen Strings erstellst, weißt du?

    Ach so, lass mich raten...


    Im Knopf steckt @Command([MailForward])...


    Und die Standard Diskussions-DB wird als Formular-Sammlung benutzt.


    Michael, dafür ist Lotus Notes fast zu schade...


    Dabei kann man auch ohne Script, nur mit der Formelsprache tolle Sachen machen.


    Nur Mut!

    Ich hoffe, ich habe die Frage richtig verstanden...


    Die Lösung:


    nicht am Body-Feld in der Mail-Maske rummanipulieren,
    sondern in der Krankmeldung-Maske zwei "Berechnet beim Anlegen" Felder erstellen,
    eins mit @Today (vom Typ Datum),
    eins mit @Name([CN];@UserName) (vom Typ Text)


    Fertig!

    Hallo lapfandi,


    Hat der User mit der Rolle [AL] die Manager-Rechte?
    (Nur die Manager dürfen die ACL verändern!)
    Wenn ja, dann versuch' doch mal nach EnableRole und DisableRole die ACL zu save'n...



    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc=ws.CurrentDocument


    Dim session As New NotesSession
    Dim db As NotesDatabase
    Set db=session.CurrentDatabase
    Dim acl As NotesACL
    Dim entry As NotesACLEntry
    Set acl = db.ACL
    Set entry = acl.GetEntry( session.UserName )


    If entry.IsRoleEnabled("[AL]") Then
    If Not entry.IsRoleEnabled( "[Problemstatus]" ) Then
    Call entry.EnableRole( "[Problemstatus]" )
    [color=0000FF]Call acl.save[/color]
    Call uidoc.FieldSetText("Problemstatus","angefordert")
    Call entry.DisableRole( "[Problemstatus]" )
    [color=0000FF]Call acl.save[/color]
    End If



    Bin nicht sicher, ob's dann funzt.
    Aber probieren kann man es doch...

    Hallo Bobby,


    brauchst du wirklich nur die Anzahl der Antwort-Dokumente im Hauptdokument, mit der du rechnen kannst?


    Wie oft ändert sich diese Anzahl?
    Ist die Datenbank auf mehreren Server repliziert?


    Wenn nicht sehr oft und es gibt keine Repliken, dann würde ich folgendes machen.


    1. Statt einem berechneten Feld mit DbLookup ein "berechnet beim Anlegen" Feld "XY" vom Typ Zahl mit dem Wert 0 erstellen.


    2. Nach dem Speichern von Antwort-Dokument einen Script (Beispiel s. unten) laufen lassen, der das Parentdoc zu diesem Antwort-doc sucht.


    3. Parentdoc.XY = Parentdoc.Responses.Count


    4. Parentdoc speichern


    Fertig!


    P.S. Nicht vergessen, die direkte Löschung von Dokumenten sollte man dann im Datenbankscript verbieten. Statt dessen einen Button "Löschen" anbieten, der einen Agent ausführt, der unter anderem auch den Parentdoc sucht und nach der Löschung vom Antwort-doc das Feld XY aktualisiert.


    Viel Erfolg!


    spiderman


    Bist du sicher, dass bei der Beschriftung "Suchen" wirklich in den Hochkommas steht?


    Das ist eine Formel, evtl. kann Notes mit der Formel

    Code
    Suchen

    nichts anfangen...


    Und der Name der Aktion wird nur dann angezeigt, wenn die Beschriftung leer ist. (Der Name der Aktion wird übrigens ohne Hochkommas geschieben...)




    Edit:
    ...[color=990033]geschieben[/color]?
    Nee, [color=330099]geschrieben[/color]!
    ...oder doch, geschoben?


    Deutsche Sprache - schwere Sprache...


    spiderman
    Was meinst du, woher ich das weiß...
    Bin selbst schon auf die Nase gefallen...


    Freut mich, dass es geklappt hat.


    Schönes WE!

    codec


    Ist das doc beim Weitersenden auch noch im Frontend (zum Editieren) geöffnet?
    Wenn es so ist, dann kann der User das im Backend geänderte Dokument nicht mal speichern, kriegt eine nette Meldung, dass ihm die Rechte fehlen...


    Hab' so eine Erfahrung gemacht, die Lösung war: nicht im Weitersenden-Agent, sondern beim Querysave die Rechte verändern / wegnehmen.


    Nur so ein Tipp, vielleicht hilft's...

    OK, das ist das komplette Code für das kritische Feld.


    User kann das Feld nicht verlassen, wenn er die leere Zeilen nicht löscht.




    (Für die Prüfung auf 42 Zeichen baust du am besten eine Extra-Function, die auch 1 liefert, wenn die Länge > 42 ist.)