Home Forum Nuclos Konfiguration Maskenlayouts Valuelist-Provider mit 2 oder mehr Parametern

Ansicht von 14 Beiträgen - 1 bis 14 (von insgesamt 14)
  • Autor
    Beiträge
  • #5438
    Frank Pavlic
    Teilnehmer

    Hallo zusammen,
    ich habe eine Maske Bestellung mit Subform Bestellpositionen. In den Bestellpositionen benötige ich eine Combobox für den Preis, welcher abhängig vom Artikel _und_ Lieferant ist. Das heisst ich benötige einen Valuelist-Provider, welcher 2 Input-Parameter benötigt, ArtikelId und LieferantId. Leider finde ich nichts, wie ich das hinbekomme. Zwar gibt es tatsächlich zwei Parameter-Zeilen und für die ArtikelId ist es ja auch selbsterklärend, nur wie komme ich nun an die LieferantId aus der Entität „Bestellung“?
    Gibt es globale Variablen oder Zugriffsmöglichkeiten auf die Hauptentität, so dass ich die LieferantId irgendwie im entsprechenden Parameter-Feld eintragen kann, z.B. $context.hauptentitaet.field.LieferantId (Achtung Pseudocode 😉 ).

    Oder ist das ein typischer Fall für Groovy?

    Danke im Voraus.

    Gruß

    Frank

    #5439
    Claudia Mangstl
    Teilnehmer

    Hallo Frank,

    so etwas geht leider momentan nicht. Man kann immer nur eine ID über eine Layoutregel an einen Valuelist-Provider schicken.

    Ist aber ein interessantes Thema für eine Erweiterung.

    Viele Grüße,
    Claudia

    #5443
    Markus Glitzner
    Teilnehmer

    Hallo Frank!

    Wenn ich das richtig interpretiere, sollte das kein Problem sein, so etwas hab ich auch schon mehrfach umgesetzt.

    Ich gehe mal davon aus, dass du bei deinen Artikel einen Lieferanten zugeordnet hast und als Unterformular die unterschiedlichen Preise.

    Dann benötigst du zwei VLPs, einen für die Artikel und einen für die Preise. Den Artikel VLP wie gewohnt mit einem Parameter (INTID_LIEFERANT)

    Deinen VLP für die Preise joinst du mit dem Lieferanten, den Artikel und den Preisen und setzt zwei Parameter, einen für den Lieferant (INTID_LIEFERANT) und einen für den Artikel (INTID_ARTIKEL).

    In der Bestellung benötigst du dann ein Referenzfeld für den Lieferanten (hast du vermutlich) mit einer Regel, die den Artikel VLP im Unterformular aktualisiert. Und bei den Artikel im Unterformular noch eine Regel, die deinen Preis VLP aktualisiert.

    Einzige was du machen musst, ist das Artikel und Preis Attribut im Unterformular explizit als Combobox angeben, da sonst bei der Regel etwas nicht ausgewählt werden kann (weis leider adhoc nicht was das war). Könnte ein Problem bei der aktuellen BEta werden, da hier die Eigenschaften der Attribute im Unterformualr nicht mehr über den Designer bearbeitet werden können)

    Das wars

    Gruß
    Hugo

    #5444
    Frank Pavlic
    Teilnehmer

    Hallo Claudia,
    ich erachte es ebenfalls als sinnvoll. Im Falle von Groovy wird ja bereits mit einem context gearbeitet, welche den Zugriff die Felder und Unterformulare erlaubt. Ich denke auch, es dürfte für die serverseitige Regelverarbeitung sicherlich auch sehr sinnvoll sein. Valuelist-Provider sind sehr mächtig, allerdings mit nur einem Input-Parameter wird die Mächtigkeit ganz schnell klein 🙁

    Kannst Du das in die Future-Feature-Liste mitaufnehmen?

    Danke.

    Gruß
    Frank

    #5448
    Frank Pavlic
    Teilnehmer

    Hallo Hugo,
    wir haben die gleiche Idee, so weit hatte ich auch alles,allerdings hänge ich nun genau an dem Punkt: Die zwei Input-Parameter INTID_LIEFERANT und INTID_ARTIKEL.

    Wenn ich Preise-VLP nun am Preise-Feld hinterlege, wähle ich Preise-VLP aus. Nun habe ich zwei Parameter-Zeilen, die ich ausfüllen kann. Allerdings habe ich keine Chance, INTID_LIEFERANT als Input der Preise-VLP mitzugeben.
    Deine und meine Idee funktioniert nur, wenn der Artikel genau von _einem_ Lieferant geliefert wird.
    Das Problem was ich habe, ist, das ein Artikel von mehreren Lieferanten geliefert werden kann. Aktualisierung der Artikel-VLP geht ja noch.
    Lege ich nun eine Bestellposition an, wähle ich einen Artikel aus, damit wird die Preise-VLP aktualisiert. Allerdings werden nun auch die Preise von anderen Lieferanten gefunden und in der Preise-Combobox zur Verfügung gestellt. Die Abhängigkeit zum Lieferanten fehlt hier, da ich ja nur die INTID_ARTIKEL an Preise-VLP mitgeben kann. Ich kann nicht noch zusätzlich die ausgewählte INTID_LIEFERANT mitgeben.

    Zum Problem Eigenschaften: Wenn du im Subform-Eigenschaften die Toolbar einmal auf horizontal umstellst, ok klicken. Dann wird der Toolbar-Button „Hinzufügen“ in der Subform wieder aktiv.
    Dann klickst du auf „Datensatz hinzufügen“. Eine Zeile wird eingefügt. Zu diesem Zeitpunkt kommst Du wieder in die Eingeschaften der Subform-Felder.
    Kurz: „Datensatz hinzufügen“ der Subform muss aktiv sein -> anklicken -> Eigenschaften der Spalten editierbar. Habe ich heute Nacht herausgefunden, kurz bevor ich mein Laptop fast zu einem Wurfgerät umfunktioniert habe 👿

    Gruß

    Frank

    #5449
    Markus Glitzner
    Teilnehmer

    [quote=“f.pavlic“ post=4547]Zum Problem Eigenschaften: Wenn du im Subform-Eigenschaften die Toolbar einmal auf horizontal umstellst, ok klicken. Dann wird der Toolbar-Button „Hinzufügen“ in der Subform wieder aktiv.
    Dann klickst du auf „Datensatz hinzufügen“. Eine Zeile wird eingefügt. Zu diesem Zeitpunkt kommst Du wieder in die Eingeschaften der Subform-Felder.
    Kurz: „Datensatz hinzufügen“ der Subform muss aktiv sein -> anklicken -> Eigenschaften der Spalten editierbar.[/quote]genial …

    es genügt auch das Subform zu deaktivieren, mit ok zu bestätigen, dann wieder aktivieren, wieder mit ok bestätigen, Neuen Datensatz im Subform hinzufügen und die RICHTIGE spalte anklicken, denn wenn man eine andere Spalte anklickt, ist wieder alles deaktiviert :S

    Ist halt schon ziemlich zäh!

    Wegen der anderen Geschichte muss ich mal nachschauen, wie ich das gelöst habe, sollte aber meiner Meinung nach trotzdem möglich sein.

    #5451
    Frank Pavlic
    Teilnehmer

    das mit der falschen Spalte habe ich schon wieder verdrängt. Zäh ist es allemal, allerdings besser als gar nichts. Gibt es hierfür bereits einen Bug-Report?

    Danke dir schon einmal im Voraus fürs Nachschauen.

    Gruß

    Frank

    #5452
    Frank Pavlic
    Teilnehmer

    JIRA-Eintrag gibt es bereits – NUCLOS-365 ist die Nummer.

    #5457
    Markus Glitzner
    Teilnehmer

    bei mir ist es in der Tat so, dass ein Artikel nur von einem Lieferanten sein kann.

    Allerdings besteht mein VLP in den Bestellpositionen auch aus zwei Parametern. Zur Erklärung: Die Bestellung hat ein Referenzfeld zum Auftrag und zum Lieferanten. In den Bestellpositionen sollen jetzt nur Auftragspositionen mit dem Lieferanten der Bestellung und des jeweiligen Auftrags angezeigt werden. Ist im Prinzip dasselbe, wie bei dir.

    vielleicht helfen dir die Screenshots weiter …

    #5460
    Frank Pavlic
    Teilnehmer

    Hallo Hugo,
    danke für deine Beschreibung und Screenshots, aber das ist nicht ganz das ,was ich lösen muss. Dadurch, dass Du eine 1:1 Beziehung zwischen Artikel und Lieferant hast, reicht es in deinem Fall immer aus, mit nur einem Input-Parameter die Informationen entsprechend aufzubereiten. Du hast zwar einen VLP mit zwei Input-Parametern implementiert, allerdings musst Du nur entweder lieferantid _oder_ artikelid als Input mitgeben. In meinem Falle ist es aber so ,dass ich dem Preise-VLP lieferantid _und_ artikelid mitgeben muss, dass ich dann auf die richtige Preisliste komme. Und das ist, weil ich eine n:m Beziehung habe zwischen Artikel und Lieferanten, gesteuert über die Preistabelle.
    Und das Schlimme ist , dass ich momentan auch keine Designänderung des Tabellenschemas sehe, um evtl. das Problem lösen zu können. Also nun doch Groovy evaluieren …

    Gruß

    Frank

    #5461
    Markus Glitzner
    Teilnehmer

    ok, verstehe.

    bei mir ist es eine 1:n, aber das meintest du vermutlich eh. Wäre blöd, wenn jeder Lieferant nur einen Artikel haben könnte 😉

    Das ist schon richtig, dass ich immer nur einen Parameter übergebe, aber erst wenn beide ausgewählt sind, bekomme ich über den VLP die entsprechenden Datensätze.

    Eine Idee noch – was ist, wenn du in deiner Preistabelle, neben den Artikel auch den Lieferanten speicherst. Ist zwar nicht mehr ganz sauber von DB Design her, aber ich hab mir so auch schon geholfen, weil zusammengesetzten Fremdschlüsel eben nicht umsetzbar sind.

    Gruß
    Hugo

    #5462
    Frank Pavlic
    Teilnehmer

    äähh ja, natürlich 1:n :whistle: .

    Das ist ja interessant, dass Du nur eine Liste bekommst, wenn wirklich beide ausgewählt sind. So wie es aussieht, muss ich mein Verständnis der VLP noch einmal überdenken.

    Danke dir.

    Gruß

    Frank

    #5463
    Frank Pavlic
    Teilnehmer

    Hallo Hugo,
    kaum macht man es richtig und schon funktioniert es. Vielen Dank für deinen Info-Input. Es lag am Kopf, welcher vor dem Monitor sitzt, VLPs einfach nicht richtig verstanden. Meine Ursprungsidee war schon richtig nur nicht konsequent durchgeführt. Die Wertelisteaktualisierung für Preis-VLP aus dem Feld Lieferant fehlte noch.
    Deine Lösung war goldrichtig. Manchmal wäre es besser, einfach mal zu machen und weniger zu denken B)

    Nebenbei habe ich mich noch mit dem Build von nuclos beschäftigt die aktuelle Git-HEAD durchgebaut. Yeah, hat sich voll gelohnt, jetzt kann man wieder mit dem Layout-Editor arbeiten.

    Gruß

    Frank

    #5464
    Markus Glitzner
    Teilnehmer

    freut mich, wenn ich helfen konnte.

    etwas gefinkelt sind sie schon, die VLPs, aber man kann interessante Sachen damit machen. z.B. ist es auch möglich, dass ein VLP erst alle Artikel anzeigt und wenn ein Lieferant ausgewählt ist, werden im VLP nur mehr die Artikel, des ausgewählten Lieferanten angezeigt.

    Gruß
    Hugo

Ansicht von 14 Beiträgen - 1 bis 14 (von insgesamt 14)