0

Dyn. Multifunktionsfeld auswerten, Werte löschen und einem andern Dyn. Multifunktionsfeld zuweisen

Hallo Ninoxer,

ich habe es über replace versucht und dann den String wieder mittels Schleife in einen Array verwandelt. Eine Überprüfung des neu erhaltenen Array hat ergeben, dass es 4 Werte enthält.

Das Zuweisen des Array an ein Dyn. Multifunktionsfeld bekomme ich aber nicht. Was muss ich tun?

Vielen Dank für Eure Hilfe!

10 Antworten

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 2 Tagen
    • Gemeldet - anzeigen

    Moin  ,

    ich verstehe aus deiner Beschreibung noch nicht ganz genau was du machen willst....
    Grundsätzlich kannst du ein Dyn. Mehrfachauswahlfeld (DMAF) per Skript über die Datensatz-Nummern der entsprechenden Tabelle setzen.
    Das sieht dann so aus:

    DMAF:= for i in ARRAY do
            number(i)
        end

    So wie ich deinen Fall verstehe würde ich das mit einem Button machen:

    'Mehrfachauswahl (dynamisch) 2' := for i in ('Mehrfachauswahl (dynamisch)') do
            number(i)
        end;
    'Mehrfachauswahl (dynamisch)' := null

    Damit wird die aktive Auswahl von DMAF1 in DMAF2 geschrieben und anschließend DMAF geleert.
    Das bedingt natürlich das beide DMAF die selbe Tabelle verwenden!

    VG Ronald

      • + Maßanzug statt Massenware +
      • RonaldP
      • vor 2 Tagen
      • Gemeldet - anzeigen

      Korrektur:

      'Mehrfachauswahl (dynamisch) 2' := for i in numbers('Mehrfachauswahl (dynamisch)') do
              number(i)
          end;
      'Mehrfachauswahl (dynamisch)' := null
      
      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • gestern
      • Gemeldet - anzeigen

       

      Hallo Ronald,

      bei mir funktioniert die Schleife leider nicht. Alle Werte kann ich ja auch einfach mit

      DMAF2 := DMAF1

      übertragen.

      ich möchte aus den Werten des DMAF1 noch 2 Werte löschen. Das habe ich gemacht und den wieder ein Array erzeugt:

      let myDMAF1alt := DMAF1;
      let myDMAF1repl := replace(replace(concat(numbers(myDMAF1alt)), "235, ", ""), ", 462", "");
      let myARRAY1 := split(myDMAF1repl, ", ");
      let myDMAF1neu := (
              let y := 0;
              for i in myARRAY1 do
                  let myZW := item(split(myDMAF1repl, ", "), y);
                  y := y + 1;
                  myZW
              end
          );
      

      Lasse ich mir in einem Formelfeld den Inhalt von myDMAF1neu mit concat anzeigen, bekomme ich auch die richtigen Werte angezeigt.

      Nutze ich

      DMAF2 := myDMAF1neu

      werden in DMAF2 ganz andere Werte ausgewählt. Es scheint mit meinem Array in myDMAF1neu etwas nicht zu stimmen, denn mit numbers kann ich mir den Inhalt nicht anschauen, nur mit concat. Bei numbers kommt die Fehlermeldung:

      "Die Funktion ist nicht definiert: numbers([string])"

      Hier dürfte also das Problem liegen. Hast Du noch eine weitere Idee?

      • + Maßanzug statt Massenware +
      • RonaldP
      • gestern
      • Gemeldet - anzeigen

       

      probiere es mal hiermit:

      let myDMAF1alt := DMAF1;
      let myDMAF1repl := replace(replace(concat(numbers(myDMAF1alt)), "235", ""), "462", "");
      let myDMAF1neu := for i in myDMAF1repl do
              number(i)
          end;
      DMAF2 := myDMAF1neu
      

       

      VG Ronald

      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • gestern
      • Gemeldet - anzeigen

       Hallo Ronald,

      das funktioniert leider auch nicht. Er scheint jede Ziffer einzeln zu nehmen. Statt den Werten 197, 198, 210 schreibt er 1, 2, 7, 8, 9 in DMAF2.

      ich habe dann versucht mit

      let x := 1;
      let y := 4;
      let myDMAF1neu := for i in myDMAF1repl do
           number(substring(i, x, y));
               x := x + 3;
               y := y + 3
           end;

      und

      let y := 0;
      let myDMAF1neu := for i in myDMAF1repl do
               number(substring(i, y, 3));
               y := y + 3
           end;

      um die neuen Werte dreistellig zu bekommen. Da bleibt myDMAF1neu aber beide Male leer. Es wird weder ein Wert in DMAF2 noch in ein Textfeld geschrieben.

      VG Björn

    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 21 Stunden
    • Gemeldet - anzeigen

     ,
    ah verstehe, meine TestDBich hatte nur DatensatzNummern kleiner 10, da ist mir das nicht aufgefallen.
    Dann splitten wir das vorher, um wieder ein richtiges Array zu bekommen.

    let myDMAF1alt := DMAF1;
    let myDMAF1repl := replace(replace(concat(numbers(myDMAF1alt)), "235, ", ""), ", 462", "");
    let myDMAF1neu := for i in split(myDMAF1repl, ",") do
            number(i)
        end;
    DMAF2 := myDMAF1neu

     

    VG Ronald

      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • vor 20 Stunden
      • Gemeldet - anzeigen

       Moin Ronald,

      das hatte ich vermutet. Deswegen habe ich mal genau geschaut, welche Werte er im DMAF2 setzt.

      Ich nutze primär 3.18.27 in der WebApp. Es funktioniert allerdings auch nicht auf dem iPhone und dem iPad mit den neuesten Apps.

      Kann es sein, dass Du beim Testen nur Werte im DMAF stehen hast deren Datensatznummern einstellig sind, also von 1 - 9 reichen?

      Ansonsten kann ich es mir nicht erklären. Ich will zwar die Funktion in Datenbank 1 für Datenbank 2 anstoßen. Ich habe aber extra zum Testen einen Button in DB2 angelegt, um diese Fehlerquelle auszuschliessen. Das Ergebnis ist das Gleiche. Ein Array mit 3 Werten wird nicht erkannt, sondern die einzelnen Ziffern als "i" verwendet.

    • mirko3
    • vor 17 Stunden
    • Gemeldet - anzeigen

    Hallo Björn. Versuche es mal so:

    let selectedValues := numbers(dm1)[!= 235 and != 462];
    dm2 := selectedValues;
    dm1 := null
    

    Mirko

      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • vor 15 Stunden
      • Gemeldet - anzeigen

       

      👍Genial! Das war die Lösung! 👍

      In der Kürze liegt die Würze!

       

      Vielen Herzlichen Dank 🙏 Ronald & Mirko!

      • + Maßanzug statt Massenware +
      • RonaldP
      • vor 14 Stunden
      • Gemeldet - anzeigen

       
      Nice!

Content aside

  • Status Answered
  • vor 14 StundenZuletzt aktiv
  • 10Antworten
  • 43Ansichten
  • 3 Folge bereits