Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: CarlGustav am 27.01.03 - 12:51:06

Titel: Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 12:51:06
folgende Problemstellung:


Ich habe eine Ansicht in der mehrere Dokumente sortiert nach bestimmten Wertigkeiten angezeigt werden.
Jedes Doc hat ein Feld "Wahrsch", indem die Wertigkeit gesetzt wird.

es gibt Wertigkeit A, B, C (können individuell vom User angelegt werden; sind prozentuell absteigend)

Schlüssel:
Wertigkeit A (zB 100%) entsprechen nur die Docs mit Wertigkeit A (also nur 100%)
Wertigkeit B (zB 90 %) entsprechen Docs mit Wertigkeit A und B (also alle mit 100 % & 90 %)
Wertigkeit C (zB 60 %) entsprechen Docs mit Wertigkeit A, B und C (also alle Docs in der Ansicht)


Nun muß ich in einem Script auslesen wieviele das sind.

Wieviele Docs gibts mit Wertigkeit A,also nur A
Wieviele mit B, also eine Anzahl von A und B
Wieviele mit C, also ein Anzahl von A, B und C

Ich brauche also irgendeine Möglichkeit (document collection; entrycollection) um die Docs zusammenzufassen und zählen zu können.
 

Ich überleg da anscheinend viel zu kompliziert. Das Problem liegt daran, daß die Wertigkeiten individuell festgelegt werden können, also beliebig viele sein können.


Hat da jemand Gescheiter eine Idee?


TXS,

CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: klaussal am 27.01.03 - 13:06:50
hi,

entweder drei ansichten (versteckt), in der die docs aufgelistet sind und dann per agenten durchzählen (das ist meine bevorzugte methode, weill ich dann testweise mir die docs ansehen kann) oder eben per collection (die liefert auch sofort die anzahl zurück)..

es gibt viele wege nach rom.... ;D
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 13:18:17

Dankeschen Klaussal, aber das ist mir schon klar daß ich dies mir einer collection machen sollte...


Nur.... Wie mach ich denn das???


Das wäre meine Frage gewesen!

Ich weiß zwar wie der Schlüssel aussehen sollte....aber wie mach ich da ein ordentliches Script daraus???

Danke im voraus für alle Geistesblitze!


CG


Titel: Re:Aus Ansicht auslesen!
Beitrag von: klaussal am 27.01.03 - 13:26:54
hi,

nimm lieber die idee mit den drei ansichten. wenn ich mir die hilfe zu "collection" (spez. getnextdocument) ansehe, dann passt das nicht so recht.
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 13:34:29
Tja, Klaussal, mit drei Ansichten wirds auch nicht funzen, weil ich nicht im vorhinein weiß, was der User sich für Wertigkeiten einfallen läßt.
Der kann ja, wenn er will, theoretisch auch 20 verschiedene Wertigkeiten vergeben. Dann bräuchte ich 20 Ansichten!!!

Also mit Ansichten kann ich glaube ich nicht arbeiten. ich muß eine Möglichkeit finden die Docs in eine Collection zu laden und dann ein collection.count zu machen.

Vielleicht auch mit einem Agenten....
Der alle Docs durchsucht und alle Docs die zutreffen auch mitzählt?!?


Tja, wie Du schon gesagt hast - viele Wege aber nur wenige sind beschildert...


LG


CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: Till_21 am 27.01.03 - 13:43:27
du sagst es selber , versuchs mal mit nem db.search

gruss
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 13:51:00


db.search....Hmmm!


Hättest Du vielleicht noch ein paar nähere Hinweise?

Wäre Dir sehr verbunden,


LG,


CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: Till_21 am 27.01.03 - 13:56:16
guck mal in der hilfe...  ;)

set db....

set dc = db.search(|select warsch="A"|, nothing,0)

aaa = dc.count

gruss / till
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 14:07:18

Ähhmmmmmmmm........

Ich glaube ich habe mich anscheinend nicht so gut ausgedrückt...


Das was Du da sagst ist ja supertoll und mir auch klar, aber das geschieht alles unter ganz anderen Voraussetzungen, daß es so funktionieren kann.

Wenn ich "set dc = db.search(|select warsch="A"|, nothing,0)"

gibt mir die gute collection.count NUR die docs mit WAHRSCHEINLICHKEIT A zurück.

Das ist aber nur bei der Wahrscheinlichkeit A erwünscht.

Siehe den ersten Eintrag:

Wertigkeit A (zB 100%) entsprechen nur die Docs mit Wertigkeit A (also nur 100%)
Wertigkeit B (zB 90 %) entsprechen Docs mit Wertigkeit A und B (also alle mit 100 % & 90 %)
Wertigkeit C (zB 60 %) entsprechen Docs mit Wertigkeit A, B und C (also alle Docs in der Ansicht)



dh wenn ich nun "set dc = db.search(|select warsch="B"|, nothing,0)" mache bekomme ich wiederum NUR die docs mit der Wertigkeit B - - - - - - ich brauche aber docs mit
Wertigkeit A UND B !!!!!!!!!!

Das kann ich nun fortsetzen mit allen anderen Wertigkeiten.



Ich muß in meine Collection also nicht nur eine Wertigkeit laden....Das ist ja auch das Problem in der Frage die ich hatte...


Vielleicht schaut ihr euch meinen ersten Beitrag nochmal an....


Danke trotzdem für alle Versuche das Problem zu lösen!!


CG







Titel: Re:Aus Ansicht auslesen!
Beitrag von: ata am 27.01.03 - 14:58:55
... gibt der User die Parameter irgendwo ein, per Dialogliste oder so was?...

ata
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 15:01:56


Ja, der User wählt die Wertigkeit per Kombinationsfeld aus!



TXS für die Hilfe,


CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: ata am 27.01.03 - 15:10:11
... generier doch den String anhand des Arrays der Eingabe

...
For i = Lbound(doc.Eingabe) to Ubound(doc.Eingabe)
    sSearch = { warsch = "}+doc.Eingabe(i)+{" |}
Next

sSearch = Left( sSearch , Len(sSearch) -1 )
sSearch = "SELECT " + sSearch
...

ata
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 27.01.03 - 15:32:06


Danke ATA!

Aber es tut mir wirklich leid... Aber ich verstehs nicht recht...
Ist deshalb eigentlich das Forum auch da?!?

...
For i = Lbound(doc.Eingabe) to Ubound(doc.Eingabe)

----das geht grad noch
 

----ich muß ab da leider passen...

    sSearch = { warsch = "}+doc.Eingabe(i)+{" |}
Next

sSearch = Left( sSearch , Len(sSearch) -1 )
sSearch = "SELECT " + sSearch
...


Dürfte ich so lästig sein und um eine kurze Beschreibung bitten?



    sSearch = { warsch = "}+doc.Eingabe(i)+{" |}

Speziell mit dieser Zeile weiß ich nicht recht was anzufangen...


LG,


CG

Titel: Re:Aus Ansicht auslesen!
Beitrag von: ata am 27.01.03 - 16:59:34

Zitat
sSearch = { warsch = "}+doc.Eingabe(i)+{" |}
... damit bilde ich eine Textzeile, nämlich die Suchformel...
nur sehe ich gerade, daß die Formel einen kleinen Fehler hat, sie muß so heißen:

sSearch = sSearch + { Wahrsch = "}+doc.Eingabe(i)+{" |}

... die geschweiften Klammern verwende ich anstelle der Anführungszeichen, denn dann kann ich im Verlauf der Suchformel die Anführungszeichen verwenden...

... die Formel heißt dann ausgesprochen
Feld Warsch = "Wert1" oder Feld Wahrsch = "Wert2"
... oder in Formelsprache

Wahrsch = "Wert1" | Wahrsch = "Wert2" |...

... das letzte "Oder" muß entfernt werden
und abschließend das SELECT-Statement vor den Suchstring...

... alles klar?

ata



Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 28.01.03 - 10:35:01

Vielen Dank für Deine Hilfe ATA!

Aber so ganz funzts noch net....

For i = Lbound(doc.Eingabe) to Ubound(doc.Eingabe)
sSearch = sSearch + { Wahrsch = "}+doc.Eingabe(i)+{" |}

Wir haben hier überall "doc." stehen. Kann ich das auch mit "uidoc.fieldgettext" machen? Glaub ich nicht, denn ich bekomm etliche Fehlermeldungen.
Ich brauch die Eingabe die der User im Uidoc gemacht hat.
Ich hab zwei Felder im Uidoc. Wahrscheinlichkeit und Prozent.

Nachdem der User die Felder gefüllt hat, dann sollte ich auslesen können wieviele Docs er angezeigt bekommt...

Weiß nicht, aber vielleicht geht das so eh nicht...


Danke auf alle Fälle,


CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: wflamme am 28.01.03 - 11:08:08
Kannst Du das denn nicht über Ansichtssummen/Kinder anzeigen lassen?
Immerhin kannst Du Unterkategorien auch berechnen...
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 28.01.03 - 11:13:59
Hmmmm.... Kann nicht recht viel mit Deinem Vorschlag anfangen!


Ich brauche nachdem der User seine Eingaben bestätigt hat, eine Berechnung wieviele Docs mit seinen Eingaben übereinstimmen!
Das brauch ich gleich in dem Script das nach seiner Bestätigung durchlaufen wird.


Was fang ich da mit Ansichtssummen an?!?


LG


CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: Alex W am 28.01.03 - 11:29:49
Hallo,

die zuletzt geäußerte Idee mit den Ansichtssummen ist nicht schlecht, man kann ja einfach ein feld nehmen, das von vornherein immer nur den Zahlwert 1 besitzt und so mit @sum ein Ergebnis erreichen.

Ich würde es aber ganz anders lösen, da ja nach meinem verständnis nur die Doks mit der Wertigkeit  A, B und C gezählt werden müssen. Mach einfach ein Feld im Dok, daß nach Eingabe der prozentualen Wertigkeit im Rahmen von querysave deinen Wert A, B oder C ausrechnet. Dann kannst Du das in einer Ansicht nach diesen Wertigkeiten sortieren und die Doks mit der Summenfunktion zählen, indem du eine Ansichtspalte so programmierst:

@if(Wertigkeit!="");1;0)

Dann hast Du in der Ansicht erstmal eine Summe. Wenn Du das dann für eine Maske brauchst, kannst Du die gleiche Ansicht nehmen und mit einem @dblookup auslesen und dir auch wieder über @sum die Summe anzeigen lassen.

Vielleicht ist das ja ein gangbarer  Weg

Alex W  ;)
Titel: Re:Aus Ansicht auslesen!
Beitrag von: ata am 28.01.03 - 13:28:00
@CarlGustav

... mach es mit dem doc, das ist auf jeden Fall ein richtiger Weg

Dim doc As NotesDocument
Set doc = uidoc.Document

... mit diesen Zeilen erhälst du das doc. Dieses doc hat die Eingaben des Users...

ata
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 28.01.03 - 14:32:09

@ATA!


Ich glaube auch, daß ich so die Wege nach Rom finde...

Warum bin ich nicht auf "Set doc=uidoc.Document" gekommen???

Nur....

"Dim sSearch As String
Dim i As Integer
Set doc = uidoc.Document

For i = Lbound(doc.Wahrschausw) To Ubound(doc.Wahrschausw)
sSearch =sSearch+ { Wahrschausw = "}+doc.Wahrschausw(i)+{" |}
Next

sSearch = Left( sSearch , Len(sSearch) -1 )
sSearch = "SELECT " + sSearch"


Ein bißchen steh ich noch im Regen! Ich habe ja nur dieses eine Feld zum Auslesen. Das Feld Wahrschausw. Der User wählt nun zB 90% aus, also müssen alle Docs der Wertigkeit 100% und der W. 90% angezeigt werden.
Wenn ich nun den Code wie oben einbaue, dann bekomm ich nur die Auswahl des Users und nicht 100 % und 90 % !

SSearch soll ja dann mein key sein um eine Collection zu füllen, oder? So könnte es ja funktionieren wenn ich nicht nur die Userauswahl bekommen würde.

Was mach ich noch falsch?

Sorry wegen meines Unverständnisses!


LG,

CG
Titel: Re:Aus Ansicht auslesen!
Beitrag von: ata am 28.01.03 - 16:13:56
... ich bin davon ausgegangen, daß der User alle Werte wählt, die er ausgewertet sehen will - also wenn er 90% wählt bekommt er auch nur die zu sehen, wenn er 90% und 100% sehen will, dann muß beides gewählt werden...

... wenn man alle Werte größer haben möchte, dann muß der Textstring in eine verwertbare Zahl gewandelt werden, und dann eben entsprechend in der Formel eingearbeitet werden...

ata
Titel: Re:Aus Ansicht auslesen!
Beitrag von: CarlGustav am 28.01.03 - 16:41:30


Nun muß ich nochmal mich entschuldigen!

Ich dachte ich hätte das gesagt, daß der User nur die Wertigkeit wählt und es werden automatisch die richtigen Docs angezeigt.


Ich mach das so, daß ich in einer Ansicht alle Documente der DB anzeige und dann die Auswahl vom User mit den Docs vergleiche:

If Val(uidoc.fieldgettext("Prozent")) <= Val(doc.prozent(0)) Then


Wenn das zutrifft dann kopiere ich das Doc und lass es in einer anderen Ansicht anzeigen.
Somit trifft der Schlüssel zu -

Wertigkeit A (zB 100%) entsprechen nur die Docs mit Wertigkeit A (also nur 100%)
Wertigkeit B (zB 90 %) entsprechen Docs mit Wertigkeit A und B (also alle mit 100 % & 90 %)
Wertigkeit C (zB 60 %) entsprechen Docs mit Wertigkeit A, B und C (also alle Docs in der Ansicht)


Tja, und bevor jene Docs kopiert werden, hätte ich eine Berechnung gebraucht um eine Anzahl der Docs zu erhalten.
Sprich eine Collection in der ich alle zutreffenden Docs zählen kann.

Dies brauche ich für eine Statusbar...
Hab die aber nun anders programmiert...


Danke für alle Beiträge,


LG,


CG


Titel: Re:Aus Ansicht auslesen!
Beitrag von: wflamme am 29.01.03 - 01:04:47
Hmmmm.... Kann nicht recht viel mit Deinem Vorschlag anfangen!


Ich brauche nachdem der User seine Eingaben bestätigt hat, eine Berechnung wieviele Docs mit seinen Eingaben übereinstimmen!
Das brauch ich gleich in dem Script das nach seiner Bestätigung durchlaufen wird.


Was fang ich da mit Ansichtssummen an?!?


Sorry, da stand ich wohl auf dem Schlauch:

Also die Wertigkeiten in den Dokumenten sind stufenlos, der Benutzer gibt aber Grenzwerte vor?
Da bleibt als Alternative zum Dialog nur, die Dokumente in A-B-C-Folder zu packen..