Autor Thema: Unwissenheite im Bezug auf eine PROMPT_OKCANCELLIST ... Bitte um Ratschläge  (Gelesen 2119 mal)

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Hallo zusammen,
würde mich freuen, wenn mir hier jemmand helfen könnte!!!


Problematik:

Ich habe eine Konfigurationsmaske in der ich eine Anwendung in ein Textfeld schreibe und daneben noch ein Listenfeld in das ich alle vorhandenen Versionen dieser Software eintrage.

Pro Anwendung unserer Firma soll hier jeweils ein Dokument (Software & vorhandene Versionen erstellt werden.


In meiner Db gibt es noch eine zweite Maske. In dieser habe ich ein Feld Anwendung und ein Feld Release eingefügt habe. Die Anwendung kann man über eine Dialogliste auswählen und neben dem Feld Release habe ich einen Buttton platziert.

Wenn ich jetzt auf den Button klicke (Code angehängt) wird im Hintergrund eine Collection über die Anwendungen erstellt.

Ich möchte jetzt, das ich alle für die Anwendung vorhandenen Release in einer
„PROMPT_OKCANCELLIST“ angezeigt bekomme, ich eine Release auswählen kann und dies soll dann in mein Feld DocRelease geschrieben werden den Zugriff mit der Collection habe ich, meine Frage ist jetzt nur wie fülle ich die „PROMPT_OKCANCELLIST“ mit den Werten?



Gruß Björn




Skript:


Sub Click(Source As Button)
   
'Deklarieren Variablen Backend   
   
   Dim ns As New NotesSession
   Dim db As NotesDatabase
   Dim aview As NotesView
   Dim key As String 'Schlüssel ist DocAnwendung
   Dim acol As NotesDocumentCollection
   Dim aItem As NotesItem
   Dim release As String
   Dim adoc As Variant
   
   

   
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As NotesSession
   Dim doc As NotesDocument
   Set session = New NotesSession
   Set db = session.currentDatabase
   Set uidoc = workspace.CurrentDocument
   Dim temp As Variant
   Dim tmp As String
   Set CurrentUiDoc = workspace.CurrentDocument
   Set doc=workspace.CurrentDocument.document
   Dim item As NotesItem
   
'Ansicht durchsuchen   
   
   key = uidoc.fieldgettext( "DocAnw" )
   Set aview = db.GetView("vkeys") ' Ansicht ist voranden und die Collection greift auch
   
   Set acol = aview.GetAllDocumentsByKey(key,exact)
   
   If aCol.Count <> 0 Then ' Wenn mindestens ein Dokument zum asugewählten Schlüssel existiert,  Verarbeitung starten

      Set aDoc = aCol.GetFirstDocument
      
   ‘Bis hierhin funktioniert alles…. ADoc ist im Zugriff!!



UND HIER BRÄUCHTE ICH HILFE......

      
         
            
      
            
   Else   
      Msgbox "Zu diesem Wert existieren keine passenden Schlüssel"
   End If
   
End Sub

botschi

  • Gast
Geh in einer Schleife die Collection durch und schreibe alle Werte auf ein Array.
Der Aufruf ist dann so:
askme = ws.Prompt (PROMPT_OKCANCELLIST,   "TITEL","NACHRICHT", "", ARRAY)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Geh in einer Schleife die Collection durch und schreibe alle Werte auf ein Array.

Das ist aber nicht besonders performant. Schneller geht es, wenn man das Array via Evaluate über "@Unique (@dbLookup (..." füllt.

Und wenn ich mir die Anforderung so anschaue, dann braucht es hierfür doch überhaupt kein LS, sondern man kann das gleich mit zwei Zeilen Formelsprache erledigen.

Bernhard

botschi

  • Gast
Wollte ich auch erst schreiben, aber wenn er schon 90% mit Script hat und die Collection auch, dann fehlt ihm ja wirklich nicht mehr viel zum Ziel.

Matthias

Offline OCS

  • Aktives Mitglied
  • ***
  • Beiträge: 205
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Danke erst mal für die Tipps! Wie müsste ich das mit Formelsprache machen? Wenn das schneller ist würde ich das dann lieber so machen.....

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Aus Deinem
Set acol = aview.GetAllDocumentsByKey(key,exact)
wird einfach ein @dbColumn mit einem @Unique darüber.

Dann folgt das adäquate @Prompt mit dem Resultat von oben. Anschliessend ein @SetField, um das Resultat zu übertragen.
OK, ist ein Dreizeiler.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz