Letztes Dokument einer Abfrage via Aktionsknopf öffnen

  • 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.

    • Offizieller Beitrag

    Protokolle werden doch nie für die Zukunft erstellt, d.h. du kannst das neuste Dokument öffnen.


    Einfach mit @Funktionen:
    @Command( [OpenDocument], ...)
    die DocumentUniqueID könntest Du eventuell mit einem @DBColumn ermitteln.


    Eleganter per Script:
    in einer Ansicht das erste Dokument ermitteln (NotesView.GetFirstDocument) und dann per NotesUIWorkSpace.EditDocument(...) in den Frontendbereich holen.


    Gruß
    Dirk


    %edit
    Willkommen im Forum.

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Werde es denke ich mal per Script lösen,


    wobei ich folgenden Code Ansatz erzeugt habe:

    Code
    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.

    • Offizieller Beitrag


    Ohne Garantie auf Schreibfehler, d.h. vorher testen!


    Gruß
    Dirk

  • 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.

  • 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?


    Code
    @Command([OpenFrameset];"Maßnahmen"+[OpenView]; "MTO");


    Hilft mir an der Stelle nicht weiter.


    Vielen dank für eure Bemühungen.

  • Code
    @Command([OpenFrameset];"Maßnahmen"+@SetTargetFrame("Massnahmen_Ansicht")+[OpenView]; "MTO");


    wird nicht geschluckt :(


    ich danke euch wirklich vielmals für die bemühungen.

  • Was bitte sollen die + zwischen den Befehlen ?


    Mehrere Befehle werden durch ; getrennt


    Code
    @Command([OpenFrameset];"Maßnahmen");
    @SetTargetFrame("Massnahmen_Ansicht");
    @Command([OpenView]; "MTO");
  • 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.



    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.)

  • Hmm, vielen lieben Dank für deine Hilfe, irgendwo hängts bei mir (verstehe den zusammenhang, was ich womit machen kann noch nicht korrekt).



    Wo genau liegt der Fehler und gibts irgendwo ne art Wiki?

    • Offizieller Beitrag

    und Du bekommst keinen Fehler in der Zeile
    NotesDateTime(doc.Datumgruppengespräch)
    dort wird versucht ein Array zu übergeben, obwohl NotesDateTime einen String erwartet.


    Gruß
    Dirk

    • Offizieller Beitrag

    ach habe gerade gesehen, dass Du mit On Error resume next arbeitest.


    Gruß
    Dirk

  • Ganz einfach:


    Weil du auftretende Fehler nicht behandelst sondern sie einfach ignorierst.


    (On Error Resume Next)


    Und da du den NotesDateTime mit nem ungültigen Eingabewert fütterst (Array statt Text), ist das Objekt eben leer.


    Bitte bau doch mal ne vernünftige Fehlerbehandlung ein, dann weisst du auch wo welcher Fehler auftritt.

  • 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:



    Aber wie gesagt: Type Mismatch als Fehlermeldung.


    Wie lautet der korrekte Befehl für meine Abfrage?