Autor Thema: Collection selbst zusammenstellen?  (Gelesen 4944 mal)

Offline Centaury

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • Hi! Kennst du Murphy??
Collection selbst zusammenstellen?
« am: 24.07.03 - 07:40:18 »
Hallo!
Kann man eigentlich eine Collection selbst zusammen stellen, also eine leere erzeugen und ihr dann Dokumente übergeben? Das Dokumente übergeben bzw. anhängen ist kein Problem, aber wie kann ich eine neue überhaupt erzeugen? New gibt's ja nicht....
Man sollte immer eine kleine Flasche Whisky dabei haben, für den Fall eines Schlangenbisses - und außerdem sollte man immer eine kleine Schlange dabei haben. - W. C. Fields

Glombi

  • Gast
Re:Collection selbst zusammenstellen?
« Antwort #1 am: 24.07.03 - 09:07:12 »
Hi,
Du müsstest anfangs die Collection aufbauen, in dem Du bspw. ein
db.Search(...)
macht und als Suchstring etwas definiert, das nur ein (Dummy-)Dokument liefert.
Dann kann Du Dokumente zu Collection hinzufügen mit
Call notesDocumentCollection.AddDocument(document)

und das Dummy wieder aus der Collection entfernen
Call notesDocumentCollection.DeleteDocument(notesdocument)
(löscht das Dokument nicht! nimmt es nur aus der collection)

Andreas
« Letzte Änderung: 24.07.03 - 09:07:31 von Glombi »

Offline Centaury

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • Hi! Kennst du Murphy??
Re:Collection selbst zusammenstellen?
« Antwort #2 am: 24.07.03 - 09:47:40 »
Gibt es einen Grund, warum so ein Umweg nötig ist? (rein interessehalber)
Man sollte immer eine kleine Flasche Whisky dabei haben, für den Fall eines Schlangenbisses - und außerdem sollte man immer eine kleine Schlange dabei haben. - W. C. Fields

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Collection selbst zusammenstellen?
« Antwort #3 am: 24.07.03 - 11:38:01 »
Ähhh, verzeih mir, bei der Frage stehe ich jetzt etwas auf dem Schlauch. Du willst eine Document Collection erstellen, wo ist da das Problem:

dim session as new NotesSession
dim curDb as NotesDatabase
dim collection as NotesDocumentCollection
dim i as integer
dim doc as NotesDocument

set curDb = session.CurrentDatabase
set collection = curDb.Alldocuments

for i = 1 to collection.Count
set doc = collection.GetNthDocument(i)
next

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Glombi

  • Gast
Re:Collection selbst zusammenstellen?
« Antwort #4 am: 24.07.03 - 11:45:32 »
Hi Meff, Centaury will eine Collection machen, in der erstmal keine Doks stehen und dann sukzessive welche hinzufügen - so habe ich das jedenfalls verstanden.
Daher vermisst er was wie
set dc = New NotesDocumentCollecion
Das New gibt es halt seitens Notes nicht. Dazu war die dc ursprünglich ja auch nicht gedacht. Es ist wie immer: Man programmiert die tollsten Dinge, und dann kommen die User: "Was das geht nicht?" "Warum ist das so und nicht anders?" ;D

Andreas

Offline Centaury

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • Hi! Kennst du Murphy??
Re:Collection selbst zusammenstellen?
« Antwort #5 am: 24.07.03 - 13:22:41 »
Ja, genau so war das gemeint....
Mich wundert es nur...
Die Dinger heißen schließlich "Klassen", also sollten man mit New Objekte erzeugen können...oder?  ???
Man sollte immer eine kleine Flasche Whisky dabei haben, für den Fall eines Schlangenbisses - und außerdem sollte man immer eine kleine Schlange dabei haben. - W. C. Fields

Offline Centaury

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • Hi! Kennst du Murphy??
Re:Collection selbst zusammenstellen?
« Antwort #6 am: 24.07.03 - 13:48:18 »
Ach ja, btw: Hat funktioniert. Ich habe letztendlich eine Volltextsuche nach einem Maskennamen gemacht und nur ein Ergebnis zugelassen. Dann habe ich das Dokument wieder entfernt und schon hat man eine leere Collection.
Den Maskennamen hab ich verwendet, damit ich nicht von einem Dokument abhängig bin. Von dieser Maske werden immer Dokumente in der Datenbank stehen.

Danke!
Man sollte immer eine kleine Flasche Whisky dabei haben, für den Fall eines Schlangenbisses - und außerdem sollte man immer eine kleine Schlange dabei haben. - W. C. Fields

Glombi

  • Gast
Re:Collection selbst zusammenstellen?
« Antwort #7 am: 24.07.03 - 14:13:15 »
@Centaury: Wegen des Konstruktors "New". Da müssten wir mal die OO Experten hier im Forum befragen, ob nach der reinen Lehre der OO immer ein Constructor namens "New" existieren muss.

In LotusScript ist das jedenfalls nicht so:
In the definition for a user-defined class, you can include a definition for the constructor sub, named New. If the definition exists, LotusScript calls this sub whenever it creates an object from that class. LotusScript calls the sub immediately after creating the object.

Andreas

Offline Centaury

  • Senior Mitglied
  • ****
  • Beiträge: 294
  • Geschlecht: Männlich
  • Hi! Kennst du Murphy??
Re:Collection selbst zusammenstellen?
« Antwort #8 am: 24.07.03 - 14:29:06 »
@Glombi
Das hört sich schon recht objektorientiert an....
Ich bin halt noch nicht soo lange dabei und bin darüber verblüfft gestolpert...
Aber so geht's ja auch :)
Man sollte immer eine kleine Flasche Whisky dabei haben, für den Fall eines Schlangenbisses - und außerdem sollte man immer eine kleine Schlange dabei haben. - W. C. Fields

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:Collection selbst zusammenstellen?
« Antwort #9 am: 24.07.03 - 15:39:54 »
warum macht ihr euch die muehe und sucht euch eine select formel, die EIN dokument zurueckgibt und entfernt dieses muehselig ?
warum nicht db.search(|select form="fcbgdiaowgfidagvsbfjlda"


 ;D ;D

gruss

Glombi

  • Gast
Re:Collection selbst zusammenstellen?
« Antwort #10 am: 24.07.03 - 15:51:22 »
War mir nicht sicher, ob dann evtl. dc = Nothing oder sowas ist. Aber klar, Du hast recht.

set dc = db.Search(|Form = "Gibt es nicht"|,Nothing,0)

Andreas

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re:Collection selbst zusammenstellen?
« Antwort #11 am: 25.07.03 - 08:38:55 »
Es ist nicht zwingend vorgeschrieben, dass es einen öffentlichen Konstruktor geben muss. Aber es sollte dann andere Methoden geben um zu einem Objekt zu kommen.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Collection selbst zusammenstellen?
« Antwort #12 am: 25.07.03 - 18:35:57 »
Das bisher beschrieben Procedere zum Erzeugen einer leeren NotesDocumentCollection funktioniert schon, aber ...

Auch ein NotesDatabase.Search ("Das gibt es sowieso nicht") führt bei grossen Datenmengen zu einem Performance-Problem.
Günstiger erscheint mit folgendes:

NotesDocumentCollection = NotesUIView.AllDocuments. Diese Methode aus NotesUIView wirkt nur in speziellen Events und führt erstaunlicherweise ohne Fehlermeldung zu einer leeren NotesDocumentCollection - ohne Performance-Verlust.

HTH,
Bernhard

Offline LordMacBee

  • Junior Mitglied
  • **
  • Beiträge: 88
  • Geschlecht: Männlich
  • I.8.P.P
    • Team Mental Racing - Online Nascar
Re:Collection selbst zusammenstellen?
« Antwort #13 am: 28.07.03 - 13:18:54 »
wo kann man das denn brauchen und wann nicht?
Never underestimate the predictability of stupidity

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Collection selbst zusammenstellen?
« Antwort #14 am: 28.07.03 - 20:50:20 »
... Bernhard hat das natürlich gleich am wunden Punkt erwischt, deshalb mache ich das mit einem Dummy-Profildokument, das nur für diesen Zweck erstellt wird...

Code
   Dim session As New NotesSession
   Dim dbThis As NotesDatabase
   Dim dummy As NotesDocument
   Dim dc As NotesDocumentCollection
   
   Set dbThis = session.CurrentDatabase
   
   Set dummy = dbThis.GetProfileDocument( "Dummy" )
   Set dc = dbThis.GetProfileDocCollection( "Dummy" )
   Call dc.RemoveAll( True )
   ' # ... die Collection ist nun leer...

@LordMacBee
... das kann man brauchen, um während einer Auswertung Dokumente in einer Collection zu sammeln. Eine Collection hat keine Array-Grenze - zudem kann man in einer Collection gut navigieren...

... zum Beispiel um Dokumente zu sortieren...

ata
Grüßle Toni :)

Offline LordMacBee

  • Junior Mitglied
  • **
  • Beiträge: 88
  • Geschlecht: Männlich
  • I.8.P.P
    • Team Mental Racing - Online Nascar
Re:Collection selbst zusammenstellen?
« Antwort #15 am: 29.07.03 - 10:04:04 »
@ATA

Das meinte ich nicht. Ich wollte nur wissen, wann man sich die collection über die uiview zusammenstellen kann, resp. welches denn die angetönten events sind, bei denen man wirklich was zurückkriegt.

Meinereiner Loopt die ganze Zeit durch collections, resp stellt sich die selber zusammen, weil sich die *ZENSIERT*- Dinger ja nicht anders sortieren lassen.
« Letzte Änderung: 29.07.03 - 10:05:47 von LordMacBee »
Never underestimate the predictability of stupidity

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz