ENum-Box Inhalt in Abhängigkeit von anderem Feld/ENumBox

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ctheuring
    Senior Member
    • Oct 2022
    • 138

    ENum-Box Inhalt in Abhängigkeit von anderem Feld/ENumBox

    Moin,
    Cenario:
    Ich habe u.a. Entities FIRMEN, PERSONEN, MASCHINEN, HERSTELLER, BAUREIHEN, TYPEN
    Neuanlage in Entity MASCHINEN (eine neue Maschine in der Firma):
    Wenn ich in der Eingabemaske eine FIRMA ausgewählt habe, möchte ich in dem ENUM-Feld PERSON nur die PERSONEN aufgeführt sehen, die es in der ausgewählten Firma gibt. In SQL zum "Füllen" der Auswahlliste sähe das so aus:
    SELECT NAME FROM PERSONEN WHERE PERSONEN.FIRMEN_ID = <ID aus Feld FIRMA>
    anderes Beispiel Anlegen einer neuen Maschine:
    aus ENUM-BOX HERSTELLER ausgewählt, in ENUM-BOX BAUREIHEN werden nun zur Auswahl alle Baureihen dieses HERSTELLERS angezeigt - und dann in der ENUM-Box TYPEN alle Typen der ausgewählten Baureihe. Es sind alles saubere 1:n Beziehungen.
    Wie geht das?
    Danke für Tipps.
    Christoph Theuring
  • shalmaxb
    Senior Member
    • Mar 2015
    • 1606

    #2
    Hallo, sollte mit einer ifThen Formel gehen: https://docs.espocrm.com/administration/formula/#ifthen

    Comment

    • ctheuring
      Senior Member
      • Oct 2022
      • 138

      #3
      Danke für den Tipp ... aber ich verstehe noch nicht:
      - wie bekomme ich den SQL in das ifThenElse?
      - wie kann ich auf das Ergebnis dieser Abfrage dann für die (nächste) Auswähl-Abfrage zugreifen?
      Ein Beispiel mit code wäre schön ...

      Christioph

      Comment

      • ctheuring
        Senior Member
        • Oct 2022
        • 138

        #4
        noch was dazu:
        wenn ich denHERSTELLER mittels der ENUM-Box ausgewählt habe, wie lautet die "Variable" dafür ... die ich ja benötige, um sie in der WHERE-Bedingung für die Auswahl der nächsten ENUM-Box einzusetzen?

        Comment

        • shalmaxb
          Senior Member
          • Mar 2015
          • 1606

          #5
          Das geht bei espoCRM mit der implementierten Formel-Funktion, die man bei jeder Entity findet: Administrator->Entity->Formel. Mit einer relativ einfachen Formelsprache wird das alles ohne Eingriff in die Datenbank erledigt. Die Syntax ist unter dem Link, den ich mitgeschickt hatte, hinterlegt.

          Die Kombination aus der vorhandene Relation mit der korrekten Formel sollte funktionieren.

          Comment

          • ctheuring
            Senior Member
            • Oct 2022
            • 138

            #6
            Danke ... aber sorry ... das Beispiel in dem Link ist MEILENWEIT von meinem Problem entfernt, da wird lediglich einer Variable EIN Wert zugewiesen, nix von Ersetzen der statischen Auswahl in einem ENUM-Feld durch eine dynamische Auswahl.
            Wie müsste dann eine Formel im Entity-Formel aussehen? Kenne eine Reihe von Scriptsprachen ... aber aus den Beispielen hier erschließt sich mir nix ...
            Hab z.B. in der Entity MASCHINEN folgende Formel drin stehen:
            string\concatenate(name, hersteller, ' ', typen, ' SerienNr ', seriennr); # soll im Feld name den Inhalt aus den Feldern hersteller, Typen und Seriennr. zusammensetzen
            ... tut sich aber nix ...
            Danke für deine Mühe

            Christoph

            Comment

            • shalmaxb
              Senior Member
              • Mar 2015
              • 1606

              #7
              Hallo,

              vergiss mal für einen Moment Deine Kenntnisse in Script-Sprachen und Datenbank Abfragen (die nützen aber später schon).

              Ich habe eine App entwickelt, mit der man ein künstlerisches Werk verwalten kann, ein Werkverzeichnis. Dort gibt es z.B. ein multi-enum für die Technik, in der das Werk hergestellt wurde. Dort befinden sich also mehrere Werte, fast immer unterschiedlich von einem Werk zum anderen.
              Die will ich nun in einem anderen Feld zusammen darstellen.

              Das habe ich so gemacht:

              1. es gibt das erwähnte multi-enum Feld
              2. ich lege ein neues Feld für den zusammengesetzten Wert an, heißt bei mir legendeTechnik
              3. Um die Werte aus dem enum Feld auszulesen habe ich folgende Formel erstellt

              //Legende Technik zusammensetzen
              legendeTechnik=array\join(technik, ', ');​

              Im Feld legendeTechnik stehen dann also alle Begriffe, die im Feld Technik (enum) eingegeben wurden, getrennt durch ein Komma.

              Hier ist das ein multi-enum, in das man neben vorgegebenen Begriffen auch noch individuell weitere eingeben kann (nur für den gerade bearbeiteten Datensatz, werden nicht in der DB gespeichert). Das funktioniert aber genauso mit einem einfach enum.
              Das Beispiel ist also, denke ich, für Dich anwendbar.

              An der Formel kannst Du sehen, wie einfach die Formelsprache von espoCRM ist. Ich bin nur rudimentär begabt, was Script-Sprachen und Programmierung angeht. Aber was ich mit diesen Formeln schon alles anstellen konnte, ist wirklich beeindruckend.
              Also, meine Empfehlung wäre, sich mit den Formeln bei espoCRM zu beschäftigen. Es stimmt, dass dort viel sehr unverständlich erklärt wird und die Beispiele nützen auch nicht sehr viel. Aber mit einem Grundverständnis, dass Du sicher hast, und Experimentieren bekommt man das hin.
              Wenn dann doch nicht, hat man hier in diesem Forum immer sehr viel Hilfe. Ich empfehle aber, das englischsprachige zu verwenden, weil man da viel mehr Antworten bekommt. Falls das mit Englisch zu problematisch ist, einfach die Fragen per Google Übersetzer übersetzen.

              Comment


              • shalmaxb
                shalmaxb commented
                Editing a comment
                Das mit dem Update Import kann ich nicht genau sagen. Ich denke es ist so, dass Du im Dropdown erstmal das Feld auswählst, welches infrage kommt, rechts daneben steht der Wert der dort eingesetzt wird (match) und im Markierungsfeld kannst Du ankreuzen, ob dieses Feld aktualisiert werden soll. Damit kann man also aus einer gesamten CSV genau die Daten je Datensatz auswählen, die aktualisiert werden sollen, andere können bestehen bleiben.

              • ctheuring
                ctheuring commented
                Editing a comment
                ich wollte dir shalmaxb eine private eMail schicken ... aber deine eingestellte Adresse geht wohl nicht ...

              • shalmaxb
                shalmaxb commented
                Editing a comment
                pm über das Forum geht. Und über meine Webseite auch eine Email Kontaktadresse
            Working...