Listbox refresh - wie?

  • Hallo!
    Ich möchte vorausschicken, daß viel Erfahrung mit Lotusscript in Kombination mit Lotus Approach habe, jedoch noch kaum Erfahrung mit der Entwicklung in Notes.
    Nun versuche ich, eine bestehende Anwendung am Lotus Notes Client nachzuvollziehen, da nicht absehbar ist, wie lange Approach noch verwendbar sein wird.
    Seit Tagen versuche ich das folgende Problem zu lösen:
    Es wird nach bestimmten Suchkriterien ein Array erstellt, der in einer Listbox präsentiert werden soll. Daraus soll dann eine Zeile selektiert werden, die dann zur weiteren Verarbeitung dient.
    Obwohl ich das Listenfeld in der Maske als bearbeitbar mit allen Refresh-Funktionen definiert habe (auch in der Maske ist "automatisch aktualisieren gesetzt), bleibt es immer leer - obwohl ich Debugger sehe, daß die Daten vorhanden sind. Wenn ich dann ein call uidoc.refresh ausführe, sind die Daten auch weg.
    Das ist der relevante Code


    Set ws = New NotesUIWorkspace
    Set uidoc = ws.ComposeDocument ( , , "Liste" )
    Set doc = uidoc.document
    doc.Lbx = Array <-- hier sind die Daten als values des Feldes Lbx noch im Debugger sichtbar
    call uidoc.refresh


    Für jede Hilfe wäre ich dankbar.

  • Könnte es sein, daß eine Listbox in Notes anders zu verstehen ist als in Lotus Approach?
    Dort ist es sehr einfach: der Array wird zugewiesen. On Click wird die Auswahl als Index mitgeteilt.
    Gibt es vielleicht irgendwo ein Beispiel, wie man das in Notes löst?

  • Habe jetzt herausgefunden, daß das Feld Lbx nur dann angezeigt wird, wenn es als Dialogliste definiert ist.
    Allerdings ist dann nichts auswählbar.
    Hat irgendjemand eine funktionierende Lösung für dieses Problem?
    Eigentlich ist die Problemstellung ganz einfach:
    Aus einer Kunden-Datenbank wird nach verschiedenen Kriterien eine Liste bestehend aus Name und Adresse in Form eines Arrays erstellt. Diese soll dem Anwender präsentiert werden, der dann eine bestimmte Zeile zur weiteren Verarbeitung auswählt.
    In Lotus Approach ist das eine einfache Sache, in Lotus Notes suche ich seit einigen Tagen nach einer funktionieren Lösung.

  • Solange du der Listbox keine Auswahloptionen gibst kann natürlich auch keiner etwas auswählen.
    Wie du das machst habe ich ja schon geschrieben und auch wo du in der Designer-Hilfe die entsprechenden Infos findest.


    Hast du dir das denn schon angeschaut ?

  • Also danke für die sicherlich gutgemeinten Ratschläge. Die Designer-Hilfe verdient meiner Meinung nach zumindest in diesem Bereich den Namen nicht. Immer ist die Rede von Xpages, Views und Documents, aber nirgends wird auch nur annähernd erklärt, wie man aus einem generierten Array eine Listbox in einer Maske erstellen kann, aus der dann der Anwender eine Auswahl trifft.
    Auch die Suche im Internet hat zu nichts geführt.
    Vielleicht bin ich zu dumm dazu, aber immerhin schon 40 Jahre in der Branche tätig und bilde mir ein, ein gerütteltes Maß an Erfahrung mit verschiedensten Systemen und Tools zu haben. So auf der Stelle zu treten ist mir bisher noch nicht passiert.
    Das soll jetzt keine Klage sein, aber ich bin eigentlich schon mutlos und drauf und dran, Lotus Notes zu vergessen.

  • Ich glaube du verwechselst da bzgl der Hilfe etwas:


    Die Hilfe ist eine Referenz um Dinge nachzuschauen, sie liefert dir aber keine Lösungen für spezielle Fragestellungen, wie in deinem Fall Übernahme Array in Feldoptionen.


    Umeli und auch ich haben dir Hinweise gegeben wo du in der Hilfe die benötigten Informationen finden kannst, um dein Problem dann zu lösen.


    Aber dazu musst du dich sowohl mit der Hilfe wie auch mit den Grundlagen von Notes beschäftigen.


    Ohne das ist die einzige Möglichkeit dir jemanden zu suchen, der das für dich machen kann.


    Wir können hier im Forum immer nur punktuelle Hilfestellung geben, aber keine Grundlagenschulungen erteilen

  • paul: Es wäre ein feiner Zug gewesen, hättest du hier mit angegeben, dass du bereits eine Antwort erhalten hast und nur auf eine schnelle Lösung aus bist. In dieser Form, ist das nicht die feine englische Art...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Ich zitiere mal die Hinweise und Vorschläge:
    "Such in der Designerhilfe mal nach Dialog list fields im Index"
    "Hint: Feldeigenschaften, 2. Reiter, Choices ... .... "
    "Umeli und auch ich haben dir Hinweise gegeben wo du in der Hilfe die benötigten Informationen finden kannst, um dein Problem dann zu lösen.Aber dazu musst du dich sowohl mit der Hilfe wie auch mit den Grundlagen von Notes beschäftigen.Ohne das ist die einzige Möglichkeit dir jemanden zu suchen, der das für dich machen kann."


    Die erste wirklich verwertbare Antwort habe ich im IBM Forum erhalten (dort habe ich erst gepostet, nach den oben zitierten Antworten):
    "Take a look at the NotesUIWorkspace Prompt method in Designer Help"


    Was heißt da übrigens, ich sei "auf ein schnelle Lösung aus"? Ich bin bin einem Detail stecken geblieben, nachdem ich tagelang verschiedene Vorschläge, die ich im Internet gefunden habe, ergebnislos befolgt und getestet habe, und habe mir hier Hilfe gesucht.


    Ich versage mir jeden weiteren Kommentar. Der Leser möge sich selbst ein Bild machen über die Qualität der Hilfeleistung und dem Stil der Kommunkation in diesem Forum ....

    • Offizieller Beitrag

    also ich bin erstaunt, wie man von Listbox auf einen Prompt kommt - ich wäre nie auf diese Lösung für dein beschriebenes Problem gekommen.


    Willst du wirklich ein Prompt eigener Dialog dafür aufmachen oder sollen nur die wählbaren Inhalte eienr Listbox (Feld) geändert werden?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • @Dirk:
    Irgendwie habe ich den Eindruck, daß ich da etwas gründlich mißverstehe. Wie ich in meinem ersten Posting geschrieben haben, komme ich von Approach. Es geht um eine CRM-Anwendung. Eine Liste von Kunden nach einem bestimmten Suchkriterium wird vorbereitet und in einer Listbox (zumindest wird sie so in Approach genannt) präsentiert und der Anwender wählt per Doppelklick eine bestimmte Zeile zur Weiterverarbeitung, oder er markiert einfach eine bestimmte Zeile und bestimmt über verschiedene Buttons, was geschehen soll (z.B. Update Stammdaten, Nachricht senden u.ä). Prompt macht, zumindest was die Auswahl per Doppeklick angeht, genau das, allerdings habe ich keine Formatierungsmöglichkeiten. Es gibt dann in dieser Anwendung noch mehrere ähnlich gelagerte Funktionen, und eine Formatierung der Listbox ist erforderlich, ansonsten müßte alles im Detail programmiert werden. Ich bin davon ausgegangen, daß eine derartige Funktion auch in Notes zur Verfügung steht, aber offensichtlich funktionieren die Dinge da ganz anders. Bis jetzt habe ich es nicht geschafft.
    Anders als in meinem ersten Posting sieht mein Code jetzt so aus:


    Dim newws As New NotesUIWorkspace
    Dim newdoc As NotesUIDocument
    Set newdoc = newws.ComposeDocument ( , , "Kundenauswahl" )
    Call newdoc.Document.ReplaceItemValue( "Auswahl" ,Kdn_Tab)
    Call newdoc.Document.ReplaceItemValue( "Kundenliste" ,"")
    Call newdoc.refresh


    Das Feld Auswahl ein verstecktes multivalue Text-Feld und dient als Source für das berechnete Feld Kundenliste.
    Ich habe auch eine Variante getestet, in der ich zuerst ein Backend-Dokument erzeuge und dann mit dieser Maske lade.
    Das Ergebnis ist immer, daß am Bildschirm das Feld Kundenliste leer ist, obwohl laut Debugger die Daten im Hauptspeicher vorhanden sind. Was mich auch irgendwie stört ist, daß das Feld Kundenliste, sobald es als berechnet definiert ist, kein Events mehr offeriert (On Click etc.)
    Bin ich da auf einer falschen Fährte?
    Paul

  • Hi,


    Zitat

    Was mich auch irgendwie stört ist, daß das Feld Kundenliste, sobald es als berechnet definiert ist, kein Events mehr offeriert (On Click etc.)
    Bin ich da auf einer falschen Fährte?


    In Notes kannst Du ein berechnetes Feld ja auch nicht mehr "manuell" editieren.
    Also warum sollen hier dann noch Events angeboten werden, die nur dann auftreten koennen, wenn das Feld "berechnet", also nicht mehr editierbar, ist.



    Andreas

  • Ich möchte ja das Feld nicht editieren, ich möchte nur die Info, welche Zeile selektiert wird (in Approach ist das ein Index zu Array) oder per Doppelklick den Anstoß zur weiteren Verarbeitung. Ich habe immer mehr den Eindruck, ich verstehe die Notes-Implementierung völlig falsch. Gibt es irgendwo eine Anleitung, wie man dieses Problem in Notes lösen kann? Alles, was ich bisher gefunden habe, hat mir nicht weitergeholfen.
    Ich hab zum Beispiel eine Funktion, die eine Rechnung im Hauptspeicher aufbereitet und dann per Listbox anzeigt. Der Anwender kann eine einzelne Zeile ändern oder löschen oder Zeilen hinzufügen. Natürlich geschieht das tatsächlich im Speicher, nach der Änderung wird die gesamte Listbox neu aufbereitet.
    Paul

  • Hier ist ein Szenario beschrieben und mit Code dokumentiert.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl