Ergebnis 1 bis 15 von 15
  1. #1
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    Durchlauf Array erstellen

    Hallo zusammen

    ich möchte für einen Alarm ausgabe ein Array erstellen, ich habe drei Zeilen mit Alarmtext und möchte immer die aktuellste auf die erste Zeile nehmen und die andern nachrücken bis diese wieder rausfallen.

    Leider funktioniert es noch nicht ganz wie ich es möchte, sprich habe momentan einfach 3 verschiedene IF abfragen, was jedoch nicht funktioniert, die neuen Alarme werden nicht richtig an oberster Stelle eingefügt.
    Kann jemand helfen?;-)

    Java1.PNGjava2.JPG

  2. #2
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.303

    AW: Durchlauf Array erstellen

    Kannst du den Code bitte als Text posten, das Bild ist so klein.

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.751

    AW: Durchlauf Array erstellen

    Wo und wie wird denn item.state gesetzt?

  4. #4
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    AW: Durchlauf Array erstellen

    Bezüglich dem item.state bin ich etwas überfragt.

    Anbei findet ihr den Text.

    HTML-Code:
    var arrayAlarms = [];
    var filter = {};
    filter.address = ["g:AGENT.OBJECTS.*"];
    filter.type = [];
    	//filter.type.push("v:1");		// node
    	filter.type.unshift("v:2");		// alarm	
    	filter.init = ["v:true"];
    	// initial raw values for AGENT.OBJECTS.MyData.*
    	webMI.data.subscribeFilter(filter, function(e) {
    		var item = e;
        // ...
        console.log(item);
        if(item.state == 1 && item.ActiveStateId == true){
    		webMI.gfx.setText("txtAlarmDatum1", "22-09-2020");
    		webMI.gfx.setText("txtAlarmbedinung1", item.InputNode);
    		webMI.gfx.setText("txtAlarmzeile1", item.eventtext.de);
    		webMI.gfx.setText("txtAlarmStatus1", item.ActiveState.de);
    		}
    	if(item.state == 2 && item.ActiveStateId == true){	
    		webMI.gfx.setText("txtAlarmDatum2", "22-09-2020");
    		webMI.gfx.setText("txtAlarmbedinung2", item.InputNode);
    		webMI.gfx.setText("txtAlarmzeile2", item.eventtext.de);
    		webMI.gfx.setText("txtAlarmStatus2", item.ActiveState.de);
    		}
    		
    	    if(item.state == 3 && ActiveStateId == true){
    		webMI.gfx.setText("txtAlarmDatum3", "22-09-2020");
    		webMI.gfx.setText("txtAlarmbedinung3", item.InputNode);
    		webMI.gfx.setText("txtAlarmzeile3", item.eventtext.de);
    		webMI.gfx.setText("txtAlarmStatus3", item.ActiveState.de);	
    		//arrayAlarms.push({id:address.address, address:c.address, eventtext:item.eventtext.de});
    	}
    Geändert von mikdoe (24-09-2020 um 09:57 Uhr) Grund: Code Tags

  5. #5
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.801

    AW: Durchlauf Array erstellen

    Zitat Zitat von Philipp00 Beitrag anzeigen
    Bezüglich dem item.state bin ich etwas überfragt.
    Wo hast du den Code denn her?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  6. #6
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    AW: Durchlauf Array erstellen

    Mehr oder weniger selber zusammen gebastelt

  7. #7
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.801

    AW: Durchlauf Array erstellen

    Und was genau meinst du hiermit?

    Zitat Zitat von Philipp00 Beitrag anzeigen
    ich möchte für einen Alarm ausgabe ein Array erstellen
    Was ist für dich ein Alarm? Und was genau meinst du mit Array in diesem Zusammenhang?
    Du musst bitte mal mit eigenen Worten beschreiben, wie es am Ende aussehen soll. Lass mal Fachbegriffe und Code ganz weg.
    Und wichtig: wo kommen die Nutzdaten her und wie genau sehen sie aus?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  8. #8
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    AW: Durchlauf Array erstellen

    Hallo zusammen

    Ich möchte die letzen drei Alarmmeldungen die über Objecte ausgebgen werden (siehe Foto unten) in einem weisen Rahmen anzeigen (siehe Foto).
    Dabei soll es so sein das immer die aktuellste Meldung oben stehen und nur solange diese Aktiv ist, wenn diese nicht mehr aktiv ist soll diese von selbst verschwinden.
    Daher auch das Array.
    Hoff konnte es euch so verständlich erklären.



    Javascript_Object.PNG
    Javascript_Object1.PNG

  9. #9
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.801

    AW: Durchlauf Array erstellen

    OK dann brauchen wir die Beispieldaten noch in Textform. Als Image kann man damit nicht arbeiten.
    Und der Abruf/Bezug der Daten ist schon fertig oder ist das auch Bestandteil der Frage? Ich nehme an, JSON per AJAX? Oder anderes? Du schreibst von Objecten, wo kommen die her? Oder geht es einzig um die Anzeigesteuerung?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  10. #10
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    AW: Durchlauf Array erstellen

    Die Daten werden vom Webserver empfangen zum Beispiel von einer SPS, nach mir werden die Objekte dann vom Webserver generiert (siehe Printscreen)

    HTML-Code:
    var arrayAlarms = [];
    var filter = {};
    filter.address = ["g:AGENT.OBJECTS.*"];
    filter.type = [];
    	filter.type.push("v:2");							// alarm	
    	filter.init = ["v:true"];							// initial raw values for AGENT.OBJECTS.MyData.*
    	webMI.data.subscribeFilter(filter, function(e) {
    		var item = e;
        // ...
        console.log(item);
        if(item.state == 1 && item.ActiveStateId == true){
    		webMI.gfx.setText("txtAlarmDatum1", "22-09-2020");
    		webMI.gfx.setText("txtAlarmbedinung1", item.InputNode);
    		webMI.gfx.setText("txtAlarmzeile1", item.eventtext.de);
    		webMI.gfx.setText("txtAlarmStatus1", item.ActiveState.de);
    		}
    - - - Aktualisiert - - -

    Nach mir werden die Meldungen mit "filter.address = ["g:AGENT.OBJECTS.*"];" gefiltert.
    Eigentlich Funktioniert der Code so, jedoch wird immer nur die erste Meldung angezeigt und nicht wie gewünscht immer die aktuellst zu oberst.

    - - - Aktualisiert - - -

    so sieht es dann aus, wenn ich einen Alarm auslöse immer der neust steht zu oberst, leider werden die anderen nicht auf die unteren Zeile verschoben.


    Javascript_Alarm.JPG
    Geändert von mikdoe (29-09-2020 um 09:47 Uhr) Grund: Code Tags

  11. #11
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.801

    AW: Durchlauf Array erstellen

    ok jetzt sind wir genau einmal im Kreis rum wieder bei der Frage von kkapsner.
    Die Anzeige scheint ja von einer externen Komponente webMI.gfx.setText() vorgenommen zu werden. Und es besteht eine maßgebliche Bedingung mit item.state. Die Frage ist jetzt, wer kann uns bei diesen beiden Sachen Details geben?

    M. E. musst du unbedingt herausfinden, wo item herkommt und wann item.state und item.ActiveStateId welche Werte annehmen. Bau doch mal noch ein paar mehr console.log() ein, um die Werte zu beobachten, wenn du die Info anders nicht bekommen kannst.

    Und eine Info, wie man die Meldungen in webMI.gfx.setText() steuert kann wahrscheinlich auch nicht schaden. Schließlich müssen wir dem Ding sagen, dass es alles um einen verschieben, auf der einen Seite einen löschen und auf der anderen Seite einen einfügen soll, damit der gewünschte Durchlauf Effekt entsteht. Oder ist das schon bekannt, wie das geht?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  12. #12
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    AW: Durchlauf Array erstellen

    Das Poblem ist einfach, wenn der Alarm einmal ausgelöst ist und per console.log() auf die oberte Zeile geschrieben wird, verändert sich dieser nur noch wenn ein neu Meldung hinzu kommt.
    Jedoch sollte die meldung sobald " item.ActiveStateId == true" nicht mehr uf true steht wieder verschwinden.

    Leider weiss ich nicht wie ich dem ding sage das es sich auf den nächsten Linie schieben soll, oder am Ende aus der Liste herausfallen soll.

  13. #13
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.801

    AW: Durchlauf Array erstellen

    Du willst Meldungen in der Console steuern? Glaube nicht dass das geht, weil die Console dafür nicht gemacht ist. Die dient der Entwicklung einer Webseite und der Fehlersuche.
    Deine Meldungen wirst du in einem Container innerhalb des DOM der Webseite anzeigen müssen.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  14. #14
    Philipp00 ist offline Grünschnabel
    registriert
    06-09-2020
    Beiträge
    8

    AW: Durchlauf Array erstellen

    Ich glaube du verstehst nicht ganz was ich möchte.
    Die Meldungen müssen nur angezeigt werden, auf der obsten Zeile wird ja bereits einen Meldung angezeit, dass ist auch gut so nur möchte ich diesen Meldung bei erhalten einer neuen Meldung um eine Zeile nach unten verschieben und so weiter bis die Meldung unten wieder rausfällt, sprich ab der vierten Position wird diese nicht mehr angezeigt und immer die neuste Meldung zu oberst erscheint.

  15. #15
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.801

    AW: Durchlauf Array erstellen

    Ja das habe ich verstanden aber die Konsole console.log() ist nur ein Entwicklerwerkzeug! Du kannst dort hinein schreiben, wenn du z. B. Fehler in deinem JS Code suchst. Das ist nicht zur darüber hinaus gehenden regelmäßigen Nutzung vorgesehen. Und man kann schon gleich gar nicht darin irgend welche Reihenfolgen definieren, Schriftarten verändern oder sonstige Spielchen machen. Zumindest ist das mein Kenntnisstand.

    Warum ergänzt du in deiner Webseite nicht einfach ganz unten ein div und schreibst dort rein? Da kannst du dich dann austoben.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

Ähnliche Themen

  1. Aus Substrings Array erstellen
    Von JasMich.de im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 29-11-2016, 19:17
  2. Array erstellen
    Von Sasch im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 01-12-2013, 14:13
  3. Array aus Array erstellen
    Von kurt001 im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 07-07-2012, 17:15
  4. Bildwechsel Script nach 1 durchlauf stoppen
    Von Dreshar im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 10-07-2010, 14:30
  5. Array aus Variableninhalt erstellen
    Von Baul im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 03-10-2007, 19:06

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •