Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Pittinis Workshop für mich

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Pittinis Workshop für mich

Scheduled Pinned Locked Moved JavaScript
53 Posts 3 Posters 2.2k Views 12 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Dominik F.D Dominik F.

    @Pittini

    Ich hoffe ich nehm dir jetzt nichts vorweg aber ich wollte mein neues Wissen direkt nochmal anwenden und hab die Tabelle so verändert, dass die Überschriften zu der Anzahl der Spalten passt.
    In Vis funktioniert das ganze so wie es soll, hoffe der Code passt auch.

    createState('javascript.0.Test.TestTable', { type: 'string' });
     
    function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
        let TestTable = "";
        TestTable = "<table border='1'>"; //Tabellenanfang
        TestTable += "<tr>"; //Tabellenzeile mit dem Header
        for (let i = 1; i <= AnzSpalten; i++) {
        TestTable +="<th>Überschrift" + i + "</th>"
        };
        TestTable += "</tr>";
        
        for (let x = 1; x <= AnzZeilen; x++) {
            TestTable += "<tr>";
            for (let y = 1; y <= AnzSpalten; y++) {
                TestTable += "<td>Zeile " + x + " Spalte " + y + "</td>"
            };
            TestTable += "</tr>"; 
        };
     
        TestTable += "</table>"; //Tabellenende
     
        setState('javascript.0.Test.TestTable', TestTable);
    }
     
    CreateTestTable(7,4); //Skriptstart
     
    
    
    P Offline
    P Offline
    Pittini
    Developer
    wrote on last edited by Pittini
    #17

    @Dominik-F sagte in Pittinis Workshop für mich:

    Ich hoffe ich nehm dir jetzt nichts vorweg aber ich wollte mein neues Wissen direkt nochmal anwenden und hab die Tabelle so verändert, dass die Überschriften zu der Anzahl der Spalten passt.
    In Vis funktioniert das ganze so wie es soll, hoffe der Code passt auch.

    Hehe, genau das wär Deine nächste Aufgabe gewesen. Schaut soweit gut aus, (Warum hast Du i als nächste Schleifenvariable genommen, läge nicht y gemäß unserer bisheriger Nomenklatur näher?) wenngleich wir jetzt an nem Punkt sind wo viele Wege nach Rom führen.
    Und da Du ja inzwischen Schleifen schon kennst (und nicht mehrere Schleifen machen solltest als wirklich nötig, wegen CPU Last, Ausführungszeit, zusätzliche Variablen etc. pp) machen wir das nicht mit ner zusätzlichen Schleife sondern mit was "neuem", ner If Abfrage. Und falls Du Dich jetzt fragst, ja und wo kann ich die If hier einsetzen, hier ein kleiner Tipp. Was ist der Unterschied zwischen der Headerzeile und den normalen Zeilen bezogen auf die Schleife?

    Dominik F.D 1 Reply Last reply
    0
    • P Pittini

      @Dominik-F sagte in Pittinis Workshop für mich:

      Ich hoffe ich nehm dir jetzt nichts vorweg aber ich wollte mein neues Wissen direkt nochmal anwenden und hab die Tabelle so verändert, dass die Überschriften zu der Anzahl der Spalten passt.
      In Vis funktioniert das ganze so wie es soll, hoffe der Code passt auch.

      Hehe, genau das wär Deine nächste Aufgabe gewesen. Schaut soweit gut aus, (Warum hast Du i als nächste Schleifenvariable genommen, läge nicht y gemäß unserer bisheriger Nomenklatur näher?) wenngleich wir jetzt an nem Punkt sind wo viele Wege nach Rom führen.
      Und da Du ja inzwischen Schleifen schon kennst (und nicht mehrere Schleifen machen solltest als wirklich nötig, wegen CPU Last, Ausführungszeit, zusätzliche Variablen etc. pp) machen wir das nicht mit ner zusätzlichen Schleife sondern mit was "neuem", ner If Abfrage. Und falls Du Dich jetzt fragst, ja und wo kann ich die If hier einsetzen, hier ein kleiner Tipp. Was ist der Unterschied zwischen der Headerzeile und den normalen Zeilen bezogen auf die Schleife?

      Dominik F.D Offline
      Dominik F.D Offline
      Dominik F.
      wrote on last edited by
      #18

      @Pittini

      Ich habe i als variable genommen da ich diese variable einfach oft in scripten gesehen habe und w oder z als variable noch nicht so wirklich^^ Also hatte keinen Hintergrund.
      Da ja y nur innerhalb der Schleife gilt (wenn ich das richtig verstanden habe) wäre es wirklich sinnvoller gewesen y zu nehmen dafür.

      Auf den ersten Blick ist der Unterschied, dass der Header nur aus einer Zeile besteht und einer Anzahl Spalten. Der andere Unterschied ist das th worin der inhalt steht, bei den normalen Zeilen das td.
      Ich setz mich dann mal an die If Abfrage 🙂

      P 1 Reply Last reply
      0
      • Dominik F.D Dominik F.

        @Pittini

        Ich habe i als variable genommen da ich diese variable einfach oft in scripten gesehen habe und w oder z als variable noch nicht so wirklich^^ Also hatte keinen Hintergrund.
        Da ja y nur innerhalb der Schleife gilt (wenn ich das richtig verstanden habe) wäre es wirklich sinnvoller gewesen y zu nehmen dafür.

        Auf den ersten Blick ist der Unterschied, dass der Header nur aus einer Zeile besteht und einer Anzahl Spalten. Der andere Unterschied ist das th worin der inhalt steht, bei den normalen Zeilen das td.
        Ich setz mich dann mal an die If Abfrage 🙂

        P Offline
        P Offline
        Pittini
        Developer
        wrote on last edited by Pittini
        #19

        @Dominik-F sagte in Pittinis Workshop für mich:

        Ich habe i als variable genommen da ich diese variable einfach oft in scripten gesehen habe und w oder z als variable noch nicht so wirklich^^ Also hatte keinen Hintergrund.
        Da ja y nur innerhalb der Schleife gilt (wenn ich das richtig verstanden habe) wäre es wirklich sinnvoller gewesen y zu nehmen dafür.

        Ja, i sieht man auch oft, dann meist aber gefolgt von j als zweite Variable wenn benötigt. Also i.d.R. aufeinanderfolgende Buchstaben, da hat jeder seine Vorlieben, aber man sollte es halt kongruent machen.

        Ja, y gilt nur innerhalb der Schleife, in unserem konkreten Fall hättest sogar x ein 2tes mal nehmen können weil ja die erste x Schleife schon durch war als die 2te begann.

        Auf den ersten Blick ist der Unterschied, dass der Header nur aus einer Zeile besteht und einer Anzahl Spalten. Der andere Unterschied ist das th worin der inhalt steht, bei den normalen Zeilen das td.

        Anders ausgedrückt heißt das, auch der Header ist nur ne Zeile! Und der Header hat genauso viel Spalten wie der Rest der Tabelle. Mit dieser Erkenntnis läßt sich der Header in unsere bisherige Struktur einfügen unter Verwendung einer If Abfrage.

        Dominik F.D 1 Reply Last reply
        0
        • P Pittini

          @Dominik-F sagte in Pittinis Workshop für mich:

          Ich habe i als variable genommen da ich diese variable einfach oft in scripten gesehen habe und w oder z als variable noch nicht so wirklich^^ Also hatte keinen Hintergrund.
          Da ja y nur innerhalb der Schleife gilt (wenn ich das richtig verstanden habe) wäre es wirklich sinnvoller gewesen y zu nehmen dafür.

          Ja, i sieht man auch oft, dann meist aber gefolgt von j als zweite Variable wenn benötigt. Also i.d.R. aufeinanderfolgende Buchstaben, da hat jeder seine Vorlieben, aber man sollte es halt kongruent machen.

          Ja, y gilt nur innerhalb der Schleife, in unserem konkreten Fall hättest sogar x ein 2tes mal nehmen können weil ja die erste x Schleife schon durch war als die 2te begann.

          Auf den ersten Blick ist der Unterschied, dass der Header nur aus einer Zeile besteht und einer Anzahl Spalten. Der andere Unterschied ist das th worin der inhalt steht, bei den normalen Zeilen das td.

          Anders ausgedrückt heißt das, auch der Header ist nur ne Zeile! Und der Header hat genauso viel Spalten wie der Rest der Tabelle. Mit dieser Erkenntnis läßt sich der Header in unsere bisherige Struktur einfügen unter Verwendung einer If Abfrage.

          Dominik F.D Offline
          Dominik F.D Offline
          Dominik F.
          wrote on last edited by
          #20

          @Pittini

          Im Moment ist mir noch nicht so ganz klar wie ich das ganze logisch aufbauen soll. Eine If Abfrage ist ja anders ausgedrückt eine Wenn/Dann Struktur.
          Das Einzige was mir einfällt wäre: Wenn die Tabelle 4 Spalten hat, dann mach im Header 4 Spalten.

          P 1 Reply Last reply
          0
          • Dominik F.D Dominik F.

            @Pittini

            Im Moment ist mir noch nicht so ganz klar wie ich das ganze logisch aufbauen soll. Eine If Abfrage ist ja anders ausgedrückt eine Wenn/Dann Struktur.
            Das Einzige was mir einfällt wäre: Wenn die Tabelle 4 Spalten hat, dann mach im Header 4 Spalten.

            P Offline
            P Offline
            Pittini
            Developer
            wrote on last edited by
            #21

            @Dominik-F sagte in Pittinis Workshop für mich:

            Das Einzige was mir einfällt wäre: Wenn die Tabelle 4 Spalten hat, dann mach im Header 4 Spalten.

            Nein, dafür brauchts keine Abfrage, das macht ja schon die Schleife. Die Abfrage brauchst Du dafür: Wenn der Zeilenzähler x im ersten Durchlauf ist, schreib den Header, ansonsten schreib die normale Tabelle. Und dran denken, wenn der Header jetzt dazukommt erhöht sich die Zeilenzahl um eins.

            Dominik F.D 2 Replies Last reply
            0
            • P Pittini

              @Dominik-F sagte in Pittinis Workshop für mich:

              Das Einzige was mir einfällt wäre: Wenn die Tabelle 4 Spalten hat, dann mach im Header 4 Spalten.

              Nein, dafür brauchts keine Abfrage, das macht ja schon die Schleife. Die Abfrage brauchst Du dafür: Wenn der Zeilenzähler x im ersten Durchlauf ist, schreib den Header, ansonsten schreib die normale Tabelle. Und dran denken, wenn der Header jetzt dazukommt erhöht sich die Zeilenzahl um eins.

              Dominik F.D Offline
              Dominik F.D Offline
              Dominik F.
              wrote on last edited by
              #22

              @Pittini

              ahhh, okay, an diese Logik hatte ich nicht ansatzweise gedacht^^ Ich setzt mich dann jetzt mal dran.

              1 Reply Last reply
              0
              • P Pittini

                @Dominik-F sagte in Pittinis Workshop für mich:

                Das Einzige was mir einfällt wäre: Wenn die Tabelle 4 Spalten hat, dann mach im Header 4 Spalten.

                Nein, dafür brauchts keine Abfrage, das macht ja schon die Schleife. Die Abfrage brauchst Du dafür: Wenn der Zeilenzähler x im ersten Durchlauf ist, schreib den Header, ansonsten schreib die normale Tabelle. Und dran denken, wenn der Header jetzt dazukommt erhöht sich die Zeilenzahl um eins.

                Dominik F.D Offline
                Dominik F.D Offline
                Dominik F.
                wrote on last edited by
                #23

                @Pittini

                So, diesmal hat es ganz gut geklappt finde ich.

                
                createState('javascript.0.Test.TestTable', { type: 'string' });
                 
                function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                    
                    let TestTable = "";
                    TestTable = "<table border='1'>"; //Tabellenanfang
                    
                    for (let x = 0; x <= AnzZeilen; x++) {
                        TestTable += "<tr>";
                        for (let y = 1; y <= AnzSpalten; y++) {
                            if(x<1) {TestTable +="<th>" + "Überschrift" + y + "</th>"}
                            else    {TestTable +="<td>" + "Zeile " + x + " Spalte " + y + "</td>"}
                        };
                        TestTable += "</tr>"; 
                    }; 
                    TestTable += "</table>"; //Tabellenende
                 
                    setState('javascript.0.Test.TestTable', TestTable);
                };
                 
                CreateTestTable(7,4); //Skriptstart
                
                
                P 1 Reply Last reply
                0
                • Dominik F.D Dominik F.

                  @Pittini

                  So, diesmal hat es ganz gut geklappt finde ich.

                  
                  createState('javascript.0.Test.TestTable', { type: 'string' });
                   
                  function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                      
                      let TestTable = "";
                      TestTable = "<table border='1'>"; //Tabellenanfang
                      
                      for (let x = 0; x <= AnzZeilen; x++) {
                          TestTable += "<tr>";
                          for (let y = 1; y <= AnzSpalten; y++) {
                              if(x<1) {TestTable +="<th>" + "Überschrift" + y + "</th>"}
                              else    {TestTable +="<td>" + "Zeile " + x + " Spalte " + y + "</td>"}
                          };
                          TestTable += "</tr>"; 
                      }; 
                      TestTable += "</table>"; //Tabellenende
                   
                      setState('javascript.0.Test.TestTable', TestTable);
                  };
                   
                  CreateTestTable(7,4); //Skriptstart
                  
                  
                  P Offline
                  P Offline
                  Pittini
                  Developer
                  wrote on last edited by Pittini
                  #24

                  @Dominik-F sagte in Pittinis Workshop für mich:

                  So, diesmal hat es ganz gut geklappt finde ich.

                  Das schaut doch schon ganz gut aus. Die einzige "Änderung" die vorschlagen würde, wär, nicht x<1 abzufragen sondern x==0, wir haben ja ganz klar definierte Zustände, die sollte man auch klar abfragen.
                  Und ich würde es rein optisch etwas anders aufbauen, spätestens wenn mehrere Anweisungen innerhalb der if sind wirds sonst unübersichtlich. Kleiner Tipp, im Editor die rechte Maustaste und "Dokument formattieren" spart viel Arbeit und machts gleich hübscher. Hier zum Vergleich meine Lösung:

                  createState('javascript.0.Test.TestTable', { type: 'string' });
                  
                  function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                      let TestTable = "";
                      TestTable = "<table border='1'>"; //Tabellenanfang
                      for (let x = 0; x <= AnzZeilen; x++) {
                          TestTable += "<tr>";
                          for (let y = 1; y <= AnzSpalten; y++) {
                              if (x == 0) {
                                  TestTable += "<th>Überschrift" + y + "</th>";
                              }
                              else {
                                  TestTable += "<td>Zeile " + x + " Spalte " + y + "</td>";
                              }
                          };
                          TestTable += "</tr>";
                      };
                      TestTable += "</table>"; //Tabellenende
                      setState('javascript.0.Test.TestTable', TestTable);
                  }
                  
                  CreateTestTable(7, 4); //Skriptstart
                  
                  

                  Nachdem wir jetzt die Tabelle schon dynamisch mit Zeilen und Spalten erstellen können, fehlt noch das wichtigste, die eigentlichen darzustellenden Daten da rein zu kriegen. An der Stelle kommen wir zum Punkt Arrays. Arbeite Dich dazu bitte erstmal durch die Basisinfos.
                  Dann erstellst Du drei Arrays unter den Namen "Stadt", "Land", "Fluss" und trägst jeweils 5 Einträge in jedes Array ein. Das ganze erstmal noch ohne jede Verbindung zu unserer Tabelle.

                  Dominik F.D 1 Reply Last reply
                  0
                  • P Pittini

                    @Dominik-F sagte in Pittinis Workshop für mich:

                    So, diesmal hat es ganz gut geklappt finde ich.

                    Das schaut doch schon ganz gut aus. Die einzige "Änderung" die vorschlagen würde, wär, nicht x<1 abzufragen sondern x==0, wir haben ja ganz klar definierte Zustände, die sollte man auch klar abfragen.
                    Und ich würde es rein optisch etwas anders aufbauen, spätestens wenn mehrere Anweisungen innerhalb der if sind wirds sonst unübersichtlich. Kleiner Tipp, im Editor die rechte Maustaste und "Dokument formattieren" spart viel Arbeit und machts gleich hübscher. Hier zum Vergleich meine Lösung:

                    createState('javascript.0.Test.TestTable', { type: 'string' });
                    
                    function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                        let TestTable = "";
                        TestTable = "<table border='1'>"; //Tabellenanfang
                        for (let x = 0; x <= AnzZeilen; x++) {
                            TestTable += "<tr>";
                            for (let y = 1; y <= AnzSpalten; y++) {
                                if (x == 0) {
                                    TestTable += "<th>Überschrift" + y + "</th>";
                                }
                                else {
                                    TestTable += "<td>Zeile " + x + " Spalte " + y + "</td>";
                                }
                            };
                            TestTable += "</tr>";
                        };
                        TestTable += "</table>"; //Tabellenende
                        setState('javascript.0.Test.TestTable', TestTable);
                    }
                    
                    CreateTestTable(7, 4); //Skriptstart
                    
                    

                    Nachdem wir jetzt die Tabelle schon dynamisch mit Zeilen und Spalten erstellen können, fehlt noch das wichtigste, die eigentlichen darzustellenden Daten da rein zu kriegen. An der Stelle kommen wir zum Punkt Arrays. Arbeite Dich dazu bitte erstmal durch die Basisinfos.
                    Dann erstellst Du drei Arrays unter den Namen "Stadt", "Land", "Fluss" und trägst jeweils 5 Einträge in jedes Array ein. Das ganze erstmal noch ohne jede Verbindung zu unserer Tabelle.

                    Dominik F.D Offline
                    Dominik F.D Offline
                    Dominik F.
                    wrote on last edited by
                    #25

                    @Pittini

                    Ist jetzt eher unwichtig, aber ich habe mich gefragt wie man die Funktion Testtable sowie die Variable Testtable am Besten benennen sollte? Ich denke, dass ich das Script am Ende als eine Art "Vorlage" nehmen kann um Tabellen zu erstellen und ich werde mir bestimmt oft die verschiedenen Schritte anschauen. Da wäre es vielleicht ganz gut ab dem jetzigen Zeitpunkt wo noch alles sehr "übersichtlich" ist es direkt richtig zu benennen.

                    createState('javascript.0.Test.TestTable', { type: 'string' });
                    
                    var Stadt = ["Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                    var Fluss = ["Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                    var Land = ["Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                    
                    
                    function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                        let TestTable = "";
                        TestTable = "<table border='1'>"; //Tabellenanfang
                        for (let x = 0; x <= AnzZeilen; x++) {
                            TestTable += "<tr>";
                            for (let y = 1; y <= AnzSpalten; y++) {
                                if (x == 0) {
                                    TestTable += "<th>Überschrift" + y + "</th>";
                                }
                                else {
                                    TestTable += "<td>Zeile " + x + " Spalte " + y + "</td>";
                                }
                            };
                            TestTable += "</tr>";
                        };
                        TestTable += "</table>"; //Tabellenende
                        setState('javascript.0.Test.TestTable', TestTable);
                    }
                    
                    CreateTestTable(7, 4); //Skriptstart
                    
                    
                    
                    P 1 Reply Last reply
                    0
                    • Dominik F.D Dominik F.

                      @Pittini

                      Ist jetzt eher unwichtig, aber ich habe mich gefragt wie man die Funktion Testtable sowie die Variable Testtable am Besten benennen sollte? Ich denke, dass ich das Script am Ende als eine Art "Vorlage" nehmen kann um Tabellen zu erstellen und ich werde mir bestimmt oft die verschiedenen Schritte anschauen. Da wäre es vielleicht ganz gut ab dem jetzigen Zeitpunkt wo noch alles sehr "übersichtlich" ist es direkt richtig zu benennen.

                      createState('javascript.0.Test.TestTable', { type: 'string' });
                      
                      var Stadt = ["Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                      var Fluss = ["Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                      var Land = ["Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                      
                      
                      function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                          let TestTable = "";
                          TestTable = "<table border='1'>"; //Tabellenanfang
                          for (let x = 0; x <= AnzZeilen; x++) {
                              TestTable += "<tr>";
                              for (let y = 1; y <= AnzSpalten; y++) {
                                  if (x == 0) {
                                      TestTable += "<th>Überschrift" + y + "</th>";
                                  }
                                  else {
                                      TestTable += "<td>Zeile " + x + " Spalte " + y + "</td>";
                                  }
                              };
                              TestTable += "</tr>";
                          };
                          TestTable += "</table>"; //Tabellenende
                          setState('javascript.0.Test.TestTable', TestTable);
                      }
                      
                      CreateTestTable(7, 4); //Skriptstart
                      
                      
                      
                      P Offline
                      P Offline
                      Pittini
                      Developer
                      wrote on last edited by
                      #26

                      @Dominik-F sagte in Pittinis Workshop für mich:

                      Da wäre es vielleicht ganz gut ab dem jetzigen Zeitpunkt wo noch alles sehr "übersichtlich" ist es direkt richtig zu benennen.

                      Da gibts kein richtig oder falsch im eigentlichen Sinne. Da hat jeder so sein System, der eine deutsch, der andere englisch. Ich persönlich verwende gern die gleichen Bezeichnugen für Datenpunkte und die Variablen die dessen Werte speichern wegen Übersichtlichkeit. Eigentlich ist nicht wichtig wie Du es machst, nur dass Du es immer gleich machst, sonst verstehst nen halbes Jahr später Dein eigenes Skript nimmer. Würd sagen wir bleiben bei TestTable sagt ja genau das aus wasses ist.

                      Zu Deiner Lösung der Arrays.
                      Soweit richtig, nen Ohrenschnalzer gibts aber dafür dass Du wieder mit var daherkommst, wir hatten uns auf let geeinigt 😉 .
                      An dieser Stelle kommt aber ohnehin ne Besonderheit von Arrays ins Spiel, diese deklariert man meist mit const. Const steht für Konstante, also Werte die sich im Skript nicht mehr ändern (naja eigentlich ist es etwas komplexer, siehe hier, aber für unsere Anwendung gehen wir mal von Konstanten Werten aus), z.B. siehe die ganzen Einstellungen in meinen Skripten. Und warum const bei Arrays, wir wollen doch die Werte ändern, wirst Du Dich jetzt fragen. Ich sags mal (etwas unpräzise) so, Wenn Du den Inhalt eines Arrays änderst, änderst Du nicht das Array an sich. Genau, siehe wieder obigen Link.

                      Die nächste Aufgabe ist nun, die Werte der Arrays in die Tabelle zu kriegen. Dazu brauchen wir jetzt eine Tabelle mit 5 Zeilen (+Header) und drei Spalten. Versuchs mal, wenn nicht klappt nicht verzagen jetzt wirds langsam etwas komplexer, dann lösen wirs heut abend auf.

                      Dominik F.D 1 Reply Last reply
                      0
                      • P Pittini

                        @Dominik-F sagte in Pittinis Workshop für mich:

                        Da wäre es vielleicht ganz gut ab dem jetzigen Zeitpunkt wo noch alles sehr "übersichtlich" ist es direkt richtig zu benennen.

                        Da gibts kein richtig oder falsch im eigentlichen Sinne. Da hat jeder so sein System, der eine deutsch, der andere englisch. Ich persönlich verwende gern die gleichen Bezeichnugen für Datenpunkte und die Variablen die dessen Werte speichern wegen Übersichtlichkeit. Eigentlich ist nicht wichtig wie Du es machst, nur dass Du es immer gleich machst, sonst verstehst nen halbes Jahr später Dein eigenes Skript nimmer. Würd sagen wir bleiben bei TestTable sagt ja genau das aus wasses ist.

                        Zu Deiner Lösung der Arrays.
                        Soweit richtig, nen Ohrenschnalzer gibts aber dafür dass Du wieder mit var daherkommst, wir hatten uns auf let geeinigt 😉 .
                        An dieser Stelle kommt aber ohnehin ne Besonderheit von Arrays ins Spiel, diese deklariert man meist mit const. Const steht für Konstante, also Werte die sich im Skript nicht mehr ändern (naja eigentlich ist es etwas komplexer, siehe hier, aber für unsere Anwendung gehen wir mal von Konstanten Werten aus), z.B. siehe die ganzen Einstellungen in meinen Skripten. Und warum const bei Arrays, wir wollen doch die Werte ändern, wirst Du Dich jetzt fragen. Ich sags mal (etwas unpräzise) so, Wenn Du den Inhalt eines Arrays änderst, änderst Du nicht das Array an sich. Genau, siehe wieder obigen Link.

                        Die nächste Aufgabe ist nun, die Werte der Arrays in die Tabelle zu kriegen. Dazu brauchen wir jetzt eine Tabelle mit 5 Zeilen (+Header) und drei Spalten. Versuchs mal, wenn nicht klappt nicht verzagen jetzt wirds langsam etwas komplexer, dann lösen wirs heut abend auf.

                        Dominik F.D Offline
                        Dominik F.D Offline
                        Dominik F.
                        wrote on last edited by
                        #27

                        @Pittini

                        Haha ja das let und var Dingen 😄 Ich glaube ich hab mich einfach zu sehr an var vorher gewöhnt bei meinem gefährlichem Halbwissen^^
                        Ich habe schon grundsätzlich eine Idee wie ich das ganze umsetzen kann. Habe auch schon angefangen und bin da denke ich schon auf einem ganz gutem Weg. Ich frage mich nun, ob es klug ist den Header noch so generieren zu lassen. Der erste Wert des Arrays beginnt ja mit der 0 und damit kommen bei mir die ersten "Probleme". Ich musste für mich da jetzt erst mal etwas "schummeln" damit es passt. Auch frage ich mich ob ich noch die verschachtelnte for Schleife anwenden sollte.
                        Ich poste dir mal meinen ersten Versuch und dann erkennst du denke ich mein Problem. Ich habe nun einen leeren Wert bei den Arrays eingeführt damit es erst mal passt 😄 Du wirst jetzt wahrscheinlich gerade mit dem Kopf auf die Tastatur fallen wenn du das siehst 😄
                        Da ich glaube ich schon einigermaßen nah an der Lösung bin würde ich noch dabei bleiben das ich es versuche selber zu lösen und würde erstmal nur die Frage mit dem Header geklärt haben wollen und wissen wollen, ob ich grundsätzlich den "richtigen" Weg eingeschlagen habe. Das würde mir schon reichen um weiter zu tüfteln.

                        createState('javascript.0.Test.TestTable', { type: 'string' });
                        
                        const Stadt = ["","Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                        const Fluss = ["","Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                        const Land = ["","Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                        const Header = ["Stadt", "Land", "Fluss"];
                        
                        function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                            let TestTable = "";
                            TestTable = "<table border='1'>"; //Tabellenanfang
                            for (let x = 0; x < AnzZeilen; x++) {
                                TestTable += "<tr>";
                                for (let y = 0; y < AnzSpalten; y++) {
                                    if (x == 0) {
                                        TestTable += "<th>" + Header[y] + "</th>";
                                    }
                                    else {
                                        TestTable += "<tr><td>" + Stadt[x] + "</td>" ;
                                        TestTable += "<td>" + Land[x] + "</td>" ;
                                        TestTable += "<td>" + Fluss[x] + "</td></tr>";
                                    }
                                };
                                TestTable += "</tr>";
                            };
                            TestTable += "</table>"; //Tabellenende
                            setState('javascript.0.Test.TestTable', TestTable);
                        }
                        
                        CreateTestTable(6, 3); //Skriptstart
                        
                        
                        
                        P 1 Reply Last reply
                        0
                        • Dominik F.D Dominik F.

                          @Pittini

                          Haha ja das let und var Dingen 😄 Ich glaube ich hab mich einfach zu sehr an var vorher gewöhnt bei meinem gefährlichem Halbwissen^^
                          Ich habe schon grundsätzlich eine Idee wie ich das ganze umsetzen kann. Habe auch schon angefangen und bin da denke ich schon auf einem ganz gutem Weg. Ich frage mich nun, ob es klug ist den Header noch so generieren zu lassen. Der erste Wert des Arrays beginnt ja mit der 0 und damit kommen bei mir die ersten "Probleme". Ich musste für mich da jetzt erst mal etwas "schummeln" damit es passt. Auch frage ich mich ob ich noch die verschachtelnte for Schleife anwenden sollte.
                          Ich poste dir mal meinen ersten Versuch und dann erkennst du denke ich mein Problem. Ich habe nun einen leeren Wert bei den Arrays eingeführt damit es erst mal passt 😄 Du wirst jetzt wahrscheinlich gerade mit dem Kopf auf die Tastatur fallen wenn du das siehst 😄
                          Da ich glaube ich schon einigermaßen nah an der Lösung bin würde ich noch dabei bleiben das ich es versuche selber zu lösen und würde erstmal nur die Frage mit dem Header geklärt haben wollen und wissen wollen, ob ich grundsätzlich den "richtigen" Weg eingeschlagen habe. Das würde mir schon reichen um weiter zu tüfteln.

                          createState('javascript.0.Test.TestTable', { type: 'string' });
                          
                          const Stadt = ["","Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                          const Fluss = ["","Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                          const Land = ["","Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                          const Header = ["Stadt", "Land", "Fluss"];
                          
                          function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                              let TestTable = "";
                              TestTable = "<table border='1'>"; //Tabellenanfang
                              for (let x = 0; x < AnzZeilen; x++) {
                                  TestTable += "<tr>";
                                  for (let y = 0; y < AnzSpalten; y++) {
                                      if (x == 0) {
                                          TestTable += "<th>" + Header[y] + "</th>";
                                      }
                                      else {
                                          TestTable += "<tr><td>" + Stadt[x] + "</td>" ;
                                          TestTable += "<td>" + Land[x] + "</td>" ;
                                          TestTable += "<td>" + Fluss[x] + "</td></tr>";
                                      }
                                  };
                                  TestTable += "</tr>";
                              };
                              TestTable += "</table>"; //Tabellenende
                              setState('javascript.0.Test.TestTable', TestTable);
                          }
                          
                          CreateTestTable(6, 3); //Skriptstart
                          
                          
                          
                          P Offline
                          P Offline
                          Pittini
                          Developer
                          wrote on last edited by
                          #28

                          @Dominik-F sagte in Pittinis Workshop für mich:

                          Der erste Wert des Arrays beginnt ja mit der 0 und damit kommen bei mir die ersten "Probleme". Ich musste für mich da jetzt erst mal etwas "schummeln" damit es passt. Auch frage ich mich ob ich noch die verschachtelnte for Schleife anwenden sollte.

                          Die Leerstrings gehen natürlich gar nicht, aber Du hast zumindest das Problem erkannt und bist ja auch nah dran an der Lösung, hier fehlts wieder nur an der Umsetzung. Warum sparst Dir das Headerarray nicht und schreibst anstelle der Leerstrings jeweils die Überschrift rein, was dann ja passend wieder an pos 0 ist? Und um die verschachtelte Schleife wirst nicht rumkommen, wie hattest Dir das denn gedacht?

                          Dominik F.D 3 Replies Last reply
                          0
                          • P Pittini

                            @Dominik-F sagte in Pittinis Workshop für mich:

                            Der erste Wert des Arrays beginnt ja mit der 0 und damit kommen bei mir die ersten "Probleme". Ich musste für mich da jetzt erst mal etwas "schummeln" damit es passt. Auch frage ich mich ob ich noch die verschachtelnte for Schleife anwenden sollte.

                            Die Leerstrings gehen natürlich gar nicht, aber Du hast zumindest das Problem erkannt und bist ja auch nah dran an der Lösung, hier fehlts wieder nur an der Umsetzung. Warum sparst Dir das Headerarray nicht und schreibst anstelle der Leerstrings jeweils die Überschrift rein, was dann ja passend wieder an pos 0 ist? Und um die verschachtelte Schleife wirst nicht rumkommen, wie hattest Dir das denn gedacht?

                            Dominik F.D Offline
                            Dominik F.D Offline
                            Dominik F.
                            wrote on last edited by
                            #29

                            @Pittini

                            Ja die Überschriften in die Arrays rein zu schreiben wäre zu einfach gewesen 😄 Ich hatte den Array mit den Überschriften erstellt da es ja irgendwann auch das Ziel sein wird, eine Variable zu erstellen, mit dem man die Überschriften erstellen kann bzw. ich dachte das das eines der nächsten Sachen sein wird und hatte eine Idee wie das umzusetzen ist^^ Es kann sein, dass ich in den nächsten Tagen nicht immer täglich die Lösung deiner Aufgaben haben werde. Hab zwar täglich Zeit dafür nur nicht 5 std. pro Tag wie in den letzten Tagen. Ich bleibe aber dran.

                            1 Reply Last reply
                            0
                            • P Pittini

                              @Dominik-F sagte in Pittinis Workshop für mich:

                              Der erste Wert des Arrays beginnt ja mit der 0 und damit kommen bei mir die ersten "Probleme". Ich musste für mich da jetzt erst mal etwas "schummeln" damit es passt. Auch frage ich mich ob ich noch die verschachtelnte for Schleife anwenden sollte.

                              Die Leerstrings gehen natürlich gar nicht, aber Du hast zumindest das Problem erkannt und bist ja auch nah dran an der Lösung, hier fehlts wieder nur an der Umsetzung. Warum sparst Dir das Headerarray nicht und schreibst anstelle der Leerstrings jeweils die Überschrift rein, was dann ja passend wieder an pos 0 ist? Und um die verschachtelte Schleife wirst nicht rumkommen, wie hattest Dir das denn gedacht?

                              Dominik F.D Offline
                              Dominik F.D Offline
                              Dominik F.
                              wrote on last edited by Dominik F.
                              #30

                              @Pittini

                              Habe jetzt eine Lösung, aber das ist nicht der Weg den ich eingehen sollte glaube ich 😄
                              Ich werde noch einen 2ten Lösungsweg probieren

                              Hier der erste:

                              
                              createState('javascript.0.Test.TestTable', { type: 'string' });
                              
                              var Stadt = ["Stadt", "Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                              var Fluss = ["Fluss", "Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                              var Land = ["Land", "Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                              
                              
                              function CreateTestTable(AnzZeilen, AnzSpalten) { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                                  let TestTable = "";
                                  TestTable = "<table border='1'>"; //Tabellenanfang
                                  for (let x = 0; x <= AnzZeilen; x++) {
                                      TestTable += "<tr>";
                                      for (let y = 1; y <= AnzSpalten; y++) {
                                          if (x == 0) {
                                              TestTable += "<th>" + Stadt[x] + "</th>" + "<th>" + Land[x] + "</th>" + "<th>" + Fluss[x] + "</th>";
                                          }
                                          else {
                                              TestTable += "<td> " + Stadt[x] + "</td>" + "<td> " + Land[x] + "</td>" + "<td> " + Fluss[x] + "</td>";
                                          }
                                      };
                                      TestTable += "</tr>";
                                  };
                                  TestTable += "</table>"; //Tabellenende
                                  setState('javascript.0.Test.TestTable', TestTable);
                              }
                              
                              CreateTestTable(5, 1); //Skriptstart
                              
                              
                              1 Reply Last reply
                              0
                              • P Pittini

                                @Dominik-F sagte in Pittinis Workshop für mich:

                                Der erste Wert des Arrays beginnt ja mit der 0 und damit kommen bei mir die ersten "Probleme". Ich musste für mich da jetzt erst mal etwas "schummeln" damit es passt. Auch frage ich mich ob ich noch die verschachtelnte for Schleife anwenden sollte.

                                Die Leerstrings gehen natürlich gar nicht, aber Du hast zumindest das Problem erkannt und bist ja auch nah dran an der Lösung, hier fehlts wieder nur an der Umsetzung. Warum sparst Dir das Headerarray nicht und schreibst anstelle der Leerstrings jeweils die Überschrift rein, was dann ja passend wieder an pos 0 ist? Und um die verschachtelte Schleife wirst nicht rumkommen, wie hattest Dir das denn gedacht?

                                Dominik F.D Offline
                                Dominik F.D Offline
                                Dominik F.
                                wrote on last edited by
                                #31

                                @Pittini
                                Okay, ich stehe gerade auf dem Schlauch. Ich weiß zwar wie ich in den Arrays weiterzähle, jedoch müsste ich ja irgendwie die Variablen weiterzählen damit ich die Spaltenanzahl weiter wählen kann. Wie ich das anstelle ist mir irgendwie nicht klar.

                                P 1 Reply Last reply
                                0
                                • Dominik F.D Dominik F.

                                  @Pittini
                                  Okay, ich stehe gerade auf dem Schlauch. Ich weiß zwar wie ich in den Arrays weiterzähle, jedoch müsste ich ja irgendwie die Variablen weiterzählen damit ich die Spaltenanzahl weiter wählen kann. Wie ich das anstelle ist mir irgendwie nicht klar.

                                  P Offline
                                  P Offline
                                  Pittini
                                  Developer
                                  wrote on last edited by Pittini
                                  #32

                                  @Dominik-F sagte in Pittinis Workshop für mich:

                                  Okay, ich stehe gerade auf dem Schlauch. Ich weiß zwar wie ich in den Arrays weiterzähle, jedoch müsste ich ja irgendwie die Variablen weiterzählen damit ich die Spaltenanzahl weiter wählen kann. Wie ich das anstelle ist mir irgendwie nicht klar.

                                  Ich weis auch gar nicht was Du anders machen willst, Deine erste Lösung ist ok, wollte Dich nur nicht ausbremsen wenn Du ne andere Idee hattest. Da die Spalten jetzt ja vorgegeben sind durch Stadt, Land, Fluss braucht man das aber natürlich der Funktion nimmer übergeben und läßt den Parameter weg in der Funktion. Und wo wir schon dabei sind ersetzen wir jetzt auch noch die Zeilenzahl. Hier die Infos dazu die Du brauchst https://www.w3schools.com/jsref/jsref_length_array.asp

                                  Dominik F.D 1 Reply Last reply
                                  0
                                  • P Pittini

                                    @Dominik-F sagte in Pittinis Workshop für mich:

                                    Okay, ich stehe gerade auf dem Schlauch. Ich weiß zwar wie ich in den Arrays weiterzähle, jedoch müsste ich ja irgendwie die Variablen weiterzählen damit ich die Spaltenanzahl weiter wählen kann. Wie ich das anstelle ist mir irgendwie nicht klar.

                                    Ich weis auch gar nicht was Du anders machen willst, Deine erste Lösung ist ok, wollte Dich nur nicht ausbremsen wenn Du ne andere Idee hattest. Da die Spalten jetzt ja vorgegeben sind durch Stadt, Land, Fluss braucht man das aber natürlich der Funktion nimmer übergeben und läßt den Parameter weg in der Funktion. Und wo wir schon dabei sind ersetzen wir jetzt auch noch die Zeilenzahl. Hier die Infos dazu die Du brauchst https://www.w3schools.com/jsref/jsref_length_array.asp

                                    Dominik F.D Offline
                                    Dominik F.D Offline
                                    Dominik F.
                                    wrote on last edited by Dominik F.
                                    #33

                                    @Pittini

                                    Achsooooooo 🙂 So, habe nun die zweite Schleife entfernt weil mir die irgendwie überflüssig erschien. Hier meine neue Lösung:

                                    
                                    createState('javascript.0.Test.TestTable', { type: 'string' });
                                    
                                    const Stadt = ["Stadt", "Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                                    const Fluss = ["Fluss", "Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                                    const Land = ["Land", "Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                                    
                                    
                                    function CreateTestTable() { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                                        let TestTable = "";
                                        TestTable = "<table border='1'>"; //Tabellenanfang
                                        for (let x = 0; x < Stadt.length; x++) {
                                            TestTable += "<tr>";
                                            if (x == 0) {
                                                TestTable += "<th>" + Stadt[x] + "</th>" + "<th>" + Land[x] + "</th>" + "<th>" + Fluss[x] + "</th>";
                                            }
                                            else {
                                                TestTable += "<td> " + Stadt[x] + "</td>" + "<td> " + Land[x] + "</td>" + "<td> " + Fluss[x] + "</td>";
                                            }
                                            TestTable += "</tr>";
                                        };
                                        TestTable += "</table>"; //Tabellenende
                                        setState('javascript.0.Test.TestTable', TestTable);
                                    }
                                    
                                    CreateTestTable(); //Skriptstart
                                    
                                    
                                    P 1 Reply Last reply
                                    0
                                    • Dominik F.D Dominik F.

                                      @Pittini

                                      Achsooooooo 🙂 So, habe nun die zweite Schleife entfernt weil mir die irgendwie überflüssig erschien. Hier meine neue Lösung:

                                      
                                      createState('javascript.0.Test.TestTable', { type: 'string' });
                                      
                                      const Stadt = ["Stadt", "Hamburg", "München", "Berlin", "Bochum", "Dortmund"];
                                      const Fluss = ["Fluss", "Rhein", "Ruhr", "Main", "Donau", "Elbe"];
                                      const Land = ["Land", "Deutschland", "England", "Spanien", "Frankreich", "Italien"];
                                      
                                      
                                      function CreateTestTable() { //  Erzeugt tabellarische Übersicht als HTML Tabelle   
                                          let TestTable = "";
                                          TestTable = "<table border='1'>"; //Tabellenanfang
                                          for (let x = 0; x < Stadt.length; x++) {
                                              TestTable += "<tr>";
                                              if (x == 0) {
                                                  TestTable += "<th>" + Stadt[x] + "</th>" + "<th>" + Land[x] + "</th>" + "<th>" + Fluss[x] + "</th>";
                                              }
                                              else {
                                                  TestTable += "<td> " + Stadt[x] + "</td>" + "<td> " + Land[x] + "</td>" + "<td> " + Fluss[x] + "</td>";
                                              }
                                              TestTable += "</tr>";
                                          };
                                          TestTable += "</table>"; //Tabellenende
                                          setState('javascript.0.Test.TestTable', TestTable);
                                      }
                                      
                                      CreateTestTable(); //Skriptstart
                                      
                                      
                                      P Offline
                                      P Offline
                                      Pittini
                                      Developer
                                      wrote on last edited by
                                      #34

                                      @Dominik-F sagte in Pittinis Workshop für mich:

                                      So, habe nun die zweite Schleife entfernt weil mir die irgendwie überflüssig erschien. Hier meine neue Lösung:

                                      Na geht doch 😉 . Is soweit korrekt, ich persönlich würde aber in der Zeile 15 statt x die 0 direkt reinschreiben, aber das ist Kosmetik. Heut kommt mal keine neue Übung, schau Dir das ganze noch mal an, die Grundsätze wie sone Tabelle aufgebaut wird sollteste jetzt haben. Jetzt sollteste Dir nen einfaches Projekt vornehmen ds Dich interessiert, selber damit loslegen und ich schau mir die Schritte an und korrigier bei Bedarf.

                                      Dominik F.D 2 Replies Last reply
                                      0
                                      • P Pittini

                                        @Dominik-F sagte in Pittinis Workshop für mich:

                                        So, habe nun die zweite Schleife entfernt weil mir die irgendwie überflüssig erschien. Hier meine neue Lösung:

                                        Na geht doch 😉 . Is soweit korrekt, ich persönlich würde aber in der Zeile 15 statt x die 0 direkt reinschreiben, aber das ist Kosmetik. Heut kommt mal keine neue Übung, schau Dir das ganze noch mal an, die Grundsätze wie sone Tabelle aufgebaut wird sollteste jetzt haben. Jetzt sollteste Dir nen einfaches Projekt vornehmen ds Dich interessiert, selber damit loslegen und ich schau mir die Schritte an und korrigier bei Bedarf.

                                        Dominik F.D Offline
                                        Dominik F.D Offline
                                        Dominik F.
                                        wrote on last edited by
                                        #35

                                        @Pittini

                                        Super, dann danke ich dir schon mal für deine super Erklärungen!!
                                        Und natürlich dafür, dass ich weiter Support bekomme.
                                        Ich habe nicht nur was über HTML gelernt, sondern habe ein viel besseres Verständnis für javascript bekommen.
                                        Ich werde nun versuchen, dass Skript etwas umzubauen. Header ein/ausschalten und ein paar Dinge die ich bei dir in deinen Scripten gesehen habe. Dann versuche ich mich an einer kleinen Tabelle zur Darstellung der Anwesenheit. Danach würde ich mich gerne damit beschäftigen, dass Aussehen der Tabelle auf CSS V2 zu bekommen. Das reicht denke ich erst mal für die nächste Zeit 🙂

                                        1 Reply Last reply
                                        0
                                        • P Pittini

                                          @Dominik-F sagte in Pittinis Workshop für mich:

                                          So, habe nun die zweite Schleife entfernt weil mir die irgendwie überflüssig erschien. Hier meine neue Lösung:

                                          Na geht doch 😉 . Is soweit korrekt, ich persönlich würde aber in der Zeile 15 statt x die 0 direkt reinschreiben, aber das ist Kosmetik. Heut kommt mal keine neue Übung, schau Dir das ganze noch mal an, die Grundsätze wie sone Tabelle aufgebaut wird sollteste jetzt haben. Jetzt sollteste Dir nen einfaches Projekt vornehmen ds Dich interessiert, selber damit loslegen und ich schau mir die Schritte an und korrigier bei Bedarf.

                                          Dominik F.D Offline
                                          Dominik F.D Offline
                                          Dominik F.
                                          wrote on last edited by Dominik F.
                                          #36

                                          @Pittini

                                          So, ich habe nun eine kleine Tabelle erstellt die mir die Anwesenheit von 2 Personen anhand der tr064 Daten ausgibt.
                                          Das ganze ist extrem statisch geworden und natürlich kamen bei mir mehrere Fragen auf.
                                          Kann ich das Auslesen der Datenpunkte und das eintragen dieser in die Tabelle eleganter lösen? Können die Datenpunkte auch in ein Array geschrieben werden damit ich wieder eine Schleife nutzen kann um die Zeilen und den Inhalt automatisch eintragen zu lassen? Gibt es eine bessere Lösung um auf die Veränderung der Datenpunkte zu reagieren als auf jeden Datenpunkt einzelnd zu triggern?

                                          createState('javascript.0.Test.TestTable', { type: 'string' });
                                          
                                          //Tabelleneinstellungen
                                          const ShowHead = true; //Überschrift ein/ausblenden
                                          const Head = ["Status", "Person"]; //Hier Überschriften eingeben
                                          
                                          //Personen
                                          const id_Dominik = 'tr-064.0.devices.Handy-Domi.active'/*active*/
                                          var Dominik = getState(id_Dominik).val;
                                          
                                          const id_Nadja = 'tr-064.0.devices.Handy-Nadja.active'/*active*/
                                          var Nadja = getState(id_Nadja).val;
                                          
                                          //  Erzeugt tabellarische Übersicht als HTML Tabelle
                                          function CreateOverviewTable() {
                                              let OverviewTable = "";
                                              OverviewTable = "<table style='width:calc(100% - 40px)'; border =1px>"; //Tabellenanfang
                                          
                                              // Head
                                              if (ShowHead) {
                                                  OverviewTable += "<tr><th>" + Head[0] + "</th>" + "<th>" + Head[1] + "</th></tr>";
                                              };
                                          
                                              //Tabelle
                                          
                                              OverviewTable += "<tr><td> " + Nadja + "</td>" + "<td> " + "Nadja" + "</td></tr>";
                                              OverviewTable += "<tr><td> " + Dominik + "</td>" + "<td> " + "Dominik" + "</td></tr>";
                                              
                                              //Tabellenende
                                              OverviewTable += "</table>"; 
                                              
                                              setState('javascript.0.Test.TestTable', OverviewTable);
                                          }
                                          
                                          CreateOverviewTable(); //Skriptstart
                                          
                                          on({ id: id_Nadja, change: "any" }, function (obj) {
                                              Nadja = obj.state.val;
                                              CreateOverviewTable();
                                          });
                                          
                                          on({ id: id_Dominik, change: "any" }, function (obj) {
                                              Dominik = obj.state.val;
                                              CreateOverviewTable();
                                          });
                                          
                                          
                                          P 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          478

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe