View mit Datum von bis

  • Hallo,
    ich stecke wieder fest. Ich moechte mir einen View anzeigen lassen und das Datum der einzelnen Datensaetze flexibel bestimmen.
    So ungefaehr:


    Von:= inputbox(„bitte Datum eingeben“…)
    Bis:= inputbox(„bitte Datum eingeben“…)


    @rufe View auf(Select von < Datum < bis)


    So ist das sicherlich Traumdenken, aber ich brauche so eine Loesung.


    Gibt es die Moeglichkeit einen View in dieser Art zu gestalten, dass immer zwei Daten eingegeben werden muessen?
    Fuer alle Tipps dankbar.


    Gruss
    Seba

  • Hi und danke.
    Ich habe es versucht mit:


    @Command([OpenView];"TestOfDate");
    @SetViewInfo([SetViewFilter];"05/31/2007";"RegisterDate";1)


    Irgendwas ist noch nicht richtig, denn der View ist leer, doch es gibt Eintraege mit 05/31/2007


    Die Formel liegt auf einem Button in Navigator, doch der View wird separat geoeffnet, nicht neben dem Navigator.


    Kann ich formelmaessig irgendwie eine Inputbox hinbekommen, die beim Oeffnen des Views nach dem Datum von und dem Datum bis fragt? Oder kann ich irgendwie sonst zwei Variabeln hinbekommen, die "von" und "bis" jedes Mal abfragen?


    Gruss und 1000Dank
    Seba

    • Offizieller Beitrag

    in einer View wirst Du es so nicht hinbekommen.


    Mal ein paar Ansätze:


    1. ein Agent setzt ein Falg bei allen Dokumenten, die in der Zeitspanne leigen (Nachteil, es werden die Dokumente verändert und ist nicht Multiuserfähig)


    2. ein Agent verschiebt die betroffenen Dokumente in einen privaten Ordner


    3. eingebettete Ansicht , kategoriesiert nach dem Datum. Dann mit Einzelne Kategorie anzeigen arbeiten (Nachteil, es kann immer nur ein Tag angezeigt werden.


    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

  • Hi Dirk
    Ansatz 2 hoert sich gut an. Meint "Verschieben" aus einer Ansicht herausnehmen?
    Kann ich die Datensaetze auch in einen Ordner kopieren, so dass die Originalansicht nicht veraendert wird?
    Bei einem Agenten muss man dann sicher etwas in Lotus Script schreiben oder? [Versuche mich immer davor zu druecken ;-)]


    Wie sieht es aus, wenn ich ein neues Formular anlege mit einem embeddedten View. Auf dem Formular sind dann zwei Felder (von und bis) und ein Button. Waere es nun moeglich, dass ich per Button click den embeddedten View angezeigt bekommen mit der Datumsauswahl? Mir fehlt da irgendwie der Ansatz.


    Danke
    Seba

    • Offizieller Beitrag

    in der Ansicht bleiben die Dokumente natürlich drin. Der Agent entfernt alle Dokumente aus dem Ordner und fügt dann die gefundenen Dokumente dem Ordner hinzu (NotesDocumentCollection.PutAllinFolder).


    Gruß
    Dirk

  • Vielleicht bin ich auf dem Holzweg, aber ich habe ein Formular mit eingebettetem View, 3 Feldern und einen Button.
    Wenn ich die View Selection so schriebe:


    Jahr :="2007"
    MonVon :="05";
    MonBis :="06";
    SELECT MasterID !="" & Year =jahr & Monat>=MonVon & Monat<=MonBis


    Dann geht das auch. Fuer 2007, 05, 06 moechte ich aber jetzt die Felder auf dem Formular benutzen.
    Geht das irgendwie, wenn ja, waere das galueb ich nicht schlecht.


    Jemand eine Idee?


    Danke
    Seba

    • Offizieller Beitrag

    ... dann müsstest Du aber einen Ordner einbetten, der privat bei Erstbenutzung wird.


    Dann brauchst Du auch keinen Selcet mehr sondern machst eine FT-Suche. Zu dem Thema hatten wir erst letzte Woche etwas im Forum, eventuell hilft Dir der Code weiter.


    Gruß
    Dirk

  • Hi und danke. Ich glaube, das geht in die richtige Richtung.


    Zitat

    ... dann müsstest Du aber einen Ordner einbetten, der privat bei Erstbenutzung wird.


    Habe dafuer ein Folder Pane genommen. Weiss aber nicht, was ich damit genau machen muss.


    Der Beitrag von letzter Woche ist ja fast genau mein Thema. Habe ihn zuvor nicht gefunden. Sorry.
    Wenn ich Querry und Script (auf Button) ausfuehre, passiert nichts. Die Querry ist aktualisiert (Ich glaube ist auch richtig - Keine Fehlermeldung) aber mit dem Script passiert nichts.



    Was mache ich falsch? Wie kann ich nun den View aktualisieren? Was muss ich mit "j" machen? Ich habe es schon (naiver Weise) mit call.ftsearch versucht - ging auch nicht.
    Hift mir vielleicht mein embeddeb Folder Pane oder kann ich bei meinem embedded view beiben?


    Bin glaube ich kurz davor komme aber nicht weiter.


    Danke
    Seba

    • Offizieller Beitrag

    j ... ist nur temporär und zeigt an, wie viele Dokumente gefunden wurden.


    Schalte mal den Debugger ein und halte das Script bei Set doc = view.GetFirstDocument an. Was steht in der Variable j?
    Steht hier eine 0, dann vereinfache mal Deine Suche. Liegt eventuell ein veralteter FT-Index über der DB?


    In der While-Schleife musst Du noch etwas mit den Dokumenten machen.


    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

  • Hi danke fuer Antwort


    j hat den Wert 7 das bedeutet wohl, das 7 Dokumente gefunden wurden. Habe die Suche vereinfacht. Suche nur nach einer Buchstabenkombination ("GmbH") - zum Testen.
    Das ich in der Whileschleife noch was mit den Doc machen muss habe ich befuerchtet.


    Letztendlich will ich den View mit den 7 Dokumenten (am besten eingebettet) angezeigt bekommen. Mein derzeitig eingebetteter View veraendert sich aber nicht.


    Wie kann ich diese 7 Dokumente in meinem View oder Ordner anzeigen?


    Gruss
    Seba

  • Wie Dirk eingangs bereits schrieb: mit der PutAllInFolder-Methode in einen Ordner deiner Wahl kippen. Den korrekten Aufruf findest du in der Designer-Hilfe...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hi
    Leider komme ich nicht drauf, was ich in die Whileschleife schrieben muss. Daher habe ich es mal so probiert:


    Sub Click(Source As Button)

    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection

    Set db = session.CurrentDatabase
    Set collection = db.FTSearch( "ABC", 0 )
    Call collection.PutAllInFolder( "Ablage" )

    End Sub


    Das ist auch ganz ok, doch leider bezieht sich die Suche wohl auf die ganze Datenbank und nicht auf einen View (damit koennte ich aber leben).
    Leider werden die Dokumente mit diesem Script aber verschoben und nicht kopiert. Wenn ich die dann wieder aus den "Hilfs"Folder loesche, sind sie ganz weg.
    Habe mir vorgestellt, EINEN Folder zu haben, in den man z.B. einen Datumsbereich hineinkopiert, den kann man sich dann anschauen, und wenn man einen neuen Datumsbereich kopieren will, wird der Inhalt des Folder vorher automatisch geloescht. Oder so aehnlich.


    Meint ihr, dass kann man auf diesem Weg erreichen?


    Nochmals danke


    Seba

  • Klar sucht er in der ganzen DB, denn du führst die Suche ja auch auf die DB aus und nicht wie vorher auf einen View.


    Und wie entfernst du nachher die Dokumente aus dem Folder ? Mit RemoveFromFolder oder Remove ?

  • Hi und danke fuer die Muehe. Ich hoffe ich nerve nicht zu stark.


    Um in einem View zu suchen habe ich


    1. Set db = session.CurrentDatabase
    2. Set view = db.GetView("TestOfDate")
    3. Set collection = view.FTSearch( "IPS", 0 )
    4. Call collection.PutAllInFolder( "Ablage" )

    versucht.
    Aber in 3. bekomme ich beim Speichern die Fehlermeldung:
    "SET may only be used on class instance assignments"


    Wenn ich "RemoveFromFolder" einbaue, werden die Dokumente doch aber nicht wieder zurueck in die View geschoben aus der sie kommen sondern geloescht - oder?


    Danke
    Seba

  • Zitat


    Aber in 3. bekomme ich beim Speichern die Fehlermeldung:
    "SET may only be used on class instance assignments"


    Schau doch bitte in die Hilfe

    Code
    numDocs& = notesView.FTSearch( query$, maxDocs% )


    Zitat


    Wenn ich "RemoveFromFolder" einbaue, werden die Dokumente doch aber nicht wieder zurueck in die View geschoben aus der sie kommen sondern geloescht - oder?


    Man kann keine Dokumente in eine View schieben. Entweder werden sie durch die Auswahlformel in der View angezeigt, oder halt nicht. Im Gegensatz eben zu einem Folder, dem ein Dokument im eigentlichen Sinne angehören (Stichwort: $FolderRef) kann. Entfernst du ein Dokument aus einem Folder, kann es durchaus noch in der DB selbst sein und damit in Ansichten angezeigt werden. Entfernst du ein Dokument aus einer View, d.h. löschst es, ist es logischerweise auch in keinem Ordner mehr drin Ok, in $Trash schon noch, aber das zählt jetzt nicht...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hi
    Habe die Suche jetzt wohl hinbekommen (mit einfacher Query).


    Bin jetzt dabei die Daten aus dem Folder herauszubekommen. In der Hilfe heisst es dazu.


    Code
    Dim doc As NotesDocument
    '...set value of doc...
    Call doc.RemoveFromFolder( "Jambalaya" )


    Ich habe LotusScript noch nicht ganz durchschaut.
    Wie kann ich in diesem Zusammenhang den Wert der Variable doc so setzen, dass ich auf die Daten im Folder verweise.


    Es nimmt schon Formen an. Soweit vielen Dank


    Seba

  • Entschuldige bitte, aber in der Hilfe steht doch alles drin, was man braucht. Ehrlich gesagt, verstehe ich deine Schwierigkeiten nun überhaupt nicht...


    1) Geht der User direkt in den Ordner, hilft bekanntermaßen ein Strg+A, DEL und ggf. ein F9 hinterher


    2) Sollen alle Dokumente per Single-Click-Solution (a.k.a Button) gelöscht werden und falls LotusScript sich überhaupt nicht erschließen mag, geht man per Formel dran.

    Code
    @Command([EditSelectAll])@Command([Clear])


    Auch hier muss ggf. ein F9 nachgeschoben werden


    3) Sollte LotusScript nun doch nicht so schwierig sein wie vermutet, gibt es eine lange und eine kurze Version.
    3.1) Die lange Version:

    Code
    Dim session As New NotesSessionDim db As NotesDatabaseDim view As NotesViewDim doc as NotesDocumentSet db = session.CurrentDatabaseSet view = db.GetView("Christmas")Set doc = view.GetFirstDocumentWhile Not doc Is NothingCall doc.RemoveFromFolder("Christmas")Set doc = view.GetNextDocument(doc)Wend


    3.2) Die kurze Version:


    Damit solltest du dann aber wirklich mehr als genug Infos haben, um das zum Ende zu bringen...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl