Ankündigung

Einklappen
Keine Ankündigung bisher.

Beim Einfügen von Daten Werte aus Tabellen holen

Einklappen
X

Beim Einfügen von Daten Werte aus Tabellen holen

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • Beim Einfügen von Daten Werte aus Tabellen holen

    Guten Tag Miteinander

    Bin der Zöbi und komme aus der Schweiz und darf mich seit neuestem in die Inrexxwelt vertiefen

    Folgende Herausforderung. In einer Datengruppe werden Daten abgelegt. Damit diese erfasst werden können wird mittels einer Erfassungsmaske gearbeitet. Soweit so klar. Nun soll diese Erafssungsmaske auch noch Logik enthalten und genau da fangen die Herausforderungen an. Wie gehe ich da vor? Das Datum ist mit dem heutigen Datum vorbelegt. Das habe ich schon mal erreicht . Nun wenn ein Mitarbeiter ausgewählt wird soll anhand der Datengruppe ausgewertet werden wieviele Prozente den schon auf dem Mitarbeiter für dieses Datum verbucht wurden. Anhanddem gefundenen Wert sollen die Prozente in der Auswahlliste gefiltert werden. Ach ja, die Prozente kommen aus eine separaten Datengruppe in welcher auch ein feld ist mit klarzahlen damit einfacher berechnet werden kann. Mit text kann ja nicht gerechnet werden Wenn nun alles Okay ist soll der Speichern button angezeigt werden damit gespeichert werden kann.

    Nun habe ich eine Bedingung im Button angelegt mit einem Velo-city script. Leider geht das nicht, da die Werte ja zum anfang der Erfassung ja noch nicht bekannt sind. Der Button ist zwar weg, aber eben, auch für immer .

    Wie gehe ich da am sinnvollsten vor? Nehme ich Javascript? Wenn ja, wie könnte das aussehen? Oder Prozesse? Ihr seht da stehen Fragen über Fragen im Raum

    Danke Euch für Eure Tips und wertvolle Zeit

    Gruss ins Web

    Zöbi

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Intrexx_Frage_1.jpg
Ansichten: 30
Größe: 191,8 KB
ID: 8921

  • #2
    Herzlich Willkommen im Intrexx-Forum

    Du könntest beim Laden der Seite per Renderinghandler oder Velocity die Werte aus der Datenbank aufsummieren, hier zum Wert 75 und diesen könntest du dann über den Verarbeitungskontext (g_sharedState / $SharedState) an den Filter der Auswahlliste übergeben. (MaxWert = 100 - Summe)
    Der Filter wäre dann "Prozentert <= Verarbeitungskontext:MaxWert".
    Den Speichern-Button kannst du dann entweder immer anzeigen, da durch die Auswahlliste ja schon sichergestellt wurde, dass man nicht mehr eingeben kann.
    Oder du blendest die Schaltfläche per JavaScript ein/aus.

    Kommentar


    • #3
      Hi Martin

      Besten Dank für Deine Antwort.
      Hmm. Den Mitarbeiter wähle ich jedoch erst bei der Eingabe aus, wie kann ich dann im voraus schon wissen wieviele Prozente er hat? Da wird wohl kein Script greifen beim öffnen der Eingabemaske. Ich nehme mal an das müsste ich dann eher auf dem fieldChange des Mitarbeiters auslösen, oder stehe ich da vom Verständnis her im Schliff? Jedoch stellt sich mir dann die Frage, wie bekomme ich die entsprechenden Werte aus der Datenbank gegrübelt. Kann ich mittels Javascript auf die Datenbank zugreifen und mittels SQL einen entsprechnden Wert herausfinden?

      So in etwa: SELECT SUM(B.L_BERECHNUNG) FROM DG_VERSAND_MITARBEITER A, DG_PROZENTE B WHERE A.L_PROZENT = B.LID AND A.DT_DATUM = ? AND A.L_MITARBEITER = ?

      oder muss ich mittels Javascript ein Groovyscript aufrufen welches mir den Wert zurückgibt und allenfalls die Werte in der Auswahlbox filtert...

      Griessli
      Zöbi

      Kommentar


      • #4
        Hallo Zöbi,

        gibt das nur eine Person ein?
        Wenn du mit Javascript arbeitest und da potentiell mehrere Personen mit arbeiten, hast du immer die Gefahr, dass du bei gleichzeitigen Eingaben trotzdem über 100% kommst.
        Je nachdem wie schlimm das wäre, müsstest du über andere Wege (z.B. per nachgelagertem Prozess) nachdenken.

        Grüße
        Snixx

        Kommentar


        • #5
          Hi Snixx

          Besten Dank für Deine Antwort. Wir erwarten für diese Applikation keine Mehrfacheingaben von verschiedenen Stationen. Insofern kann es direkt in der Erfassungsmaske gelöst werden, denke ich mir mal.
          Grüsse
          Zöbi

          Kommentar


          • #6
            Hallo Zöbi,

            also schöne Lösungen wird es da vermutlich mit dem Datenaufbau nicht geben. Folgende Ansatzpunkte sehe ich:
            Variante 1: Du schaltest eine Zwischenseite (Weiter-Button) mit Datum und Benutzer vor, dann kannst du die Einträge auf der zweiten Seite per VTL einschränken.
            Variante 2: Du lässt sich die Auswahlliste wie Sie ist und meldest dann über einen nachgelagerten Prozess einen Fehler.

            Grüße
            Snixx

            Kommentar


            • #7
              Man könnte einen View in der Datenbank anlegen, welcher die Werte je Mitarbeiter/Tag aufsummiert.
              Diesen dann versteckt in einer Auswahlliste auf der Seite platzieren.
              Die Felder Datum und Mitarbeiter triggern dann eine Abhängigkeit der Summen-Auswahlliste, so dass dort dann der bereits gebuchte Wert des Mitarbeiters an dem Tag angezeigt wird, mit dem man in JS arbeiten kann.

              Wenn man einen Schritt weiter gehen möchte, könnte dieser View auch den jeweils noch buchbaren Wert anzeigen. Vermutlich muss das geschachtelt geschehen (100-SUM([spalte]).
              Dann könnte man noch eine Abhängigkeit auf die sichtbare Auswahlliste legen und auf einen Wert größer/gleich dem Wert aus dem View filtern. Getriggert auf das onmatch der vorherigen Abhängigkeit. Mit der Option 'Liste initial ohne Einträge anzeigen' werden dort dann nur die buchbaren Werte angezeigt oder gar nicht falls 100% bereits erreicht ist.

              Kommentar

              Lädt...
              X