Autor Thema: Äquivalent zu @picklist in Skript  (Gelesen 4370 mal)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Äquivalent zu @picklist in Skript
« am: 08.11.10 - 23:18:56 »
Hallo zusammen,

ich muss in ein existierendes Skript folgendes einbauen.

Feld 1 hat einen bestimmten Wert. Abhängig vom diesen Wert soll eine Auswahlbox in Feld2 verschiedene vorgegebene Werte einblenden, von denen dann genau einer ausgewählt werden soll.

Es gibt eine Ansicht mit 2 Spalten, auf die ich zugreifen will. In der ersten steht der Wert von Feld1, in der zweiten ist ein Feld mit Mehrfachwerten hinterlegt aus denen ein Wert ausgewählt werden soll.
Es sol also eine Auswahlmöglichkeit eines Wertes aus dieser 2.Spalte erscheinen .

Bei Formel wäre das wohl was für @picklist, wie kriegt man das in skript hin ?
Habe mit der Pickliststrins methode probiert, aber es klappt nicht .

Irgendwelche Tipps ??

Grüße

Wilhelm
« Letzte Änderung: 08.11.10 - 23:26:22 von Wilhelm Weber »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Äquivalent zu @picklist in Skript
« Antwort #1 am: 09.11.10 - 06:29:50 »
@Picklist in Formel würde nicht funktionieren. Du willst ja nicht aus einer Ansicht etwas auswählen, sondern aus einer Liste zu einem Wert. Mit @Picklist könntest Du Spalte1 auswählen und bekämst Spalte2 zurück. Du willst aber in Spalte1 nach einem gegebenen Wert suchen und dann einen der dazugehörigen Werte aus Spalte 2 auswählen. In Formel würdest Du @Prompt in Kombination mit @DBLookup verwenden.

Für die Auswahlliste gibt es in Script NotesUIWorkspace.Prompt, oder Du baust Dir eine eigene Dialogbox, die Du dann mit NotesUIWorkspace.Dialogbox bedienst. An die auszuwählenden Werte kommst Du mit NotesView.GetDocumentByKey und dann entweder den Feldnamen oder NotesDocument.ColumnValues

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Äquivalent zu @picklist in Skript
« Antwort #2 am: 09.11.10 - 11:09:30 »
Hallo Peter,

danke für die Info, habe was versucht aber es klappt nicht wirklich.

Mit Notsview.GetDocumentByKey muss ich doch den wert aus Feld 1 nehmen aber dann komme ich nicht weiter.

ist nicht wirklich mein gebiet, hast du einen kleinen Ansatz dafür ?

Grüße

Wilhelm

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Äquivalent zu @picklist in Skript
« Antwort #3 am: 09.11.10 - 11:22:18 »
Set doc = view.GetDocumentByKey (suchwert, true)

damit bekommst Du das Dokument in der Ansicht, das in der ersten sortierten Spalte den suchwert enthält. Von diesem Dokument kannst Du dann entweder den Inhalt der Spalte 2 auslesen (mit doc.ColumnValues) oder direkt auf das Feld gehen, das in der Spalte 2 angezeigt wird (ColumnValues ist eigentlich nur dann sinnvoll, wenn in der Spalte Werte zusammengerechnet werden, dann spart man, das nochmal nachzubauen).

So erhältst Du die Werte, aus denen Du einen auswählen willst. Anschließend brauchst Du dann das Prompt zur Auswahl.

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Äquivalent zu @picklist in Skript
« Antwort #4 am: 09.11.10 - 12:01:43 »
So habe jetzt das Dokument gefunden und direkt auf das 2. Feld zugegriffen

Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim view As notesview
   Dim doc As NotesDocument
   Dim doc As NotesDocument
   Dim uidoc As notesuidocument
   Dim loopdoc As NotesDocument
   Dim item As Variant
   Set db = session.CurrentDatabase
   Set uidoc = workspace.CurrentDocument
   suchwert = uidoc.FieldGetText( "Feld1" )
   Set view = db.GetView("ansicht")
           Set doc = view1.GetDocumentByKey (suchwert, True)   
           Item = doc.Feld2

Jetz hakt es noch bei der Auswahl des Wertes . Kannst du da nochmal unterstützen ?
Grüße
Wilhelm

klaussal

  • Gast
Re: Äquivalent zu @picklist in Skript
« Antwort #5 am: 09.11.10 - 12:05:35 »
Was sagt der Debugger ?

Wo "hakt" es ?

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Äquivalent zu @picklist in Skript
« Antwort #6 am: 09.11.10 - 12:27:38 »
Variant does not contain an Object

response = ws.Prompt (PROMPT_OK, _
  "Bitte auswählen", _
  "Bitte auwählen.", „“, item(0))

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Äquivalent zu @picklist in Skript
« Antwort #7 am: 09.11.10 - 12:29:43 »
Set doc = view1... kann nicht sein, da Du nur view definiert hast

Also

Set doc = view.GetDocument...

Danach

Dim auswahl As Variant
auswahl = workspace.Prompt (PROMPT_OKCANCELLIST, "Titel", "Bitte auswählen", "", doc.Feld2)

Hab das nur sinngemäß aus der Hilfe abgeschrieben, aber selbst noch nie verwendet, da ich dazu eigene Dialogboxen benutze.

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Äquivalent zu @picklist in Skript
« Antwort #8 am: 09.11.10 - 12:54:06 »
Set doc = view1... kann nicht sein, da Du nur view definiert hast

Richtig, es war auch view, falsch kopiert

Der 2. fehler war verwendung von ws statt workspace wie es definiert war

@ Peter und klauss

Danke für eure Hilfe, es läuft !

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz