Beiträge von JustDoIt

    Hallo,


    ich hab jetzt noch eine Lösung, ist aber auch "gebastel". Die Lösung basiert auf einem Dokument im Backend, in dem ich den Link erzeuge. Das wird dann im Frontend geöffnet, der Doc-Link in die Zwischenablage kopiert und dann wieder geschlossen.


    Die Zwischenablage kann ich dann ins Richt-Text-Feld kopieren, wo der Link landen soll.


    Der einzige Vorteil diese Lösung ist für mich, daß ich das aktuelle vom Anwender bearbeitete Formular nicht speichern muss, um es zu schließen und wieder zu öffenen. Der Anwender hat somit immer noch die Möglichket seine Änderungen zu verwerfen.


    Hier mal der Code dazu:


    Set docs = ws.PickListCollection(3, False, "server", "X.nsf", "Ansicht", "Titel", "Prompt")
    If docs.Count = 1 Then
    [color=00CC00]' Neue Dokument im Backend anlegen[/color]
    Set newdoc = New NotesDocument (ses.CurrentDatabase)
    newdoc.Form = "($Dummy)"
    [color=00CC00]' RichtText-Field für den Link anlegen[/color]
    Set rtfield = New NotesRichTextItem(newdoc, "DMY_LINK")
    [color=00CC00]' Link einfügen[/color]
    Call rtfield.AppendDocLink(docs.GetFirstDocument, "Link")
    [color=00CC00]' Dokument speichern[/color]
    Call newdoc.Save(True, False, True)
    [color=00CC00]' Dokument im Frontend öffnen[/color]
    Set tempuidoc = ws.EditDocument(True, newdoc)
    [color=00CC00]' Link in Zwischenablage kopieren[/color]
    Call tempuidoc.GotoField("DMY_LINK")
    Call tempuidoc.SelectAll
    Call tempuidoc.Copy
    [color=00CC00]' Frontend wieder schließen[/color]
    Call tempuidoc.Close
    [color=00CC00]' Backend-Dokument wieder löschen[/color]
    Call newdoc.Remove(True)

    [color=00CC00]' Ins aktuelle Dokument ins richtige Feld einfügen[/color]
    Call uidoc.GotoField("LINK")
    Call uidoc.FieldSetText("LINK", "")
    Call uidoc.Paste
    End If


    Gruß
    Dirk

    Hallo,


    grundsätzliche musst du dir überlegen, ob die Datenbank mehrere Replikan haben könnte. Dann wird es schon etwas schwieriger die Nummer über alle Repliken eindeutig zu halten.


    Ich vermute mal, daß die Nummer auch für den Anwender einigermaßen sinnvoll lesbar sein soll, denn sonst kannst du ja die UID des Dokuemntes nehmen. :D


    Im einfachsten Fall kannst du z.B. im Query-Save oder im PostSave-Event der Maske eine Nummer aus einem Feld in einen Profildokument lesen, diese Nummer inkrementiert und wieder ins Profil und in die Maske schreiben.


    Gruß
    Dirk

    Hallo,


    ok die Variante kenne ich. Gefällt mir aber nicht sonderlich. :D


    Gibt es denn neben dem Erzeugen des Links im Backend eine andere Möglichkeit?


    Evtl. über die Zwischenablage? Also Link irgendwie in die Zwischenablage basteln und dann über NotesUiDocument.Paste ins gewählte Feld schreiben?


    Gruß
    Dirk

    Hallo,


    geht mal im Designer in die Liste der Ansichten.


    Dort eine Ansicht deiner Wahl öffnen. In den Eigenschaften der Ansicht auf das "i" klicken. Dann findest du eine Checkbox "Vorgabe beim ersten Öffnen der DB" (glaube). Mach da mal einen Hacken und dann Ansicht speichern.
    Jetzt hast du eine Default-Ansicht. :D


    Gruß
    Dirk

    Hallo,


    eine Möglichkeit wäre, mit Leserfeldern zu arbeiten. Dann sieht jeder Anweder nur die Dokumente, in denen er auch in mindestens einem Leserfeld direkt oder indirekt (Gruppe, oder Rolle) drinsteht.


    Gruß
    Dirk

    Hallo,


    ich habe folgende Problematik:


    In einer Maske soll der Anwender aus einer Ansicht (z.B. über PickList...) ein Dokument aus einer Datenbank wählen können.


    In einem RichTextFeld in der Maske soll nun ein Doc-Link auf das gewählte Dokument erzeugt werden.


    Jetzt kann ich natürlich über die RichtTextItem-Class mit AppendDcoLink im BackEnd einen Link im entsprechenden Feld erzeugen. Aber das sieht der Anwender leider nicht. Erst nach Schließen und Öffnen des Dokuments ist der Link zu sehen. Also nicht schön.


    Gibt es einen Weg, einen Doc-Link so zu erzeugen, daß er direkt in der Maske angezeigt wird?


    Gruß
    Dirk

    Hallo zusammen,


    hat sich schon erledigt. Ich hätte vielleicht den Debugger einen hauch früher bemühen sollen. :roll:


    Der Fehler kam aus einen anderen Ecke und nicht vom "result.execute".


    Um genau zu sein war es ein Tippfehler im Varaiblennamen bei folgendem Befehl: view.GetDocumentByKey(SearchKey, True).
    Da macht die Fehlemldung plötzlich Sinn. :D


    Gruß
    Dirk

    Hallo zusammen,


    ich versuche in einem Lotus-Script per ODBC auf die Daten einer View in einer Oracle-DB zuzugreifen.


    Hier mal der relevante Code:


    ' ODBC-Verbindung öfffnen
    Call Con.ConnectTo("DB","user","password")
    Set Qry.Connection = Con
    Set Result.Query = Qry

    'Abfrage formulieren
    Abfrage = "SELECT * FROM mein_view"
    Qry.SQL = Abfrage

    ' Abfrage ausführen
    If Not result.Execute Then
    Messagebox result.GetExtendedErrorMessage,, result.GetErrorMessage
    Exit Sub
    End If


    So, und hier kommt das Problem. Wenn ich diese Abfrage ausführe, erhalte ich folgende Fehlermeldung:


    "Invalid key value type"


    Ich habe die ODBC-Verbindung berreits in Access getestet, die ist soweit im grünen Bereich.


    Hat jemand eine Idee woran das liegen könnte und wie ich das umgehen kann?


    Gruß
    Dirk


    Hallo,


    hast du dich mal mit der NotesEmbeddedObject class beschäftigt?


    Ich habe allerdings auch keine Ahnung, wie du an die Information kommst, welches Attachment gerade markiert ist.


    Gruß
    Dirk

    Zitat


    taurec schrieb:
    Ich sehe da nur folgende Möglichkeiten:


    Entweder du löst die Gruppen in einem zusätzlichen Feld im Dokument auf, du verschiebst die Dokumente in entsprechende Ordner je User oder aber du verwendest hier tatsächlich private Ansichten


    Hallo,
    hmmm, es sieht so aus, als käme ich nicht um das Auflösen der Gruppe herum, da ich selbst beim Verschieben in einen Ordner-je-User, wissen muss, wer jetzt alles in der Gruppe steckt.


    BTW: Gibt es eine Build-In-Funktion, um Gruppen aufzulösen, oder muss ich das "von Hand" machen.


    Gruß
    Dirk

    Hallo,


    klar, der User sieht nur die Dokumente, bei denen er auch im Leserfeld steht. Nur benötige ich eine Ansicht, in der eine Untermenge diese Dokumente angezeigt wird.
    Es sollen nur die Dokumente angezeigt werden, bei denen der User aktuell zuständig ist. Dies ist abhängig vom Status des Workflows.


    Mein Problem ist, daß in dem Feld, welches die aktuellen Autoren definiert, Gruppen auftauchen können. Wenn ich danach Kategorisiere, taucht natürlich die Gruppe als Kategorie auf.


    Gruß
    Dirk

    Hallo,


    ich habe folgendes Problem:


    Ich habe Dokumente in einem Workflow, die ein User lesen darf (über Leserfelder). Einen Teil dieser Dokumente muss der User abhängig vom Status im Workflow bearbeiten.


    Diese Dokumente möchte ich in einer Ansicht darstellen.


    Es gibt auch ein Autorfeld in den Dokumenten, anhand der geregelt wird, wer im Aktuellen Workflow-Schritt das Dokument bearbeiten darf.


    Mein erster Ansatz war eine kategorisierte Ansicht, die ich in einer Maske einbette mit der ShowsSingleCategorie-Nummer.


    Nun kann in dem Autorenfeld allerdings auch eine Gruppe enthalten sein. Der User hat somit, sofern er Mitglied der Gruppe ist, Autorrecht und kann das Dokument bearbeiten.
    An der Stelle funktioniert natürlich die Kategorisierte Ansicht nicht.


    Hat jemand einen heißen Tip, wie ich das Problem lösen kann?


    Gruß
    Dirk

    Hallo,


    ich möchte das Dokument nicht im PostSave schließen, weil das z.B. beim Drücken von Strg-S zwar speichern, aber nicht schließen soll.


    Es soll nur dann schließen, wenn der Anwender explizit die Schaltfläche dafür drückt.


    Gruß
    Dirk

    Hallo,


    ich bin gerade über folgendes Problem gestolpert:


    In einer Maske habe ich eine Aktion mit folgender Formel hinterlegt:


    @If(
    @Command([FileSave]);
    @Command([CloseWindow]);
    ""
    )


    Weiterhin hat die Maske im OnQuerySave ein bißchen Code, der überprüft, ob die Maske so gespeichert werden kann.


    Soweit funktioniert das ganze auch.


    Packe ich o.g. Formel nun in eine gemeinsame Aktion und nehme diese gemeinsame Aktion mit in die Maske auf, so wird beim anklicken der Aktinsschaltfläche die Maske geschlossen, auch wenn der QuerySave mit Continue=False eingetlich dies verhindern sollte.


    Daß der QuerySave ausgeführt wird kann ich sowohl mit dem Script-Debugger überprüfen als auch an der MessageBox sehen, die dort angezeigt wird.


    Kann jemand das nachvollziehen und oder hat eine Idee, wie ich eine gemeinsame "Save and Close"-Aktion erstellen kann, die durch den QuerySave zuverlässig unterbrochen wird?


    Gruß
    Dirk

    Hallo zusammen,


    ich habe in einer Maske die manuelle Versionierung eingeschaltet.
    Beim Speichern einer neuen Version wird das alte Dokument zum Tochter-Dokument.


    Ich würde gerne in einer Ansicht Versionsnummern der Dokumente anzeigen. Bietet Notes das Out-Of-The-Box oder muss ich ein Feld in die Maske einbauen, welches ich selber inkrementiere.


    Wenn ja, wie kriege ich mit, ob ein Dokument als neue Version gespeichert wird?


    Gruß
    Dirk

    Hallo zusammen,


    danke euch beiden für die Info. Dann werde ich es erstmal so lassen.


    Oder wäre es evtl. mögliche eine LotusScript-Function aus einer Bilbiothek aus der Spalten-Formel aufzurufen?


    Sorry, wegen des Doppeltpost, da war mein Finger zu schnell. :D


    Gruß
    Dirk

    Hallo,


    den Satz: "Jetzt, wo die Dokumente in einem Frame angzeigt werden habe ich zu dem 'Auffüllzeitpunkt auf das uidoc-Objekt keinen Zugriff." verstehe ich nicht wirklich.


    Wird das neue Dokument weiterhin mit ComposeDocument() erzeugt?
    Und wie äußert sich der nicht vorhandene Zugriff?
    Ist evtl. nur der EditMode nicht gesetzt?


    Gruß
    Dirk