Frage zu @PickList

  • Hallo Leute,


    ich habe folgendes programmiertechnisches Problem und bin auf der Suche nach einem Lösungsweg:


    Ich habe eine Datenbank mit 2 Masken. Die erste Maske ist ein Formular in dem unsere Anwender diverse Felder ausfüllen sollen. Die zweite Maske ist ein Stammblatt für bestimmte Stammdaten.


    Jetzt kommt die Aufgabe: Der Anwender soll im Formular in Frage kommende Stammblätter auswählen können. Die Daten aus den ausgewählten Stammblätter sollen dann im Formular mitgespeichert werden.


    Das Ganze habe ich bisher so gelöst: Mit @PickList kann der Anwender die Stammblätter aus einer Ansicht auswählen. Nach der Auswahl wird die Dokumentennr. übertragen und mit @GetDocField werden die Feldinhalte ins Formular übernommen.


    So weit, so gut. Das Problem an der Sache ist, wenn der Anwender Änderungen vornehmen will, muss er die Auswahl von Neuem vornehmen (es sind ziemlich viele Stammblätter in der Ansicht). Schön wäre es, wenn er nachträglich einzelne Stammblätter zum Ergebnis hinzufügen bzw. entfernen könnte. Und das ist mein Problem, ich weiß nicht wie ich es lösen soll. Hat von Euch einer 'ne Idee?


    Vielen Dank!


    Carsten




    <Button zum auswählen der Stammblätter>


    FIELD fdSelectActivityDescriptions := @PickList([Custom] ;"";"vwActivityDescriptions";"Aktivitätsbeschreibungen";"Bitte wählen Sie die betreffenden Aktivitätsbeschreibungen"; 5);
    @Command([ViewRefreshFields]);
    @True



    <Übernahme der Feldinhalte>


    @If(fdSelectActivityDescriptions="";"";@Transform(@Explode(fdSelectActivityDescriptions;"; ");"x";@GetDocField(x;"fdDocCode")))

    • Offizieller Beitrag

    mach es doch per Schaltfläche und hänge die Daten nur an. Löschen würde dann auch per Schaltfläche funktionieren (Auswahl-Dialogbox, und dann die entsprechende Stelle in den Feldern entfernen).


    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

    • Offizieller Beitrag
    Code
    <Button zum auswählen der Stammblätter>
    
    
    _liste := @PickList([Custom] ;"";"vwActivityDescriptions";"Aktivitätsbeschreibungen";"Bitte wählen Sie die betreffenden Aktivitätsbeschreibungen"; 5);
    @SetField("fdSelectActivityDescriptions"; fdSelectActivityDescriptions : _Liste);
    @Command([ViewRefreshFields]);
    @True


    mit "fdSelectActivityDescriptions : _Liste" wir eine Liste mit den ausgewählten und den schon existirenden Feldinhalten erstellt.


    Da dies jetzt schon mit Mehrfachwerten funktioniert, müsste der "ViewRefreshFields" die anderen Felder richtig aktualisieren.



    Beim Löschen würde ich dann auch nur einen Eintrag im Feld fdSelectActivityDescriptions löschen und einen Refresh auf das Dokument machen.


    Gruß
    Dirk

  • SUPER!!! Das hilft mir schon mal weiter!!! :strike:


    Eine Frage hätte ich aber noch: Wie würdest Du das Löschen genau realisieren?


    Mit @PickList die zu löschenden Einträge in der View 'vwActivityDescriptions' auswählen und die Betreffenden im Feld 'fdSelectActivityDescriptions' löschen?


    Oder die Textfelder mit Dialogbox direkt bearbeiten?


    Am liebsten wär mir ja, wenn beim Löschen nur die bereits ausgewählten Dokumente mit @PickList erscheinen würden. Aber ich glaube das ist nicht möglich, oder?


    Gruß
    Carsten

    • Offizieller Beitrag

    ich würde ein Prompt verwenden und dort die Liste der im Feld eingetragenen Dokumente auflisten.


    Schau mal bei Prompt in der Designer-Hilfe, da gibt es etwas mit Multi und Combo.


    Mit einem @Replace können dann die ausgewählten werte durch einen Leer-String ersetzt werden und ein @Trim entfernt diese Einträge aus der Liste.


    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