Autor Thema: von bis Datum alle Docs  (Gelesen 3171 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
von bis Datum alle Docs
« am: 07.04.03 - 16:44:21 »
Ich bräuchte eine Funktion die mir alle Docs zurückgibt die zwischen dem vonDatum und bisDatum liegen!!
Ich möchte das ganze aber nicht über FTSearch realisieren.
Hat jemand so etwas gebastelt oder weiß jemand wie man soetwas
lösen könnte?
danke robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:von bis Datum alle Docs
« Antwort #1 am: 07.04.03 - 16:56:43 »
hm..gebastelt nicht, aber wenn Du keine Search Methode nehmen möchtest, mußt Du wohl oder übel über die NotesViewEntry Klasse gehen und das Datum aus jedem einzelnen Doc auslesen...

Collection bilden
....
erstes Doc nehmen
....
dim start as variant
dim ende as variant
start = doc.startdatum(0)
ende = doc.enddatum(0)

If start>=StartVergleich AND ende <=EndeVergleich Then
...
End If
...
nächstes Doc aus Coll


Wenn Du magst und kannst, dabei Performance Nachteile in Kauf nimmst, kannSt Du natürlich auch viewbasierend einen Select aufbauen...der die anzuzeigenden Docs vorhält, wenn der Zeitraum immer der gleiche sein soll.
« Letzte Änderung: 07.04.03 - 16:58:29 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #2 am: 07.04.03 - 17:07:35 »
... neben FTSearch gibt es auch db.Search - da wird kein Volltextindex benötigt...

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #3 am: 07.04.03 - 17:10:44 »
nein das genügt mir glaub ich.ich werde es mal über diese Variante versuchen
danke robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #4 am: 07.04.03 - 17:37:24 »
hallo ata wie funkt das dann bei db.search?
ich wollte mir eine dialogbox machen wo man das vondatum bisdatum eingibt und die gefundenen doc aus einer ansicht in eine DocCollection werfen!
danke robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #5 am: 07.04.03 - 19:58:33 »
... die Syntax des db.Search funktioniert wie folgt

Dim session As New NotesSession
Dim dbThis As NotesDatabase
Dim dc As NotesDocumentCollection
Dim sdt As New NotesDateTime("01/01/1990")
Sim sSearch As String

Set dbThis = session.CurrentDatabase
sSearch = {SELECT Form = "DeineMaske"}
Set dc = dbThis.Search( sSearch , sdt , 0 )
' # ... liefert alle Dokumente mit deiner Maske...

... die Suchformel funktioniert in Formelsprache
... ich verwende mittlerweile gescheifte Klammern für die Suchformel, so kannst du ganz normal mit Anführungszeichen, Pipe und AmperSand arbeiten, wie gewohnt

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #6 am: 08.04.03 - 07:37:08 »
und wie geht das jetzt wenn ich alle docs zwischen zwei datümer brauche?
robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #7 am: 08.04.03 - 14:55:51 »
... so auf die schnelle...

Zitat
' # Anhand des Feldes "TargetDate" in einer Maske "Job" Dokumente einschränken   
   Dim ws As New NotesUIWorkspace
   Dim docThis As NotesDocument
   Dim dbThis As NotesDatabase
   Dim sdt As New NotesDateTime("01/01/1990")
   Dim sSearch As String
   Dim dc As NotesDocumentCollection
   
   Set docThis = ws.CurrentDocument.Document
   Set dbThis  = docThis.ParentDatabase
   sSearch = {SELECT Form = "Job" & ( TargetDate >= [01/03/2003] ) &  ( TargetDate < [01/04/2003] )}
   Set dc = dbThis.Search( sSearch , sdt, 0)
   MsgBox Cstr(dc.Count) + " Dokumente..."

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #8 am: 08.04.03 - 17:30:20 »
Hallo ata
Ich möchte das ganze von einer Ansicht aus machen!

dh. ich stehen in einer Ansicht möchte auf einen Button klicken wo ich dann das vondatum und  bisdatum eingeben kann und die gefundenen dann zb in eine DocColl.
ich hab das ganze jetzt mal so abgeändert:

   Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim doc As NotesDocument
   Dim db As NotesDatabase
   Dim sdt As New NotesDateTime("01/01/1990")
   Dim view As NotesView   
   Dim sSearch As String
   Dim dc As NotesDocumentCollection
   Set db= s.CurrentDatabase   
   Set view=db.GetView("Massnahme")
   Set doc = view.GetFirstDocument
   
   
   sSearch = {SELECT Form = "task" & ( Erledigtam >= [18/03/2003] ) &  ( Erledigtam < [25/04/2003] )}
   Set dc = db.Search( sSearch , sdt, 0)
   Msgbox Cstr(dc.Count) + " Dokumente..."   

nur wie mach ich dass das datum über felder variabel ist!!!
Ich mach mir eine Dialogbox mit einer maske mit vondatum und bisdatum aber weiter weiß ich nicht!

danke robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #9 am: 08.04.03 - 17:59:54 »
... das macht so noch keinen Sinn. Du ziehst eine View, holst das erste Dokument und dann passiert was völlig anderes...

... beschreib' mal, was du tatsächlich machen willst. Am Anfang war das "... die Dokumente zwischen 2 Datumswerten" - jetzt kommt  eine Ansicht ins Spiel. Was für eine Rolle spielt denn die Ansicht?

... du willst das Datum dynamisch eingeben. Welche Vorstellung hast du über das User Handling - 2 Werte heißt 2 mal InputBox - ansonsten mußt du dir eine Dialogbox bauen - oder ist ein Wert Fix - zum Beispiel das heutige Datum...

... benötigst du nur die Anzahl der Dokumente - möchtest du mit den Dokumenten noch was machen...

... von daher die Bitte - fass das mal konkreter... ;)

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #10 am: 09.04.03 - 08:12:37 »
OK ich mach mir eine Dialogbox mit einem Feld vonDatum und einem zweiten Feld bisDatum!!
Die zweit Datumswerte sollen anschließen zum suchen verwendet werden.
Ich habe mir eine Ansicht gebastelt die das :
SELECT Form="task" & Status="Arbeit erledigt" : "Nachweis erledigt"
als Auswahlformel verwendet. Nur bei diesen Docs soll gesucht werden die das erfüllen.
Es wäre unnotig alle docs zu durchsuchen weil das sehr viele sind.
Anschließen möchte ich alle gefundenen docs in eine DocCollection und dann lese ich ein paar felder aus von den Docs in der DocCollection.

robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #11 am: 09.04.03 - 11:43:12 »
... wenn du schon einen db.Search nimmst, dann bau den noch weiter aus mit der Datumsabfrage, damit du nur die Dokumente bekommst, die in deinem Range liegen...

ata
« Letzte Änderung: 09.04.03 - 11:43:39 von ata »
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #12 am: 09.04.03 - 11:49:55 »
Das vesteh ich jetzt nicht!!
Es soll von den ganze docs eine auswertung gemacht werden und das nur vom vondatum bis zum bisdatum (alles was zwischen den beiden datümer liegt).
und das ist von tag zu tag unterschiedlich deshalb dialogbox mit den felder!!
Aber ich weiß nicht wie ich das realisieren kann.
Wie würdest du das machen?
bitte um hilfe

robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #13 am: 09.04.03 - 12:18:11 »
... ich habe gleich einen Termin, kann erst spät heute Abend wieder - wenn ich Glück habe, dann zwischendurch noch mal...

ata
Grüßle Toni :)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #14 am: 14.04.03 - 21:56:43 »
Hallo Robert,

ich habe mir noch einmal Zeit genommen und mir dein Anliegen nochmal näher gebracht.

Bei der Suche nach deinen Dokumenten ist die Ansicht völlig überflüssig. Sie ist für die Ermittlung der Collection nicht notwendig.

... erstelle dir eine Maske
... nimm ein Feld SaveOptions = "0" auf
... deine beiden Datumsfelder VonDatum und BisDatum
... einen Button zum Ausführen deines Codes

Lese zuerst die Werte deiner Felder ein.
Du mußt den Datumsstring in die Form "24/1/2003" bringen, damit du diesen String in die Formel integrieren kannst...

Mit Day( ... ) erhälst du den Tag als Integer
Mit Month( ... ) erhälst du den Monat als Integer
mit Year( ... ) erhälst du das Jahr als Integer

Mit Cstr(...) kannst du Zahlenwerte zu Strings konvertieren

Den Rest hast du ja bereits...

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #15 am: 15.04.03 - 09:59:54 »
ein problem hab ich bei dieser sache noch!!
Er gibt mir den Fehler zurück:

Dialogbox cannot be used in this context; a document must be selected!

Wenn ich das ganze mit einer Dialogbox machen dann brauch ich vorher ein doc aber wie erstelle ich mir das doc, dass ich dann nicht speichern will?
Ich habs mal so versucht:

Sub Click(Source As Button)
   Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Set db= s.CurrentDatabase
   Dim uidoc As NotesUIDocument
   Set doc= db.CreateDocument
   doc.Form="proof"
   Aber da fehlt mir noch was!!!!
   
   
   Call ws.dialogbox("proof",True,True,True,,,,"Nachweis suchen",,True,True)
   
End Sub

robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #16 am: 15.04.03 - 11:00:55 »
... verwende die Maske nicht für die Dialogbox, sondern öffne sie mit @Command([Compose] ; "Maskenname")...

... denn wie du siehst, kann eine Dialogbox nur über einem bestehenden Dokument geöffnet werden. Um zu vermeiden, daß dann Werte in das Dokument geschrieben werden, die dort nichts zu suchen haben, mußt du die Parameter der Box entsprechend einstellen usw. - daher nimm eine Maske, die nicht gespeichert werden kann - temporäres Doc...

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #17 am: 15.04.03 - 12:42:56 »
also mir wäre es lieber wenn ich das ganze über eine dialogbox lösen könnte!! Oder geht das dann eh auch? Wenn nicht wie bekomme ich das so hin es über ein Dialogbox zu lösen?
danke robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:von bis Datum alle Docs
« Antwort #18 am: 15.04.03 - 13:24:23 »
... wenn du unbedingt eine Dialogbox verwenden willst, dann muß der User in der Ansicht ein Dokument markiert haben...

... damit dieses Dokument keine unerwünschten Felder übernimmt, müssen die Parameter der Dialogbox entsprechend übergeben werden => Designer-Hilfe

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:von bis Datum alle Docs
« Antwort #19 am: 18.04.03 - 14:16:20 »
Hallo an alle!!
Zuerst mal ein schönes Osterfest!!
Ich hab hier jetzt für mein Problem mit dem Suchen eine Test-DB angelegt!!
Dort hab ich mir ein doc erstellt ( "proof") dieses doc rufe ich, jetzt immer wenn ich in der Ansicht Massnahmen bin, und den Button "Nachweis suchen" (Dialogbox) klicke auf!! jetzt kann ich hier mein vondatum und mein bisDatum eingeben und das Problem das ich jetzt habe ist, das ich die Dialogbox jetzt wieder schließen muss( mit OK Button) und die zwei Datumswerte übergeben muss!!!! Das vondatum und bisdatum brauche ich anschließen in dem Anderen Button "ansicht vc" um dort die zwei fixen Datumswerte variabel zu machen. Das schließen hab ich schon mit einem Agent versucht aber die Dialogbox geht aber nicht zu!! Und wie ich die werte dann übergeben muss weiß ich auch nicht!!! Besser gesagt ich will wenn ich auf OK klicke das die Dialogbox zu geht und gleich gesucht wird.
Bitte um hilfe
robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz