Autor Thema: ältestes/neuestes Doc. ohne neuen View  (Gelesen 2738 mal)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
ältestes/neuestes Doc. ohne neuen View
« am: 09.03.05 - 15:27:52 »
Ich brauch fuer einen XML-Export das älteste und das neueste Dokument in einem View. Den View kann ich nicht ändern, neuer View ist nicht und auch die Sortierung kann ich nicht so ändern, dass ich mit GetFirst... und GetLastDocument die entprechenden Docs bekomme.

Zur Zeit fahr ich mit
Code
	Set doc = view.GetFirstDocument
	While Not(doc Is Nothing)
		If(doc.Lastmodified > newest) Then
			newest = doc.Lastmodified
		End If
		If(doc.Lastmodified < oldest And Cstr(doc.Lastmodified) <> "") Then
			oldest = doc.Lastmodified
		End If
		Set doc = view.GetNextDocument(doc)
	Wend
ueber den View, um die ensprechenden Daten zu finden und anschließend nochmals, um das XML zu generieren.

Das kann/muss doch effektiver gehen, oder?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #1 am: 09.03.05 - 18:38:29 »
Martin, ich würde mich über jede anderslautende Meinung freuen, die mich dann dazu führt, mich vor den Kopf zu schlagen, aber nach meinem Kenntnisstand: Nein, da gibt es keine andere Möglichkeit als das brutale Durchlaufen aller Dokumente ... Nur das neueste Dokument liesse sich über ein dbSearch mit wahrscheinlichem CutOff-Date schneller finden, aber das älteste ... Leider nein.

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #2 am: 09.03.05 - 22:16:03 »
Sch....
Ich habs befuerchtet. :(
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #3 am: 09.03.05 - 22:39:46 »
Unter Deinen Bedingungen sehe ich auch keine Alternative.

und anschließend nochmals, um das XML zu generieren.

Was meinst Du mit "anschließend nochmal"?

Die gefundenen Doks kannst Du doch z.B. in ein Array aus NotesDocuments stecken.

Also:

Dim docArray As Variant
...
If <Deine Bedingung> Then
   docArray(DeinCounter) = doc
End If

Danach arbeitest Du dann das Array aus NotesDocuments (docArray) entsprechend ab.
In meinem Bsp. fehlt noch ein Redim. Wenn Dir vor der Ausführung der Schleife schon die Größe des Arrays bekannt ist, dann kannst Du es entsprechend dimmen, ansonsten musst Du wohl mit Redim Preserve arbeiten, was man halt eigentlich in Schleifen vermeiden sollte aus Performancegründen.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #4 am: 09.03.05 - 22:46:21 »
Also das will ich auf einem Server der aus dem letzten Loch pfeift (3 neu Power5 stehen in den Startloechern) eigentlich nicht machen, vor allem, wenn das XML dann 6 MB hat. ;)

Daher fahr ich noch ein zweites Mal ueber alle Dokuemnte und schreib das XML direkt in ein File. Kostet zwar Zeit, aber dafuer frisst es nicht RAM. :)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #5 am: 09.03.05 - 23:01:42 »
Na ja, meinst Du das docArray schluckt wirklich soooo viel RAM?
Das enthält doch nicht wirklich die Dokumente, sondern Objekte (NotesDocument).

Oder kämpfst Du um jedes Bit ?
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #6 am: 09.03.05 - 23:03:16 »
Zweiteres. :)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #7 am: 09.03.05 - 23:11:28 »
OK, dann ist das wirklich eine Herausforderung  ;D

Wobei: Ich kann mir bei bestem Willen nicht vorstellen, dass solch ein docArray viele Bits frisst.
Müsste man mal testen (oder nachlesen?), aber mehr als 100 Bytes / Dokument gehen da vermutlich nicht drauf  ::)
Würde es halt schade finden, nochmal eine Schleife zu durchlaufen, wenn man beim 1. Run schon alle Daten hat, die man braucht.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #8 am: 09.03.05 - 23:29:57 »
Ich werd mir das morgen mal ansehen. Das interessiert mich jetzt auch.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #9 am: 15.03.05 - 07:53:45 »
mit einem NotesDatabase.FTSearch() sollte es möglich sein.
Den Query musst Du so formulieren, dass er der Ansichtsauswahl entspricht und mit dem 3. Parameter kannst Du sogar bestimmen, ob Du nach Erstelldatum oder dem Datum der letzen Änderung sortieren willst.

Mit NotesDocumentCollection.GetFirstDocument und NotesDocumentCollection.GetLastDocument hast Du dann das älteste und neuste Dokument.
Gruß
Dirk

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: ältestes/neuestes Doc. ohne neuen View
« Antwort #10 am: 15.03.05 - 12:30:51 »
Das mit created / modified ist aber erst seit R6 möglich. Ausserdem gibt es da noch die Klippe mit der DocumentCollection, die Martin möglichst vermeiden möchte.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz