Autor Thema: Ansicht über Zeitraum einschränken  (Gelesen 8732 mal)

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Ansicht über Zeitraum einschränken
« am: 19.12.05 - 13:22:43 »
Hallo zusammen,

ich habe bereits die Boardsuche bemüht aber nicht wirklich das gefunden was mit weitergeholfen hätte. Lediglich einen 3 Jahre alten, trotzdem sehr interessanten Thread zu R5.

Ich habe eine Ansicht erstellt und diese als eingebettete Ansicht in eine Maske verpflanzt. Am Anfang der Maske soll es über zwei Datumsfelder möglich sein ein "Von" und ein "Bis" Datum zu definieren.

In der eingebetteten Ansicht sollen dann nur noch jene Dokumente berücksichtigt werden die innerhalb dieses Intervalls liegen.


Ist das mit Notes Domino 6 möglich?


Viele Grüße und besten Dank,

Andreas

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Ansicht über Zeitraum einschränken
« Antwort #1 am: 19.12.05 - 13:24:08 »
Nein. Das geht in Richtung dynamischer Ansichten.
Was gehen könnte wäre eine Lösung mit einer dbSearch und eine spofu folder...

evtl. gibts noch weitere Möglichkeiten...
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Ansicht über Zeitraum einschränken
« Antwort #2 am: 19.12.05 - 13:40:17 »
geht mit @SetViewInfo 
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Ansicht über Zeitraum einschränken
« Antwort #3 am: 19.12.05 - 13:43:44 »
Wie?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #4 am: 19.12.05 - 13:55:27 »
Ähm..

könntet ihr mir das etwas genauer erklären? Evtl. an einem Beispiel?

die Auswahlformel für die view lautet:
SELECT (form = "MainTopic" | form = "Prototyping2") | @IsResponseDoc

dann landet sie als embedded view in einer Maske.

Ebenfalls in der Maske zwei Felder die Start- und Endwert des Intervalls definieren.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Ansicht über Zeitraum einschränken
« Antwort #5 am: 19.12.05 - 14:03:10 »
Hallo Andreas:

Die Auswahlformel der View als solche liefert dir die Grundgesamtheit der Dokumente; jetzt willst du noch einen Filter über diese Dokumente legen.

Ich habe es selber noch nicht ausprobiert, aber es sollt mit @SetViewInfo funktionieren.

Im Normalfall filterst du nach einem Suchbegriff; z.b. Alle Kunden mit einem bestimmten Firmennamen

@Command([OpenView];"Kunden");
@SetViewInfo([SETVIEWFILTER];"Acme AG";"Firmenname";1)

wobei die Ansicht Kunden alle deine Kunden enthält und die erste Spalte nach Kundenname kategorisioert ist.

Jetzt stelle dir eine ähnliche Ansicht vor, wo in der ersten Spalte das Datum steht, was du filtern möchtest.

Statt "acme AG" steht dann in etwas folgendes in der Suchanfrage

Datum <= SucheStartDatum & SucheEndDatum <= Datum

wobei SucheStart und End deine beiden Felder darstellen.

da solltest du mal ein bisschen mir rumprobieren
« Letzte Änderung: 19.12.05 - 14:25:29 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ansicht über Zeitraum einschränken
« Antwort #6 am: 19.12.05 - 14:10:37 »
Ob das aber was wird unter den gegebenen Anforderungen ?

Zitat
Filtert in Standardgliederungsansichten eine Ansicht, um nur die Dokumente einer angegebenen Kategorie anzuzeigen.
Kategorie haben wir hier ja nicht.

Zitat
Filterzeichenfolge
Text. Schlüssel, der festlegt, welche Dokumente in einer Ansicht angezeigt werden. Wenn diese Zeichenfolge in der in Spalte angegebenen Spalte vorhanden ist, wird das Dokument in der Ansicht angezeigt.
Text haben wir auch nicht ...

Eigentlich bietet @SetViewInfo genau das, was in der sowieso schon eingebetteten Ansicht SingleCategory erledigt.

Das "richtige" SetViewInfo ist aus meiner Sicht in R6 und R7 noch nicht enthalten.

Bernhard

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #7 am: 19.12.05 - 14:46:14 »
okay, ich werd damit was versuchen, danke Ulrich.

Doch Kategorien haben wir schon...

ich habe jetzt aktuell 3 embedded views in der Maske. Jede von den dreien ist in der ersten Spalte nach Produkten kategorisiert.

Hoffe das funktioniert auch mit mehreren embedded views in einer Maske.

werd jetzt mal ein wenig tüfteln... schreib euch dann mit welchem Erfolg.

Danke,

Andreas

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #8 am: 21.12.05 - 09:19:27 »
Hallo Ulrich,

was ich auch probiert habe, es wollte nicht so recht funktionieren. Wie ich gerade gesehen habe hast du weite Teile deines Postings durchgestrichen. Heißt das daß es doch nicht möglich ist den Einzugsbereich der Dokumente auf ein Zeitintervall zu begrenzen? Such nämlich immer noch nach einer Lösung.

Viele Grüße,

Andreas

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Ansicht über Zeitraum einschränken
« Antwort #9 am: 21.12.05 - 09:43:31 »
Hi,

meines Wissens ist es nicht möglich Ansichten auf einen Zeitraum zu beschränken, denn du variabel eingeben kannst. Das würde eine dynamische Ansicht bedeuten und das kann Notes nicht.

Meine Vorposter haben das ja schon hinreichend erörtert.

Die einzigste Alternative hat dir umi in Antwort #1 genannt. Die Dokumente über NotesDatabase.Search suchen und dann in einen SPOFU (shared, private on first use) - Ordner verschieben.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #10 am: 21.12.05 - 10:16:08 »
Guten Morgen Axel,

gerade komme ich mir wieder ziemlich dumm vor. Ich weiß nicht mal wo anfangen. Notesdatabase.search spofu ? Über einen Agenten? Wo kommt die eingebettete Ansicht ins Spiel? Gibt es ein -einigermaßen- simples Beispiel dafür an dem ich mich orientieren kann oder ist das alles sehr aufwändig? In letzterem Fall müsste ich den Gedanken wohl fallen lassen.

mit leicht besorgten Grüße aus Landshut,

Andreas

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #11 am: 21.12.05 - 10:47:12 »
In der Hilfe habe ich ein Beispiel gefunden,


Dim db As New NotesDatabase("Katmandu","somedocs.nsf")
Dim collection As NotesDocumentCollection
Dim dateTime As New NotesDateTime(_
Cstr(Datenumber(2000, 5, 1)))
Set collection = db.Search("@IsResponseDoc",dateTime,0)


Über den Parameter notesDateTime wird aber das Datum festgelegt ab dem (Untergrenze) die Dokumente in die Collection aufgenommen werden sollen. Das erste Problem wäre schon mal auch eine Obergrenze festzulegen.

Im zweiten Schritt müsste ich die Collection in den SPOFU verschieben, oder? Wie stellt man das an?

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Ansicht über Zeitraum einschränken
« Antwort #12 am: 21.12.05 - 11:42:37 »
Hi,

die Suche über den dateTime-Parameter würde ich nicht machen, dass kann u.U. zu Problemen führen, da hier das Erstell- bzw. Geändert-Datum verwendet wird und nicht ein Feldwert.

So könnte ein Beispiel aussehen, dass alle Dokumente findet, die im Datumsfeld im Bereich vom 2.1. - 30.06. 2005 liegen

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

strSearchFormula = {SELECT Datumsfeld > @TextToTime("01.01.2005") & Datumsfeld < @TextTotime("01.07.2005")}
Set db = session.CurrentDatabase
Set collection = db.Search(strSearchFormula, Nothing,0)
...


Das Ergebnis lässt sich mit einem Befehl in einen Ordner verschieben.

Call notesDocumentCollection.PutAllInFolder( folderName$ [, createonfail ] )

Wobei ich die Erfahrung gemacht habe, dass der Ordner bestehen muss. Das war allerdings zu R5-Zeiten. Bei R6 musst du es ausprobieren.


Über einen Agenten?
Du kannst das auch über einen Aktionsbutton machen.

Wo kommt die eingebettete Ansicht ins Spiel?

Die kommt hier garnicht ins Spiel. Einen Ordner kannst du nichtg einbetten.


Axel
   
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ansicht über Zeitraum einschränken
« Antwort #13 am: 21.12.05 - 11:55:35 »
Einen Ordner kannst du nichtg einbetten.

Was sollte einen daran hindern ?

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Ansicht über Zeitraum einschränken
« Antwort #14 am: 21.12.05 - 12:00:44 »
Was sollte einen daran hindern ?

Außer der Holzweg, auf dem ich war, niemand.  :P

Ich war gedanklich auf einer anderen Baustelle.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #15 am: 21.12.05 - 13:43:08 »
Hallo nochmal ihr beiden,

.. ich brauch immer ein wenig um das ganze umzusetzen und bei Bedarf nochmal ein wenig nachzulesen.

Was ich gemacht habe...

Zuerst habe ich in zwei Masken, die evtl. Dokumente erstellen die in die Auswertung aufgenommen werden sollen ein neues Feld namens "Datumsfeld" erstellt, vom Typ Text und "Berechnet beim Anlegen". Als Vorgabewert habe ich jeweils folgende Formel verwendet um das aktuelle Datum darin zu speichern: @Left(@Text(@Today);10)

Als nächstes habe ich einen neuen Ordner namens "oTest" erstellt, aus der Vorlage "leer".
Maskenformel hat er keine.
2 Spalten, die erste zeigt die Nummer in der Ansicht, die zweite ist auf den Namen "Freigabe" gestellt, der Name eines Feldes in einer der beiden Masken.

Diesen Ordner habe ich in eine Maske eingefügt (komischerweise tauchen Ordner unter erstellen ->eingebettetes Element -> Ansicht auf). Darüber einen Hotspot mit folgendem Code:


Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim strSearchFormula As String
   
   strSearchFormula = {SELECT Datumsfeld > @TextToTime("21.12.2005") & Datumsfeld < @TextTotime("22.12.2005")}
   Set db = session.CurrentDatabase
   Set collection = db.Search(strSearchFormula, Nothing,0)
   
   Call collection.PutAllInFolder( "oTest" , True)
End Sub



Dann habe ich mit einer der beiden Masken (die welche das Feld "Freigabe" enthält) ein neues Dokument gestellt und in der db gespeichert. Dann habe ich auf meinen Hotspot geklickt. Jedoch passiert nichts. Keine Fehlermeldung, kein Dokument das plötzlich im eingebetteten Ordner sichtbar wird.

Hab versucht das möglichst genau zu beschreiben, was ich getan hab, damit ihr seht an welcher Stelle ich den Bock geschossen hab.

Gruß,

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ansicht über Zeitraum einschränken
« Antwort #16 am: 21.12.05 - 13:50:40 »
Ob überhaupt was passiert, kannst Du mit
Messagebox collection.Count
überprüfen.

Weiters: Deine Bedingung kann nicht erfüllt werden: Der 21.12.2005 (wenn das in Deinem Datumsfeld steht) kann nicht grösser sein als der 21.12.2005.

Bernhard

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #17 am: 21.12.05 - 14:06:16 »
Du hast recht, allein vom Datum her konnte das schon nicht funktionieren.

Weiter hab ich noch gemerkt. Die Maske die das Dokument erstellt ist von Typ Antwort. Deswegen hab ich jetzt in den Eigenschaften des Ordners den Haken vor "Antwortdokumente hierarchisch anzeigen" entfernt.

Außerdem hab ich jetzt das Feld "Datumsfeld" von Typ Text auf den Typ Datum/Zeit umgestellt.

..und siehe da... die Messagebox collection.count wirft jetzt eine 1 aus. Im eingebetteten Order in der Maske taucht leider kein Dokument auf. Ist da noch ein Fehler drin?




Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim strSearchFormula As String
   
   strSearchFormula = {SELECT Datumsfeld > @TextToTime("20.12.2005") & Datumsfeld < @TextTotime("22.12.2005")}
   Set db = session.CurrentDatabase
   Set collection = db.Search(strSearchFormula, Nothing,0)
   
   Call collection.PutAllInFolder( "oTest" , True)
   Messagebox collection.Count
End Sub
« Letzte Änderung: 21.12.05 - 14:07:48 von Andreas Huhn »

Offline Andreas Huhn

  • Senior Mitglied
  • ****
  • Beiträge: 251
  • Geschlecht: Männlich
    • Private Homepage + eigene Software-Tools
Re: Ansicht über Zeitraum einschränken
« Antwort #18 am: 21.12.05 - 14:25:57 »
Okay, hab herausgefunden daß der Ordner nicht aktualisiert wird. Das Dokument wird eingefügt, aber erst angezeigt wenn ich die Maske schließe und neu öffne.

Auch ein @command([refresh]) oder reloadwindow funktionieren nicht. Ein Druck auf F9 komischerweise schon.

Was ich also jetzt noch bräuchte wäre daß die Dokumente im Ordner gleich angezeigt werden und daß bei einer Anfrage nach einem anderen Zeitraum die bestehenden Doks aus dem Ordner gelöscht werden (ohne sie aus der db zu löschen) und mit den neuen Suchtreffern gefüllt wird. Ich weiß aber gar nicht ob dies möglich ist...

Offline ghost

  • Aktives Mitglied
  • ***
  • Beiträge: 174
  • Geschlecht: Männlich
  • Notes ist gut!
Re: Ansicht über Zeitraum einschränken
« Antwort #19 am: 21.12.05 - 14:40:46 »
Hallo,

bei einer neuen Suche, solltest Du die im Folder befindlichen Dokumente erst mit

Call notesViewEntryCollection.RemoveAllFromFolder( foldername$ )

aus dem Folder entfernen.

Viele Grüße
ghost

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz