INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Zeiten zusammenzählen solange ein bestimmter Wert vorliegt



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.01.2008, 16:41
Beitrag #1

mapra Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Nov 2007

DIAdem
2007
kA

80788
Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Hallo zusammen!

Ich hätte noch eine Frage. Und zwar muss ich aus einer Messdatei (Beispiel im Anhang) herausfiltern, wie lange der Steuerwert z.B. auf "40" gestanden hat.

In der Beispieldatei wären das 3 Minuten + 1 Minute = 4 Minuten.

Das heißt, ich brauche irgendeine Variable, die ich in ein Reportdiagramm einfügen kann, so dass im Report dann z. B. steht:
Anlage arbeitete 4 Minuten.

Ich habe die DIAdem-Hilfe wirklich sehr lange durchsucht. Aber eine derartige Filter(?)-Funktion habe ich nicht gefunden.

Ich wäre Euch wirklich sehr dankbar, wenn ihr mir weiterhelfen könntet!

Viele Grüße, mapra


Angehängte Datei(en)
Sonstige .txt  messdaten_zaehlung.txt (Größe: 1,43 KB / Downloads: 243)
Alle Beiträge dieses Benutzers finden
to top
16.01.2008, 13:39
Beitrag #2

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Hallo mapra,

die Frage nach der Variablen ist einfach. Mit dem Befehl GlobalDim kannst du eine globale Variable definieren, die solange aktiv bleibt, wie DIAdem gestartet ist. Interessanter finde ich das Summieren der einzelnen Zeitabschnitte. Hierzu ein Vorschlage (es gibt sicher noch andere Varianten):


Option Explicit

call GlobalDim("dSumTime")
Dim iPosStart, dStartVal

dSumTime = 0
iPosStart = 0

do
iPosStart = chnFind("ch(""[1]/Steuerwert"") = 40", iPosStart + 1)
' gibt es noch Daten?
if iPosStart > 0 then
dStartVal = chd(iPosStart, "[1]/Laufzeit")
iPosStart = chnFind("ch(""[1]/Steuerwert"") <> 40", iPosStart + 1)
' Ende gefunden
if iPosStart > 0 then
dSumTime = dSumTime + chd(iPosStart-1, "[1]/Laufzeit") - dStartVal
dStartVal = 0
else
' hört Steuerkanal mit 40 auf?
if dStartVal > 0 then
dSumTime = dSumTime + chd(ChnPropValGet("[1]/Laufzeit", "length"), "[1]/Laufzeit") - dStartVal
end if
end if
end if
Loop while iPosStart <> 0

msgbox dSumTime


Die globale Variable dSumTime kannst du dann in REPORT anzeigen.

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top
16.01.2008, 14:21
Beitrag #3

mapra Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Nov 2007

DIAdem
2007
kA

80788
Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Hallo Carpe DIAdem,

vielen Dank für Deine Hilfe!

Ich hab das Script mit mehreren Messdaten probiert und es funktioniert wirklich super!!

Noch eine kleine Frage zum Abschluss:

Der Wert, der in der Variable "dSumTime" hinterlegt ist, ist die Zeit in Sekunden, oder?!

Wie kann ich denn die Variable in meinem Report im Format "hh:nnConfuseds" einbinden?

Können die Stunden eigentlich auch Werte über 23 annehmen? Weil wir haben teilweise Laufzeiten, die über einen Tag gehen und da würde die Laufzeit im Report ja dann im Format hh:nnConfuseds nicht ganz stimmen...

Grüße, mapra
Alle Beiträge dieses Benutzers finden
to top
16.01.2008, 16:45
Beitrag #4

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Hallo mapra,

die Formatierung in REPORT sieht für die Variable prinzipiell so aus:

Dauer: @@str(dSumTime, "#hh:nnConfuseds")@@

Die @@ Zeichen leiten eine Variable ein und beenden die Definition. Mit STR und "#hh:nnConfuseds" wird dann formatiert. Weitere Infos heirzu stehen in der Hilfe.

Mehr als 23 Stunden können aber nicht angezeigt werden. Entweder musst du das selbst ausrechnen und entsprechend aufbereitet anzeigen oder wenn du mit folgendem auskommst hilft dir DIAdem:

@@str(dSumTime, "#dd")@@ Tage und @@str(dSumTime, "#hh:nnConfuseds")@@

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top
17.01.2008, 09:21
Beitrag #5

mapra Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Nov 2007

DIAdem
2007
kA

80788
Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Hallo Carpe DIAdem,

es funktioniert alles wunderbar!

Vielen Dank für Deine Hilfe! Du hast mir echt richtig weitergeholfen!!

Mach weiter so, denn viele Leute wären ohne Dich wirklich "aufgeschmissen"!

Danke nochmals und Grüße,

mapra
Alle Beiträge dieses Benutzers finden
to top
17.01.2008, 10:50
Beitrag #6

mapra Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Nov 2007

DIAdem
2007
kA

80788
Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Jetzt hab ich leider nochmals ne kleine Frage.

Ich habe festgestellt, dass die Steuerwerte um 40 streuen. Das heißt, es kommen auch beispielsweise Werte mit 39,8 oder 40,7 vor.

Wie kann ich denn das obere Script abändern, so dass alle Zahlen im Bereich von 38,5 bis 41,5 "als 40 erkannt werden" ?

ich habe mit der "AND-Funktion" herumgespielt, aber nur Fehlermeldungen erhalten...

Vielen Dank für die Antwort schon mal im Voraus!

Grüße, mapra
Alle Beiträge dieses Benutzers finden
to top
Anzeige
17.01.2008, 16:22
Beitrag #7

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Zeiten zusammenzählen solange ein bestimmter Wert vorliegt
Hallo mapra,

du musst die ChnFind-Funktion entsprechend anpassen, also nit = 40 sondern z. B. >= 38.5. Hier können die logischen Vergleiche <,>,=,>=,<= eingesetzt werden.
Je nach Streuung muss vor der zweiten Suche eine "Zwischensuche" erfolgen, damit man von einem definierten Punkt aus z. B. 40, weiter suchen kann.

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top


Gehe zu: