Autor Thema: Dynamisch die Werte einer ComboBox erstellen  (Gelesen 5057 mal)

Offline haarig

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Dynamisch die Werte einer ComboBox erstellen
« am: 17.06.07 - 14:59:19 »
Hallo Leute,

ich habe schon ein bißchen gesucht, habe aber nichts zu meinem Problem gefunden (auf jeden Fall nichts, was mir geholfen hat).

Ich habe in einer Form ein Field als ComboBox mit dem Namen DeviceType. Die Werte werden automatisch aus einer View übernommen.

Wenn der User dort nun eine Auswahl trifft sollen automatisch in der ComboBox DeviceTypeSpecial die Werte zur Auswahl bereit stehen.

Das ist mein bisheriger Ansatz. Problem dabei ist, dass nur ein Wert in der ComboBox zur Auswahl steht, auch wenn eigentlich mehrere zu erwarten sind.
Code
REM
{ Wenn ein Gerätetyp gewählt ist, wird auch die Auswahl für Geräteuntertypen
dynamisch erstellt };
@If(DeviceType="";"";
   @Sort(
      @Unique(
         @DbLookup("":"NoCache";"":"";"VDEVEBYCAT";DeviceType;2)
      )
   )
)
VDEVEBYCAT ist der Alias für eine View, die doppelt kategorisiert ist. Erste Kategorie ist nach DeviceType und zweite nach DeviceTypeSpecial.
Problem ist, wie oben schon gesagt, dass immer nur ein Wert zur Auswahl steht.

Beispiel:
Wählt der Benutzer als DeviceType "Festplatten" ist bei DeviceTypeSpecial die Auswahl nur IDE, obwohl es auch schon Dokumente mit SCSI gibt.  :-:

Ich hoffe ihr könnt einem Notes-Anfänger helfen.

Vielen Dank schon mal.
Gruß

Hendrik

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #1 am: 18.06.07 - 08:00:58 »
Hast du in den Eigenschaften der Komboboxen jeweils die Aktualisierungsoptionen richtig gesetzt?

Beim Feld DeviceType muss "Felder bei Schlüsselwortänderung aktualisieren" und beim Feld DeviceTypeSpecial "Auswahl bei Dokumentaktualisierung aktualisieren" gesetzt sein.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline haarig

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #2 am: 18.06.07 - 08:29:03 »
Ja, beide Optionen sind so gesetzt.
Trotzdem bleibt das Problem.

Ich bin weiter ratlos und würde mich über Hilfe freuen  :-:
Gruß

Hendrik

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #3 am: 19.06.07 - 19:40:42 »
Sorry, dass ich mich heute abend erst deinem Problem annehmen konnte.

Die zweite Spalte darf nicht kategorisiert sein.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline haarig

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #4 am: 19.06.07 - 20:30:17 »
...
Die zweite Spalte darf nicht kategorisiert sein.
..
Dank dir schon mal.

Hmm, die zweite Spalte ist natürlich kategorisiert. Gibt es eine irgendeine Möglichkeit trotz kategorisierter zweiter Spalte alle Werte der zweiten Spalte zu erhalten? Oder ist das dann prinzipiell nicht möglich ohne eine extra View dafür zu erstellen?
Gruß

Hendrik

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #5 am: 20.06.07 - 07:42:08 »
Gibt es eine irgendeine Möglichkeit trotz kategorisierter zweiter Spalte alle Werte der zweiten Spalte zu erhalten?

Nein.


Oder ist das dann prinzipiell nicht möglich ohne eine extra View dafür zu erstellen?

Ja. Du brauchst in deinem Fall eine extra ansicht dafür. Die kann auch versteckt sein.

Aber was spricht denn dagegen? Das hat sogar einen nicht zu unterschätzenden Vorteil. Stell dir mal folgende Situation vor: Du hast eine fertige Datenbank mit solch einer Auswahlfunktion wie du sie jetzt machen willst. Diese basiert auf einer sichtbaren Ansicht. Nun kommt die Anforderung, das eben diese Ansicht grundlegend verändert werden soll. Die Probleme mit der Auswahl sind vorprogrammiert. Benutzt du eine versteckte Ansivht, kannst du die, für die User sichtbare ändern wie du lustig bist, ohne das die Auswahl davon betroffen ist.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline haarig

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #6 am: 22.06.07 - 18:13:24 »
Ich hab das jetzt soweit mit einer neuen View hinbekommen. Jetzt habe ich aber noch ein anderes Problem bemerkt. Und zwar wenn ich eine Auswahl für Typ und Untertyp getroffen habe und dann noch mal den Typ änder, steht der Untertyp noch drin, obwohl der dann nicht zum ausgewählten Typ passt. Das Untertyp Feld müsste also zurückgesetzt werden, wenn das Typ Feld geändert wird.

Wie kann man das denn am besten erreichen?
Gruß

Hendrik

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #7 am: 22.06.07 - 19:10:08 »
Das ist nicht ganz trivial.

Mal so ins Blaue gedacht. Das zweite Kombinationsfeld müsste in der Auswahlformel auf ein verstecktes berechnetes Feld mit einer @DbLookup-Formel verweisen. Dieses DbLookup hat als Key-Parameter das erste Kombinations-Feld eingetragen. Ob das dann aber sauber funktioniert, da bin ich mir nicht ganz sicher.

Andere Alternative wäre die gesamte Auswahl über einen Hotspot zu machen. Im Code kannst du dann die Felder entsprechend bearbeiten.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #8 am: 23.06.07 - 10:24:41 »
Scheint auf den ersten Blick eigentlich doch ganz einfach zu sein. Ich habe mal eine Test-DB aufgesetzt und funktioniert das ganz ohne Klimmzüge.

Ich hänge die DB mal dran. Dann kannst du dir das mal anschauen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline haarig

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #9 am: 23.06.07 - 12:01:32 »
Danke für deine großen Bemühungen.

Zuerst hab ich gedacht, ok, problem gelöst. Dann hab ich aber nicht gefunden, was bei dir anders war. Dann hab ich aber gesehen, dass ich auch Werte erlaube, die nicht in der Liste vorkommen, weil der Benutzer auch eigene Werte eintragen darf. Und wenn man das erlaubt, hat man halt die von mir beschriebenen Probleme. Trotzdem danke, weil ich das jetzt dadurch erkannt habe, woran das überhaupt liegt.

Ich werde wohl noch weitersuchen müssen. Gäbe es nicht eine Möglichkeit über Events das Verhalten zu erzeugen. Gibt es ein Event, das bei einer Änderung der ComboBox abgefangen werden kann? Dann müsste man ja auch LotusScript benutzen? Man müsste dann auch irgendwie über das Script auf das Feld zugreifen und den Wert auf "" setzen, jedesmal, wenn die eine ComboBox geändert wird.
Wäre das noch ein möglicher Ansatz? Wenn ja, wie geht man da ran?
Gruß

Hendrik

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #10 am: 23.06.07 - 13:53:05 »
Auch dafür gibt es eine Lösung.

Markiere in den Feld - Eigenschaften des Feldes DeviceType die Option "Exiting/OnChange-Ereignisse nach jeder Wertänderung ausführen".

In den OnChange-Event des Feldes trägst du folgenden Code ein (Starten "Client" - LotusScript):

Code
	
	Dim workspace As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	
	Set uidoc = workspace.CurrentDocument
	Set doc = uidoc.Document
	
	doc.TypeOfDevice = ""

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline haarig

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Dynamisch die Werte einer ComboBox erstellen
« Antwort #11 am: 23.06.07 - 18:11:04 »
Vielen Dank, Axel.

Hat alles super geklappt.

 :)
Gruß

Hendrik

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz