Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bruce Willis am 02.01.05 - 21:48:55

Titel: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 02.01.05 - 21:48:55
Hallo,

jetzt wo alle schon wieder nüchtern und freundlich sind  ;)  traue ich mir zu, hier um Rat zu bitten.

Ich möchte eine DB-Ansicht kreieren, wo die Autoren nach der Anzahl deren Dokumente sortiert sind.

- Erste Spalte wäre z.B. die Formel mit Spaltenwert "1", Summe "Gesamt", Detailzeilen "Verbergen"

- Zweite Spalte wäre z.B. Feld "Autor" bzw. "Schriftsteller", Sortiereung "Aufsteigend", Typ "Kategorien".

Wie kriege ich aber die Sortierung der Autoren nach Anzahl deren Dokumente?

Hätte jemand eine Idee oder noch besser eine Lösung?  :)

Gruß
Bruce
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Glombi am 02.01.05 - 21:59:21
Hallo Bruce  ;)

also das dürfte schwierig in Notes sein. Es ginge, wenn Du in jedem Dokument die Anzahl der Dokumente pro Autor führst, d.h. aber auch, Du musst einen Mechanismus implementieren, der alle zugehörigen Dokument ändert, sobald Du einem Autor ein neues Dokuments zuordnest bzw. eines entfernst.
Es ist sicher möglich, hat aber auch seine Tücken...

Andreas
P.S.: Dein Mut jetzt schon zu posten ist bemerkenswert und sicher Ausdruck Deines immensen Selbervertrauens  ;D ;)
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 02.01.05 - 23:56:25
"Schwierig" ? Nett und höflich ausgedrückt, Andreas  ;D

Das geht schlicht und ergreifend nicht (statisch). Ein Workaround wäre, sowas ad-hoc zu machen (okay, anders geht es gar nicht) und einen Report zu generieren (sauber) oder temporär Dokumente zu bilden und diese in einen Folder zu tun und in diesen Docs die Hits zu zählen (sehr unsauber - der Schrott muss ja danach wieder weg ...).

Aber es gibt sicherlich auch noch andere Wege. Es werde naber immer Workarounds sein, da Notes als dokumentenorientierte DB nun alles andere als "Zählen" zu seinen Stärken zählt.

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: TMC am 03.01.05 - 00:11:53
Ich möchte eine DB-Ansicht kreieren, wo die Autoren nach der Anzahl deren Dokumente sortiert sind.
Das geht schlicht und ergreifend nicht (statisch).

Nun, abgewandelt geht das schon.

Mach eine Ansicht mit allen betreffenden Doks, und 1. Spalte kategorisiert.

Als Spaltenformel dann sowas wie
@DocDescendants(""; "% ") + @Name([Abbreviate];DeineAutoren)

Als Service bietet diese Lösung noch zusätzlich, dass beim Aufklappen der Kategorie alle Dokumente des jeweiligen Autors erscheinen  ;)
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 03.01.05 - 00:46:56
Hallo, Matthias,

mit @DocDescendants bekommst via "%" "Notes special text" zurück geliefert. Wie willst Du den denn sortieren ?

Ich schliesse nicht aus, dass mir hier jahrelang etwas verborgen geblieben ist, aber ich habe da so meine Zweifel.

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: TMC am 03.01.05 - 01:18:32
Hallo Bernhard,

in der Tat kann @DocDescendants Ärger bereiten.

Aber z.B. folgendes funktioniert tadellos in in einer (ascending!) sortierten Spalte bei mir:

_Authors := DeineAutoren;
_Val := @DocDescendants;
_Rest := (@Name([Abbreviate]; _Authors));
_Val + " - " + _Rest

D.h. es findet dann folgende Sortierung statt:
534 - User 17
74 - User 23
8 - User 3
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 03.01.05 - 01:22:56
Probier das mal in einer neuen Datenbank, Matthias, und schaue dabei darauf, welcher Autor als erster, zweiter, dritter usw. jemals Dokumente erstellt hat. Das dient dann auch der Sortierung - leider.

Soweit meine Erfahrung.

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: TMC am 03.01.05 - 01:25:19
Meine Erfahrung sieht da anders aus - siehe oben.

Aber am besten Bruce testet das mal.

Matthias
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Glombi am 03.01.05 - 09:11:43
Hallo Bernhard,

in der Tat kann @DocDescendants Ärger bereiten.

Aber z.B. folgendes funktioniert tadellos in in einer (ascending!) sortierten Spalte bei mir:

_Authors := DeineAutoren;
_Val := @DocDescendants;
_Rest := (@Name([Abbreviate]; _Authors));
_Val + " - " + _Rest

D.h. es findet dann folgende Sortierung statt:
534 - User 17
74 - User 23
8 - User 3
Ich habe es nicht getestet (zeitmangel), aber ich schätze, dass alphabetisch sortiert wird und nicht numerisch. D.h.
1
11
2

Oder? Alles andere würde mich jetzt überraschen.

Andreas
Titel: Re: Ansicht nach besten Autoren
Beitrag von: TMC am 03.01.05 - 11:28:48
Sorry Leute.

Mit o.g. Formel wird nur der Teil "_Rest" zur Sortierung verwendet, wohl weil @DocDesc. erst später berechnet wird beim Ansichtsaufbau.
Beim Testen war das dann Zufall, dass der User mit dem ersten Vornamen im Alphabet gleichzeitig die meisten Doks hatte (Murphy lässt grüßen).

Ergo: so nicht zu gebrauchen.
Außer es gibt generell nicht viele Autoren (vielleicht 10) in der DB, dann wäre
@Name([Abbreviate];DieAutoren)  + @DocDescendants(""; " (%)")
sicherlich auch eine Alternative, ist dann nur nicht sortiert.
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 03.01.05 - 15:46:44
Hallo Leute,

VIELEN DANK

für Eure Beiträge!!!

Ich hätte nie gedacht, dass die Creme der (Notes) Gesellschaft am ersten Arbeitstag des Jahres so hilfsbereit sein wird.
 ;)

Gruß
Bruce

P.S. Andreas, es ist bewunderlich, wie richtig Du die Leute einschätzen kannst!  8)
Titel: Re: Ansicht nach besten Autoren
Beitrag von: HarryB am 03.01.05 - 16:29:53
@Bruce

Muss es eine Ansicht sein oder würde auch zum Beispiel eine Dialogbox ausreichen? Über wie viele Autoren reden wir? Müssen alle dargestellt werden oder aber nur die Top10 oder Top20?

Wenn dir diese Statistik als Dokument ausreicht, hast du zwei Möglichkeiten:

1. Berechnung on demand, sobals das Dokument angefordert wird;
2. Berechnung periodisch (oder per Trigger) per Agent, zum Beispiel alle 30 Minuten (oder jedes mal, wenn ein neues Dokument eingestellt wird...)

Du kannst dann das Dokument in einer Dialogbox oder ganz normal darstellen lassen. Es würde sich dafür ein Profildokument anbieten. Oder aber, die Statisktik wird jedes mal neu erstellt und du pickst dir aus einer Ansicht der Statistikdokument, die nach Erstelldatum der Dokument sortiert ist, das erste (oder letzte, je nachdem) raus.

Wenn du es on demand machst, musst du das Dokument nicht mal speichern. Das ist wieder ein klassischer Fall der Äbwägung zwischen Perfomance und Speicherplatz.

Viele Grüße
Harry
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 03.01.05 - 20:37:25

...Wenn dir diese Statistik als Dokument ausreicht, hast du zwei Möglichkeiten:

1. Berechnung on demand, sobals das Dokument angefordert wird;
2. Berechnung periodisch (oder per Trigger) per Agent, zum Beispiel alle 30 Minuten (oder jedes mal, wenn ein neues Dokument eingestellt wird...)

Du kannst dann das Dokument in einer Dialogbox oder ganz normal darstellen lassen. ..


Hallo Harry,

danke für Deinen interessanten Vorschlag!

Könntest Du bitte diesen detailiert mit Formeln, Ansichten etc. erläutern?

Gruß
Bruce
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 03.01.05 - 21:02:58
"Bruce", Harry wird bestimmt antworten. Aber Formeln und Ansichten: Nelsja. Damit geht gar nix. LotusScript ist angesagt.

Das nur mal als Vorabinfo.

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: TMC am 03.01.05 - 21:14:17
Auf die schnelle:
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 03.01.05 - 21:20:02

...LotusScript ist angesagt.
Das nur mal als Vorabinfo...

Hallo Bernhard,

danke für die vorläufigen Angaben, kannst Du denn gleich oder erst morgen den Code veröffentlichen?  :P

Gruß
Bruce
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 03.01.05 - 21:21:10

  • Entsprechende Item(s) auslesen, die den/die Namen des Autors enthalten und z.B. einem Array anfügen
Tipp: Das ist absolut nix für ein Array (performancemässig) - das schreit regelrecht nach einer List-Variablen  ;)

HTH,
Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 03.01.05 - 21:23:51
Hallo Bernhard,

danke für die vorläufigen Angaben, kannst Du denn gleich oder erst morgen den Code veröffentlichen?  :P

Gruß
Bruce

Du kennst mich doch, Leo: Algorithmen immer, Code nie  ;D

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 03.01.05 - 21:25:04
Auf die schnelle:
...

Hallo Matthias,
danke, ich befürchte, dass ich die schnelle Nummer ziemlich lange verdauern werde... :)
Es sein denn, Bernhard hat heute doch gute Laune...  :-[
Gruß
Leo :)
Titel: Re: Ansicht nach besten Autoren
Beitrag von: TMC am 03.01.05 - 21:30:53
Leo, fang doch schon mal an und bau das Grundgerüst (Doc-Collection, Schleife etc.) und sag dann an wenn Du Hilfe brauchst. Poste dann einfach den bisherigen Code und sag an, was Dir konkret Probleme bereitet und wie die Randbedingungen sind (zu erwartende Dokumentenanzahl, wieviele Autorenfelder, erc.)  ;)
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 03.01.05 - 21:44:09
... und sag dann an wenn Du Hilfe brauchst...


Danke!
Also sind doch alle gleicher Meinung... :D

(http://home.arcor.de/teamplay/download/matrixSmith1.jpg)
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 04.01.05 - 01:19:14
Zwar haben wir wohl alle nicht solche Hackfressen wie die Gestalten auf dem Bild, aber sind offensichtlich wirklich wieder einer Meinung  ;)

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Tode am 04.01.05 - 10:40:09
Wenn wir jetzt schon beim Coden sind... warum dann mit DocumentCollection und Script arbeiten ???

Wir brauchen (in R6) genau 10 Zeilen Code (allerdings ist der Code schon mit allem möglichen Schnickschnak ausgestattet):

1. Ansicht, Kategorisiert nach Autor

1. Spalte:
Formel:
x := 1 ;
x,
nur Summen, Detailzeilen Verbergen. Die Formel ist nötig, weil sonst Notes die Spalte nicht als Ansichtsspalte zählt und man nicht per DBColumn zugreifen kann.

2. Spalte Author, Kategorisiert

Formel in einer Statistik- Maske, die per Dialogfeld angezeigt werden kann in einem Feld "berechnet zur Anzeige":

allKats := @DbColumn( "" : "NoCache" ; "" ; "KatTest" ; 2 );
allNumbers := @DbColumn( "" : "NoCache" ; "" ; "KatTest" ; 1 );

els := @Elements( allKats );

relNumbers := @Text( @Subset( allNumbers ; els ) );

relNumbersSort := @Right( "00000" + relNumbers ; 5 );

x1 := relNumbersSort + "~" + allKats;

x2 := @Sort( x1 ; [DESCENDING] );

sortKats := @Word( x2 ; "~" ; 2 );
sortNrs := @Text( @ToNumber( @Word( x2 ; "~" ; 1 ) ) );

sortNrs + " - " + sortKats

Gruß
Tode
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Bruce Willis am 04.01.05 - 22:07:53
AND THE WINNER IS...  ;)


(http://home.arcor.de/teamplay/download/neo.gif)

DANKE, Tode!

Gruß,
Leo
Titel: Re: Ansicht nach besten Autoren
Beitrag von: koehlerbv am 04.01.05 - 22:36:27
Tode hat da (wieder mal - und sein Hochhalten des @-Fähnchens verdient meine vollste Zustimmung !) was wertvolles und merkenswertes beigetragen.

Zu bedenken gilt aber, das @dbColumn bei knapp 64k in die Knie geht (siehe Doku). Deine DB darf also von der Anzahl der in Frage kommenden Dokumente nicht zu gross werden (die Berechnungsvorschrift für die "Kotzgrenze" findest Du auch in der Designerhelp).

Bernhard
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Tode am 05.01.05 - 08:24:56
danke für die Blumen... Eins hatte ich noch vergessen zu erwähnen, sollte aber jedem einigermassen intelligenten Programmierer sowieso klar sein:

Die Ansicht darf KEINE weiteren Kategorien enthalten, da ansonsten auch für diese Unterkategorien Summen gebildet würden, und die 1 : 1 Relation Summe : Author dadurch verloren ginge.

Ansonsten ist dem nichts mehr hinzuzufügen.

Schönen Tag
Tode  ;D
Titel: Re: Ansicht nach besten Autoren
Beitrag von: animate am 05.01.05 - 08:33:37
Ansonsten ist dem nichts mehr hinzuzufügen.

vielleicht noch ein Exkurs. Zu dem Thema Sortieren einer Liste mit Werten der Kombination Vorname Name - Nummer nach der Nummer ist bei Lotusgeek.com vor kurzem ein schönes Beispiel (http://www.lotusgeek.com/SapphireOak/LotusGeekBlog.nsf/plinks/ROLR-685SR9) erschienen
Titel: Re: Ansicht nach besten Autoren
Beitrag von: Tode am 05.01.05 - 08:40:55
Mensch... mit dem Ding spart man Sich ja nochmal einige Zeilen code... Toller Link.

Das werde ich mir merken...

Ach ja: Eins ist jetzt natürlich NICHT schön: Wenn zwei Autoren den gleichen Wert haben, dann werden Sie absteigend nach Alphabet sortiert...
Besser wäre natürlich: Absteigend nach Nummer und danach aufsteigend nach Name.
Auch dafür gibt es natürlich Lösungen, aber die darf sich der geneigte Leser selbst basteln... ein wenig Wissen muss ich ja auch für mich behalten... *g*

Gruß
Tode