Anfängerfrage: Ansicht beim öffnen per InputBox einschränken

  • Hallo!


    Ich bin neu hier und hoffe mal ihr könnt mir helfen.


    Ich möchte eine Ansicht für eine Datenbank so programmieren, dass beim öffnen der Ansicht der Benutzer erst ein Anfangs- und dann ein Enddatum eingeben kann, dann sollen nur die Dokumente angezeigt werden, die in dem angegebenen Zeitraum liegen.


    Ich habe in "Initialize" Abfragen per Inputbox hinbekommen, aber ich kann bei der SELECT Abfrage nicht auf die Variablen zugreifen.


    Sub Initialize
    DatumVon = Inputbox ( "Beginn des Zeitraums", "Datum")
    DatumBis = Inputbox( "Ende des Zeitraums", "Datum")
    End Sub


    Da scheint dann auch was drinzustehen in den Datumsvariablen (per MesgBox geprüft)


    Wenn ich aber zum Beispiel DatumVon in einer Spalte anzeigen will, ist diese leer.


    Warum?


    Ich möchte die Dokumente im Zeitraum anzeigen und in einer Spalte das Alter in Tagen anzeigen.


    Geht das überhaupt? Wie kann ich das hinbekommen?


    Danke im Voraus für eure Hilfe!!!


    schlegmc :roll:

  • Da mir nichts einfaellt, eine Selektionsformel on the fly zu veraendern, wuerde ich das ganze statt dessen in einer Maske mit eingebetteter Ansicht versuchen und dort dann ueber single Category einschraenken.

  • Danke für die schnelle Antwort.


    Kann ich nicht einfach Variablen in der Selektionsformel zur Berechnung verwenden?
    Diese könnte ich ja beim Start durch Inputboxen vom Benutzer füllen lassen.


    Oder kann ich die Variablen in der Selektionsformel gar nicht verwenden?


    Ich dachte an sowas:


    SELECT form="Beschwerde" & @Created <= DatumBis & @Created >= DatumVon


    LG Marc

  • Kannst Du kurz ein Beispiel geben, wie ich sowas in etwa machen kann?


    Die Ansicht ist nicht privat, das wäre aber egal, ich könnte ja die SELECT-Formel immer beim Öffnen der Ansicht anpassen.

  • Hier mal ein Beispiel aus der Designerhilfe:


    Dies liesse sich vielleicht im QueryOpen der View machen.


    Ich würde auf alle Fälle mit POFU views arbeiten in diesem Fall, da dies sonst zu sehr mysteriösen Resultaten führen könnte.
    Beispiel:
    User A setzt das Datum zwischen 1.1.04 und 14.1.04 betrachtet die Daten.
    Gleichzeitig öffnet User B die gleiche View und wählt das Datum 23.3.03 bis 12.4.04 aus.
    => sobald User A die View aktualisiert ist er wahrscheinlich sehr erstaunt....


    Abgesehen davon, weiss ich auch nicht genau, was für Rechte man für diesen Code braucht (Designer?)


    gruss

  • Habe Deinen Code eingefügt und angepasst.


    Leider kann ich in der Designer-Hilfe keine "SelectionFormula" finden und LS makelt, der Member würde nicht existieren.


    Weiss jemand, wie ich genau an diese Select-Formel der Ansicht komme?


    Bringt mir vielleicht NotesDatabase.search was?

    • Offizieller Beitrag

    "SelectionFormula" ist neu in Version 6.x


    Gruß
    Dirk

    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

    • Offizieller Beitrag

    sieht schlecht aus, da habe ich mir unter 4.x und 5.x schon die Zähne ausgebissen.


    Mit einer FTSuche sollte es eventuell klappen.
    Schreibe Dir die Datumswerte in die Notes.ini, in etwa so.
    Aktion in der Ansicht

    Code
    @If(@Environment("ViewSelected")="1";@Command([ViewShowOnlySelected])& @SetEnvironment("ViewSelected";"0");"");Eingabe:=@Implode(@Prompt([OkCancelListMult]:[NoSort]; "Filter"; "Bitte ein Datum eingeben"; "..."; @Text(@Today));",");ENVIRONMENT DatumVon:=Eingabe;Eingabe:=@Implode(@Prompt([OkCancelListMult]:[NoSort]; "Filter"; "Bitte ein Datum eingeben"; "..."; @Text(@Today));",");ENVIRONMENT DatumBis:=Eingabe;@Command([ToolsRunMacro];"(DatumSuche)");@Command([ViewShowOnlySelected]);ENVIRONMENT ViewSelected:="1";@Command([RefreshHideFormulas])


    Und dann noch der SuchAgent "(DatumSuche)"

    Code
    datum1 := @Environment("DatumVon");
    Datum2 := @Environment("DatumBis");
    SELECT DatumVon >= @TextToTime(Datum1) & DatumBis =< @textToTime(Datum2)


    Gruß
    Dirk

    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