Autor Thema: Flexible (dynamische) Ansichtsgestaltung  (Gelesen 2571 mal)

y20frank

  • Gast
Flexible (dynamische) Ansichtsgestaltung
« am: 05.10.06 - 10:01:49 »
Hallo zusammen,

folgendes Problem: In verschiedenen DBs habe ich 10 (oder mehr) Ansichten. Diese Ansichten enthalten zur Zeit ein SELECT, der bestimmte Einträge aus dem Feld "Nachname" herausfiltert.
Es ist so, dass für jede der 10 Ansichten jeweils ein bestimmter Buchstabenkreis angezeigt werden soll.

Beispiel:
Ansicht 1: A - Cr
Ansicht 2: Cs - Gi
Ansicht 3: Gj - Ko
u.s.w.

Dieses wird mit SELECT @Left(Nachname, 1) >= "A" & @Left(Nachname, 2) <= "CR") dezeit realisiert.

Wie man sich vorstellen kann, hat eine solche Buchstabenaufteilung innerhalb einer Arbeitsgruppe aber nur eine geringe Halbwertzeit, so dass diese alle paar Wochen über den Haufen geschmissen wird. Folge: Die SELECTs in den Ansichten müssen allesamt neu gemacht werden.

Nun dachte ich, das könnte man über ein Profildokument einfacher lösen (dort könnte z. B. einer der Arbeitsgruppen-Leute selbst die Buchstabenbereiche einpflegen), in dem man Buchstabenbereiche Von-Bis defineirt und diese dann in der Ansicht aus dem Profildokument ausliest (@GetProfileField). Schön, aber die Formel funktioniert ja laut Hilfe nicht in einer Ansicht... schade! :P

Hat jemand eine Idee, wie man das auf eine andere Art und Weise lösen kann (ohne das halt in das Design der Ansicht eingeriffen werden muss)...?!

Notes Client 6.5.3, läuft auch dort (und nicht etwa im Web).

Danke :-)
Gruß
Frank
« Letzte Änderung: 05.10.06 - 10:04:14 von y20frank »

Glombi

  • Gast
Re: Flexible (dynamische) Ansichtsgestaltung
« Antwort #1 am: 05.10.06 - 10:06:57 »
Dann müsstest Du einen Agenten schreiben, die in alle Dokumente einträgt, in welcher Ansicht das Dokument auftauchen soll.

Embedded View scheidet wohl aus, da es mehrere Keys gibt. Und das geht ja leider nicht.

Andreas

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Flexible (dynamische) Ansichtsgestaltung
« Antwort #2 am: 05.10.06 - 10:08:16 »
Wie wärs denn wenn Du ein Feld im Dok. anlegst das Du dann mit der Info aus dem Profildokument auf einen entsprechenden Wert (1-10) setzt.
Dieses Feld kannst Du dann der Ansicht zuordnen.

Boris

Offline Wilhelm

  • Aktives Mitglied
  • ***
  • Beiträge: 214
  • Geschlecht: Männlich
Re: Flexible (dynamische) Ansichtsgestaltung
« Antwort #3 am: 05.10.06 - 10:23:24 »
Moin auch,

was Andreas schreibt ist eine brauchbare Lösung, in Abhängigkeit vom Dokumentvolumen und Replizierhäufigkeit würde ich aber auch folgende Lösung noch in Betracht ziehen:

Erstelle dir eine ausreichene Anzahl an Ansichten.
Erstelle ein Profildokument mit entsprechend vielen Feldern Jeweils 2 Pro Ansicht. Feld 1 = Name der Ansicht Feld 2 = Selektionsformel.
Schreibe dir einen Agenten der die Auswahlformel der Ansicht ändert  (Mittels view.SelectionFormula = "neue Formel".
Anschließend muss der Agent noch den Namen der Outline-Entries ändern, die auf die Ansichten verweisen.

Gruß

Willi



Ich will endlich die F9-Taste in diesem Forum haben!!!

y20frank

  • Gast
Re: Flexible (dynamische) Ansichtsgestaltung
« Antwort #4 am: 05.10.06 - 15:57:22 »
Hallo,

vielen Dank ihr Drei für die Tipps! Ich denke, dass ich den Vorschlag von Willi dahingehend weiter verfolgen werde und mittels ' view.SelectionFormula = "neue Formel" ' *) das durchziehe!

Gruß
Frank :-)

*) Nachtrag: Öhm, braucht der Anwender, der die Buchstaben da reinhacken soll, dafür nicht Entwickler-Rechte, da er ja das Design der Ansicht ändert...?! Das sollte natürlich nicht der Fall sein...
« Letzte Änderung: 05.10.06 - 16:30:47 von y20frank »

Offline Wilhelm

  • Aktives Mitglied
  • ***
  • Beiträge: 214
  • Geschlecht: Männlich
Re: Flexible (dynamische) Ansichtsgestaltung
« Antwort #5 am: 06.10.06 - 08:34:54 »
Hi Frank,

nein, nicht unbedingt. Damit keine Probleme im Bezug auf Performance und Sicherheit entstehen würde ich das mit einem periodischen Agent lösen, der das in der Nacht macht. Damit würdest Du auch die Entwickler-Rechte für den Benutzer umgehen.

Gruß

Willi
Ich will endlich die F9-Taste in diesem Forum haben!!!

y20frank

  • Gast
Re: Flexible (dynamische) Ansichtsgestaltung
« Antwort #6 am: 06.10.06 - 13:03:31 »
Hallo zusammen,

also, ich habe das nun wie folgt gelöst:

1.) Ein Konfigurationsdokument angelegt, welches die erforderliche Anzahl an Felder für "BuchstabeVon" und "BuchstabeBis" sowie jeweils einen Flag "anzeigen" dazu enthält (leere Felder müssen ja nicht in der Gliederung angezeigt werden).

2.) Die einzelnen Gliederungselemente tragen die Beschriftung der jeweiligen Buchstaben-Ranges und werden - wenn Flag "anzeigen" markiert ist - auch eingeblendet (Hide-When-Formel).

3.) Im Konfig-Dokument selbst habe ich einen Button erstellt, der einen Agent startet, der sinngemäß folgendes beinhaltet:

Code
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim docP As NotesDocument
	Set db = session.CurrentDatabase
	Set docP = db.GetProfileDocument("($Config)")
	
	' ---------------------------------------
	' --- Ansichten anpassen
	' ---------------------------------------	
        . . .
	von = Ucase(docP.Ansicht2_Von_16(0))
	vonL = Len(von)
	bis = Ucase(docP.Ansicht2_Bis_16(0))
	bisL = Len(bis)	
	formula2 = "SELECT @UpperCase(@Left(@UpperCase(Nachname);" & vonL & ")) >= '" & von & "' & @UpperCase(@Left(@UpperCase(Nachname);" & bisL & ")) <= '" & bis & "'
	Print "Ansichten werden aktualisiert. Bitte warten... " & formula2
	Set view = db.GetView("Ansicht212-16")
	view.SelectionFormula = formula2
   usw . . .

4.) Die zur Änderung im Konfig-Dokument berechtigten User haben die Rolle "[Buchstaben]" bekommen. Damit können sie das Konfig-Dok editieren. Außerdem haben die User Editorrechte und die Option "Gemeinsame Ansichten/Ordner" erstellen". Das reicht aus, damit sie den Agenten ausführen und damit die Ansichten ändern können.


Danke an Alle für die Tipps!

Gruß
Frank
« Letzte Änderung: 06.10.06 - 13:06:36 von y20frank »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz