Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: Runden im berechneten Formularfeld

Runden im berechneten Formularfeld 26 Nov 2015 11:17 #3330

  • alkahest
  • alkahests Avatar
  • OFFLINE
  • Beiträge: 14
  • Dank erhalten: 4
Hallo und Guten Morgen,

nachdem ich mit meinem Formular soweit bin das die ersten Einträge erfolgen können, tauchte die Frage nach Berechnungen in Feldern auf. Das funktioniert auch soweit ganz gut. Einfache und weniger einfache Berechnungen werden anstandslos durchgeführt.

Allerdings (und hier kommt die Frage) funktioniert das Runden der Ergebnisse nicht wirklich.

Alle Versuche über das Feld Format/Präzision ein Runden (in meinem Fall: aufrunden/Zelle) hinzubekommen führen zur Formularfeldfehlermeldung:
TypeError: s.ceil is not a function.
Das ist wirklich schade, denn die Berechnung funktioniert, wenn ich bei Format/Präzision den Wert -Auto- belasse.

Was kann ich tun, damit das Aufrunden funktioniert?

Ich habe versucht in der Berechnungszeile (a *3) + (b /20) das Runden einzubauen, aber weder die PHP Variante (ceil) noch die JS Variante (runden) wurden akzeptiert.

Vielleicht weiß jemand von Euch, was hier zu tun ist, denn nach dem original Computation Tutorial sollte es über das Feld Format/Präzision funktionieren.

Viele Grüße
Uli

PS.: Ich hoffe bei Euch scheint auch gerade die Sonne.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Runden im berechneten Formularfeld 26 Nov 2015 22:18 #3331

  • time4mambo
  • time4mambos Avatar
  • OFFLINE
  • Mal gucken ob was passiert...
  • Beiträge: 913
  • Dank erhalten: 177
alkahest schrieb:
Allerdings (und hier kommt die Frage) funktioniert das Runden der Ergebnisse nicht wirklich.
Genau so steht es auch in meinem Buch: alle Rundungsversuche wurden ignoriert. Ich bin insofern begeistert, dass dieser Bug auch bei anderen auftritt. :side:
Wenn du des Englischen mächtig bist, wäre jetzt der Zeitpunkt das mal dem SEBLOD®-Team mitzuteilen, dass das immer noch nicht geht. Denn der Fehler an sich scheint schon von Anbeginn der Rechenoptionen zu exisiteieren.

Machen können wir hier also leider auch nichts.
Einzige Möglichkeit wäre, die Nachkommastellen nicht auszugeben.


Axel
Das SEBLOD®-Handbuch auf Amazon
Tutorials zu Joomla und MS-Office: www.time4joomla.de
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Runden im berechneten Formularfeld 27 Nov 2015 07:56 #3334

  • alkahest
  • alkahests Avatar
  • OFFLINE
  • Beiträge: 14
  • Dank erhalten: 4
Danke Axel.
Auch wenn die Antwort ein wenig niederschmetternd klingt (von Anbeginn der Rechenoptionen...).

Ich werde noch ein wenig weiter schauen, mit der Runden-Funktion experimentieren, hier berichten und mich dann an das SEBLOD®®-Team wenden (und ebenfalls hier berichten).

Du hast mich aber auch gleich als noch-nicht-Leser Deines Buches identifiziert. Da hast Du Recht und es ist mir auch ein wenig peinlich - aber Weihnachten steht ja vor der Tür ;) .

Uli
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Runden im berechneten Formularfeld 27 Nov 2015 08:57 #3336

  • alkahest
  • alkahests Avatar
  • OFFLINE
  • Beiträge: 14
  • Dank erhalten: 4
Auch auf die Gefahr hin das mein Beitrag jetzt noch peinlicher wird, weil ich alle Welt mit bekannten Zusammenhängen langweile, habe ich Folgendes festgestellt:

Meine Berechnung (a *3) + (b /20) wobei a = Dauer Stunden und b = Dauer Minuten darstellen soll und das Ergebnis nach oben gerundet werden soll.

- Wenn ich als SuperUser (SU) das Formuar aufrufe, erscheint die bekannte Fehlermeldung im Formular (Bild: Runden_SU_1).
- Trage ich Werte in die Felder, werden diese nicht sofort berechnet (Bild: Runden_SU_2).
- Speichere ich den Artikel (Datensatz) und rufe ihn als SU wieder auf, scheint das Runden zu funktionieren (Bild: Runden_SU_3).
- Rufe ich den Datensatz im Frontend als NormalerUser (NU) auf, wird das Ergebnis mit einer Nachkommastelle ohne Rundung angezeigt (Bild: Runden_NU_3).
- Lege ich einen Artikel (Datensatz) als NU im Frontend an, erscheint keine Fehlermeldung im Formular und die Berechnung erfolgt, wenn auch ohne Runden, sofort mit zwei Nachkommastellen (Bild: Runden_NU_4).
- Rufe ich diesen Datensatz im Backend als SU auf, scheint das Runden wieder zu funktionieren (Bild: Runden_NU_5).

Ist das der bekannte Sachstand zum Thema Runden?
Was mir noch fehlt ist der Versuch im Frontend mit SU-Rechten Artikel (Datensätze) anzulegen.

Nach diesem Versuch scheint das Runden zu funktionieren, wenn auch nur im Backend und mit SU-Rechten und während des Speicherns.

Uli
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Runden im berechneten Formularfeld 27 Nov 2015 11:33 #3338

  • time4mambo
  • time4mambos Avatar
  • OFFLINE
  • Mal gucken ob was passiert...
  • Beiträge: 913
  • Dank erhalten: 177
Ist das der bekannte Sachstand zum Thema Runden?
Bei mir nicht, weil ich das so detailliert nicht ausprobiert habe. Und aus meiner Sicht geht das Runden nach wie vor nicht. Geht manchmal und meist doch nicht ist in Summe ein "geht nicht" ;)
Was nutzt es mir, wenn ich als SuperAdmin im BE das richtig sehen kann?!

Aber vermutlich haben die Jungs von SEBLOD® das auch noch nie so detailliert getestet. :lol:


Axel
Das SEBLOD®-Handbuch auf Amazon
Tutorials zu Joomla und MS-Office: www.time4joomla.de
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Runden im berechneten Formularfeld 29 Nov 2015 12:19 #3342

  • alkahest
  • alkahests Avatar
  • OFFLINE
  • Beiträge: 14
  • Dank erhalten: 4
Hier nun eine vorerst Lösung:

Meine Aufgabenstellung war es einen 20-Minuten-Takt aufzubauen. Ergo sind eine Stunde 3 Takte und bei den Minuten eine entsprechende Rundung:
0 - 19 Minuten = 1 Takt
20 - 39 Minuten = 2 Takte
40 - 60 Minuten = 3 Takte

Da die Funktion des Rundens (hier:Aufrunden) in SEBLOD®® nicht funktioniert, habe ich den erforderlichen Vorgang in eine Berechnungsformel verbaut. Den entscheidenden Hinweis habe ich hier gefunden.

So lautet meine Formel jetzt: (a *3) + (((b +20)-10)/20)
Wobei a der Stundenwert ist und b der Minutenwert.
Siehe Bild.

Die Anfrage an das englische SEBLOD®®-Forum ist ebenfalls gestellt, da alle Versuche meinerseits den TypeError abzufangen bis dato gescheitert sind.
Inkl. dem netten Versuch das Runden über ein zusätzliches Feld zu realisieren. Wie hier beschrieben.


Vielleicht kann das ja jemand gebrauchen (und sei es nur als Gedankenansatz)

Uli
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: nscnsc

Runden im berechneten Formularfeld 12 Dez 2015 00:07 #3359

  • alkahest
  • alkahests Avatar
  • OFFLINE
  • Beiträge: 14
  • Dank erhalten: 4
Hier ist nun die abschließende Lösung:

Zuerst jedoch eine Fehlerkorrektur zur vorherigen Ausführung.
Die Aufstellung der Minutentaktungen muss richtig lauten:

1 - 19 Minuten = 1 Takt
20 - 39 Minuten = 2 Takte
40 - 59 Minuten = 3 Takte

Der folgenschwere Fehler steckt im ersten Takt, da die Berechnung erst dann beginnen darf, wenn der Minutenwert größer Null ist.
Der zweite Fehler steckt im dritten Takt, der nicht mit der 60igsten Minute endet sondern mit der 59igsten.

Die richtige Formel lautet:

(b==0)?(a *3) +0: (a *3) + (((b +20)-10)/20)

Die eingesetzte If-Abfrage lässt, wenn Null Minuten eingetragen sind, die Minutenberechnung aussen vor und setzt den Wert +0, wogegen die Minutenberechnung in allen anderen Fällen (Minutenwert größer Null) aufgerundet durchgeführt wird.

Soweit steht die Formel jetzt, wenn keine Einwände kommen.

Uli
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: time4mambo
nach oben