Autor Thema: Dialogbox Werte in NotesScript einlesen  (Gelesen 1648 mal)

Offline pwluky

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Dialogbox Werte in NotesScript einlesen
« am: 07.02.05 - 16:38:56 »
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

  • Gast
Re: Dialogbox Werte in NotesScript einlesen
« Antwort #1 am: 07.02.05 - 16:46:52 »

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?

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.  

Offline Roalf

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Ich bin ein speicherrenitentes Programm!
Re: Dialogbox Werte in NotesScript einlesen
« Antwort #2 am: 07.02.05 - 17:24:13 »
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....
Notes: Unbegreifliche Lösungen für unlösbare Probleme

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Dialogbox Werte in NotesScript einlesen
« Antwort #3 am: 07.02.05 - 17:56:55 »
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
« Letzte Änderung: 08.02.05 - 12:06:58 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline billygates

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • Ich kann 'proprietär' nicht mehr hören!
Re: Dialogbox Werte in NotesScript einlesen
« Antwort #4 am: 07.02.05 - 19:08:26 »
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz