Domino 9 und frühere Versionen > ND6: Entwicklung
Dialogbox Werte in NotesScript einlesen
(1/1)
pwluky:
Habe ein Problem beim Anzeigen von Dialogboxwerten in NotesScript, und zwar:
1. habe ich eine Maske mit einem Dialogbox-Feld, welches auch mehrere Werte enthalten kann:
Feld: Mitglieder
Inhalt-Datensatz 1: Lukas, Kurt, Rudolf
Inhalt-Datensatz 2: Peter, Gustav
Wobei die Namen der einzelnen Mitglieder getrennte Werte sind, d.h. auch durch einen Zeilenumbruch dargestellt werden können.
2. Habe ich eine Ansicht in der diese Dokumente angezeigt werden:
Ansichtname: _gruppenmitglieder
Ansicht:
DatensatzNr. Gruppenmitglieder Ersatzdienst
#1 Lukas Chef1
Kurt
Rudolf
#2 Peter Chef2
Gustav
3. Nun möchte ich von einem Mitglied z.B. von Kurt den Ersatzdienst ermitteln, was in obigem Beispiel "Chef1" wäre. Und zwar mit folgendem Script:
Dim view As NotesView
Dim docView As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView("_gruppenmitglieder")
Set docView = view.GetFirstDocument
While Not(docView Is Nothing)
Msgbox docView.Gruppenmitglieder(0)
If Arraygetindex(Split(docView.Gruppenmitglieder(0),","),doc.Mitglieder(0),5) <> Null Then
Msgbox "gefunden MA: " & Implode(docView.Gruppenmitglieder(0))
End If
Set docView = view.GetNextDocument(docView)
Wend
Problem:
Das Problem ist, dass die Variable docView.Gruppenmiglieder(0) nicht "Lukas, Kurt, Rudolf" sonder nur "Lukas" ausgibt und die restlichen Werte "verschluckt"!! :-(
Vielleicht gib's ja eine einfache Erklärung dafür?
Danke & Grüße
Lukas
Marinero Atlántico:
--- Zitat von: pwluky am 07.02.05 - 16:38:56 ---
Problem:
Das Problem ist, dass die Variable docView.Gruppenmiglieder(0) nicht "Lukas, Kurt, Rudolf" sonder nur "Lukas" ausgibt und die restlichen Werte "verschluckt"!! :-(
Vielleicht gib's ja eine einfache Erklärung dafür?
--- Ende Zitat ---
Ja.
Kurt ist in docView.Gruppenmitglieder(1)
und Rudolf in docView.Gruppenmitglieder(2)
dies könnte helfen, syntaktisch nicht unbedingt korret:
--- Code: ---Dim iGMem as NotesItem
set iGMem = docView.getFirstItem("Gruppenmitglieder")
forall elemGroup in IGMem
msgbox elemGroup
end forall ' heisst möglicherweise anders.
--- Ende Code ---
Roalf:
ganz verstanden hab ich es nicht, mit den Gruppenmitglieder... Liegt wohl am Karneval ;D
Aber eine "Problemstelle" hab ich gefunden:
gerade bei solchen Tests wo man viel ausprobiert sollte man sich über den Viewrefresh Gedanken machen.
also hinter dem Statement
view = db.GetView("_gruppenmitglieder")
gleich ein
view.refresh
hinterherschieben.
'ähh...view.refresh mit call? oder Parameter? weis nicht mehr...zeigt aber die Hilfe.
Anmerkung: so ein refresh erspart einem viel ungemacht....aber kostet auch bannig viel Performance, sollte also mit Beacht eingesetzt werden...und die Frage wo ja und wo nein...ist ohne den exakten Kontext nicht zu beantworten....
Thomas Schulte:
Total, komplett falscher Ansatz. Und zwar sowohl von der Frage her, als auch bei beiden Antworten.
Um das Problem ohne irgendwelche Fisimatenen zu lösen und vor allem ohne den Blödsinn jedesmal durch due Liste der Dokumente zu gehen und mit Arraygetindex zu arbeiten brauchst du nur zwei Dinge.
Erstens eine Ansicht, sortiert nach deinen Gruppenmitgliedern (und unter Umständen noch irgendeinem anderen Key ums eindeutig zu machen wenn der Typ in mehreren Gruppen drin ist) und dem guten alten view.getdocumentbyKEy("SoEinSchlawiner")
Also
set me_view =me_db.getview("DeinView")
set me_doc = me_view.getdocumentmentbyKey("Jetztaberraushier")
if not me_doc is nothing then
print "Der Saubeutel hat jetzt den Chef " + me_doc.ISSCHEFFE(0)
else
print "Weis nix von Scheffe, macht nix!"
end if
billygates:
Warum nimmst Du nicht die gute alte Formelsprache hierfür?
1. Ansicht "_gruppenmitglieder" mit
- Spalte 1 Gruppenmitglieder als Kategorien
- Spalte 2 Esatzdienst
2. In Maske
- Dein Feld "Mitglieder"
- Ausgabefeld (Text - berechnet) mit
@IfError(
@DbLookup( Klasse : Cache ; Server : Datenbank ; "_gruppenmitglieder" ; Mitglieder ; 2);
"")
Der @IfError ist neu in R6, bis R5 mußt Du den @IF(@IsError...) nehmen.
Es geht alternativ auch über den @Picklist
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln