fantastisch, der catalog hat genau das erfüllt, wie ich's mir vorgestellt habe.
Zudem habe ich noch was in lotusscript lernen können. vielen dank für eure hilfe.
fantastisch, der catalog hat genau das erfüllt, wie ich's mir vorgestellt habe.
Zudem habe ich noch was in lotusscript lernen können. vielen dank für eure hilfe.
Ich dachte da eher an sowas:
Sub Initialize
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim aclentry As NotesACLEntry
Set db = ses.CurrentDatabase
Set acl = db.ACL
Set aclentry = acl.GetFirstEntry
Do Until aclentry Is Nothing
'Auslesen der Personen
Msgbox "Der ACL Eintrag lautet : --> " & aclentry.Name
Set aclentry = acl.GetNextEntry(aclentry)
Loop
End Sub
Alles anzeigen
Allerdings soll der Ausgelesene Wert nicht in einer Msgbox angezeigt werden, sondern einfach untereinander geschrieben angezeigt werden.
Hmm, vielleicht habe ich mich auch falsch ausgedrückt, was ich konkret brauche ist das:
Zugriffskontrollliste (ACL) als makier und kopierbare Liste mit allen Einträgen.
Die Gruppen brauche ich nicht genauer ausgelesen (Welche Personen den Gruppen angehören), sondern nur die Eintragsnamen (notesaclentry.name), allerdings tappe ich noch ein wenig im dunklen, wie ich so ein array (notesacl) in eine listenform konvertiere.
Ich brauche einfach nur eine Liste aller User, die auf eine Datenbank zugreifen können. Allerdings muss ich alle Elemente der Liste gleichzeitig kopieren, makieren, etc. lassen.
Hi zusammen,
ich stecke noch in den Basics von Lotus Notes (arbeite erst seit 3 Monate im Admin und Designer Bereich) und bräuchte eure Hilfe.
Wie kann ich möglichst simpel (zur not auch mittels Freeware) die ACL einer Datenbank exportieren (*.csv würde reichen)?
Vielen Dank für eure Tips und genießt die kurze Woche.
MfG,
Deathstar.
Naja ich dachte halt "zuerst soll er mir das Erste Dokument in der Liste suchen und dann das vorherige (bezogen aufs datum)" Daher dieses misslungene Konstrukt.
Alles in Allem habe ich jetzt (mittels ein paar If-Bedingungen) Abfragen gebaut, ob die objekte überhaupt existieren, sodass es nun wie gewünscht funktioniert.
Vielen lieben Dank für eure Hilfe und gedult, aber eine Frage habe ich noch:
Gibt es irgendwo vernünftige Tutorials, wie man schritt für schritt sich einarbeiten kann. Wie gesagt, ist neuland für mich.
Habe mal weiter experimentiert, code lautet nun:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkSpace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim docdate As NotesDateTime
Dim actdate As NotesDateTime
Dim altdoc As NotesDocument
Dim entryA As NotesViewEntry
Dim entryB As NotesViewEntry
Dim nav As NotesViewNavigator
Dim collection As NotesDocumentCollection
Set db = ses.CurrentDatabase
Set view = db.GetView("ProtokollTechnik")
Set doc = view.GetFirstDocument
Set docdate = New NotesDateTime(doc.Datumgruppengespräch(0))
Set actdate = New NotesDateTime(Now)
If Not doc Is Nothing Then
If actdate.DateOnly = docdate.DateOnly Then
Set nav = view.CreateViewNav
Set entryA = nav.GetFirstDocument
Set entryB = nav.GetPrevDocument(entryA)
Set altdoc = db.GetDocumentByID(entryB.UniversalID)
Call ws.EditDocument(False, altdoc)
Else
'Call ws.EditDocument(False, doc) ' im Lesemodus öffnen
End If
Else
Msgbox("Kein vorheriges Protokoll gefunden.")
End If
End Sub
Alles anzeigen
Als Fehlermeldung (wenn die ersten beiden bedingungen zutreffen) erhalte ich: Object Variable not set.
Der Fehler müsste in der Zeile: Call ws.EditDocument(False, altdoc) liegen, aber wie lautet der code richtig, da ich meiner ansicht nach ein objekt übergebe?!
Verzeiht bitte mein mehrmaliges nachfragen, hatte die Hilfe gar nicht auf dem Schirm
Vielen lieben Dank für die Hilfe.
Werde jetzt erstmal damit arbeiten können und hoffe, wenn ich wieder ein Problem habe, eure Hilfe nochmal in Anspruch nehmen zu können.
OK, "On Error Resume Next" ist auskommentiert, Fehlermeldung = Type Mismatch (Array vs. String).
Mit welchem Befehl bekomme ich denn jetzt meinen entsprechenden String doc.Datumgruppengespräch, sodass ich ihn auch erfolgreich vergleichen kann, meine idee ging in Richtung:
Dim docdate As NotesDateTime
Dim actdate As NotesDateTime
Set docdate = New NotesDateTime(doc.Datumgruppengespräch)
Set actdate = New NotesDateTime(Now)
If actdate.DateOnly <> docdate.DateOnly Then
Msgbox("Equal")
Else
Msgbox("Not Equal")
End If
Alles anzeigen
Aber wie gesagt: Type Mismatch als Fehlermeldung.
Wie lautet der korrekte Befehl für meine Abfrage?
Die Variable tmp ist konstant leer, obwohl ich ein Objekt erstellt habe. Daher meine Frage: Wieso ist das so?
Hmm, vielen lieben Dank für deine Hilfe, irgendwo hängts bei mir (verstehe den zusammenhang, was ich womit machen kann noch nicht korrekt).
Sub Click(Source As Button)
On Error Resume Next
Dim ws As New NotesUIWorkSpace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim docdate As NotesDateTime
Set db = ses.CurrentDatabase
Set view = db.GetView("ProtokollTechnik")
Set doc = view.GetFirstDocument
Set docdate = New NotesDateTime(doc.Datumgruppengespräch)
Dim tmp As Variant
tmp = docdate.DateOnly
Msgbox(tmp)
If tmp <> Date() Then
Msgbox(tmp)
End If
If Not doc Is Nothing Then
' Call ws.EditDocument(True, doc) ' im EditMode öffnen
Call ws.EditDocument(False, doc) ' im Lesemodus öffnen
End If
End Sub
Alles anzeigen
Wo genau liegt der Fehler und gibts irgendwo ne art Wiki?
Einen wunderschönen guten Morgen,
vielen Dank für die Hilfe bis hierhin, klappt soweit alles, wie es soll. Nun wollte ich alles erweitern um eine Überprüfung des Datums des zu öffnenden Dokumentes.
Sub Click(Source As Button)
On Error Resume Next
Dim ws As New NotesUIWorkSpace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = ses.CurrentDatabase
Set view = db.GetView("ProtokollTechnik")
Set doc = view.GetFirstDocument
Set uidoc = ws.EditDocument(True, doc)
Dim tmp As Variant
tmp = uidoc.FieldGetText("Datumgruppengespräch")
If tmp <> Date() Then
Msgbox(tmp)
End If
If Not doc Is Nothing Then
' Call ws.EditDocument(True, doc) ' im EditMode öffnen
Call ws.EditDocument(False, doc) ' im Lesemodus öffnen
End If
End Sub
Alles anzeigen
Erklärung: Das ermittelte Dokument "doc" enthält die Variable "Datumgruppengespräch". Diese soll überprüft werden, ob Sie dem heutigen Datum entspricht. Wo genau liegt mein Fehler (das Script führe ich dann danach fort mit wenn-dann-bedingungen, schleifen, etc.)
Ah, alles klar, so langsam kommen die Erläuchtungen.
Nun noch eine etwas andere (komplexere Frage):
Kann eine eine bestehende Rahmengruppe (zwei Rahmen enthalten) öffnen und direkt beim Öffnen in einem der beiden Rahmen eine bestimmte Ansicht laden?
Hilft mir an der Stelle nicht weiter.
Vielen dank für eure Bemühungen.
Sieht Perfekt aus, vielen Dank, verstehe auch, wo mein Fehler lag (variablen deklarieren), nun noch eine frage: das neu geöffnete dokument wird quasie im gleichen frameset geladen, kann ich das auch ohne bewerkstelligen, quasie Stand-alone?
*edit* Mir fällt gerade noch ein: kann ich überprüfen lassen (datum), dass das letzte dokument NICHT das gerade aktive ist und dann quasie das vorletzte dokument genommen wird?
besten dank für alle bemühungen.
Werde es denke ich mal per Script lösen,
wobei ich folgenden Code Ansatz erzeugt habe:
Sub Click(Source As Button)
Set db=session.CurrentDatabase
Set NotesView = db.GetView("ProtokollTechnik")
NotesUIWorkSpace.EditDocument(NotesView.GetLastDocument)
End Sub
Aber als Fehlermeldung erhalte ich dann immer: "Variant does not contain an object."
Wie gesagt, bin noch total unerfahren, was lotus programmierung angeht.
vielen dank.
Hallo zusammen,
habe versucht, über die Suchfunktion des Forums etwas zu finden, aber warsch. mit den falschen Suchbegriffen.
Folgende Situation:
Ich habe eine Maske (Gruppengesprächsprotokoll) und eine Ansicht (alle Gruppengesprächsprotokolle), nun möchte ich eine Aktion einfügen "letztes Protokoll", die mir automatisch das letzte Gruppengesprächsprotokoll VOR dem aktuellen Datum öffnet.
Da ich absolut neu in der Materie bin, fehlt mir ein wenig der Einstieg, bzw. die Kenntnis über meine Möglichkeiten.
Vielen Dank für eure Hilfe.