====== Berechnung mit VARIABLEN und PLATZHALTERN ====== Diese Seite des Handbuchs können Sie als File in Valerio aufrufen: Wählen Sie im Menü Datei öffnen und öffnen Sie die Datei VALERIO\DEFAULTS\**Rechenregeln.VTX** Den Inhalt können Sie in ein beliebiges **Rechendokument** hineinkopieren, damit sind die Funktionen aktiv. \\ \\ **Texte und Rechenfunktionen** können grundsätzlich in der selben Zeile stehen, wobei der Text von der nachfolgenden Rechenfunktion mittles Doppelpunkt ":" getrennt werden muss. \\ Ein Doppelpunkt am Ende eines Textes löst automatisch den **Übergang in eine Rechenfunktion** aus, d.H. die Variable @ERGEBNIS aus! \\ Vorsicht, ist bei Anwendung anderer Platzhalter hinderlich, z.B bei @ES (Endsumme)! \\ Dort **KEINEN** Doppelpunkt anwenden, da sonst **Endergebnisse** dupliziert werden ("Summe" + "Ergebnis")! \\ Nach einer Rechenfunktion kann mit einem **Strichpunkt** " ; " wieder in den **Textmodus** gewechselt werden. \\ \\ **Generell gilt** \\ **Keine Doppelpunkte am Ende einer Zeile**, z,B. als Überschrift, da bei den interenen Plausbilitästprüfungen, vor allem beim Update von Projektvariablen in die Rechendokumente von Valerio sonst eine Rechenfunktion erwartet wird, die es in dieser Zeile nicht gibt. \\ Damit werden **FEHLERMELDUNGEN** ausgelöst. \\ Diese können im Zuge einer Datenbank-Reparatur bzw Datenbank-Prüfung gezieilt in das LOGFILE des Sicheungsverzeichnisses VOR der DB-Überprüfung geschreiben werden. \\ Nomenklatur Datum mit "E"-TXT-Fiel also z.B 221018-E.TXT \\ Im Log steht die Datei, momentan noch kein HInweis auf die Liste / Zeile / Spalte. \\ \\ Vorsicht bei KLAMMERN! \\ Bei den Rechenfunktionen wird das Vorhandensein der Klammern geprüft, vor allem NACH den Doppelpunkten. \\ Ein in Klammer gesetzter Text mit einem ISTGLEICH anbgeschlossen bedeutte, dass eine PROJEKTVARIABLE an dieser Stelle gesucht und eingesetzt wird. \\ Gibt es KEINE Projektvariable, erfolgt die Fehlermeldung unmittelbar beim Schreiben. \\ Wird eine Projektvariable nach dem Einsetzen in ein Rechendukument gelöscht oder geändert, erfolgt zu diesem Zeitpunkt KEIN Update aller möglichen datenbanken (Teilgewrke, mengen, EHP, LV-Massenansätze, IFC-Files). \\ Dieser Fehler wird erst beim UPDATE der Projektvariablen in ALLE zugehörigen Datenbanken gesucht, allenfalls gefunden und als Fehlermedlung angezeigt. \\ Dies zu suchen und zu finden ist eher mühsam, deshalb bitte KEINE Projektvariablen ändern, wenn deise einmal bereist eingelesen wurden! \\ \\ Es gibt in **Rechendokumenten** 2 Arten von **VARIABLEN** \\ \\ **LOKALE VARIABLEN**, die NUR in EINEM Rechendokument gelten \\ und \\ **PROJEKTVARIABLEN**, die innerhalb des GESAMTEN PROJEKTES gelten. \\ Es gibt KEINE VARIABLEN, die für Rechendokumente MEHRERER Projekte gelten. \\ \\ ===== LOKALE VARIABLEN ===== Definitionen von Lokalen **VARIABLEN** \\ Diese sind nur __innerhalb **eines** Rechendokumentes gültig__, und müssen VOR den Rechenoperationen definiert werden, indem \\ 1.) in einer neuen Zeile der Name der Variable, gefolgt von einem "=" und dem Rechenwert angegeben werden \\ 2.) nur eine Variable pro Zeile definiert wird \\ 3.) ausser der Variablendefinition in dieser Zeile nichts stehen sollte. \\ \\ Die Benennung der Variablen ist grundsätzlich frei wählbar und in die Rechenfunktionen von Valerio NICHT eingebunden. \\ VAR1=10 \\ VAR2=20 \\ ===== PROJEKTVARIABLEN ===== **PROJEKTVARIABLEN** gelten für **ALLE** Rechendokumente eines **gesamten Projektes** und werden beispielsweis beim **IFC-Massenimport** aus **BIM-Modellen** angewendet (vgl. [[projektvariablen|Projektvariablen anlegen]] bzw. [[ifc-massenimport|IFC-Massenimport aus 3D-CAD IFC-Files]]). \\ \\ ===== RECHENFUNKTIONEN ===== Ein **ISTGELICH-ZEICHEN** löst in Valerio eine **Rechenfunktion** aus, sobald es in einer Zeile steht: links von einem Doppelpunkt ist das Zeichen ein Textzeichen, rechts vom Doppelpunkt oder in Zeilen OHNE Doppelpunkt wird die Rechenfunktion ausgelöst. \\ \\ ===== PLATZHALTER ===== **Platzhalter** sind in Rechenfunktionen von Valerio eingebunden, zur Anwendung für Rechendokumente stehen zur Verfügung @ES, @ZS, @TZS, @ERGEBNIS, @TE (Endsumme, Zwischensumme, Teilzwischensummen, Ergebnis, Teil-Ergebnis) Der **Platzhalter @ERGEBNIS** folgt nach jedem "=" als Abschluss einer Rechenoperation und wird von Valerio automatisch gesetzt \\ z.B: 2*2=4,00 \\ VAR1+VAR2=30,00 \\ 2*2=4,00 Der **Platzhalter @ES** (Endsumme) gibt das Ergebnis des Rechendokumentes an, das als Spaltenwert dann von Valerio weiter herangezogen wird. Es wird dabei der LETZTE Wert genommen, d.h. voranstehende Werte können mehrfach wieder auf NULL gesetzt werden, indem z.B. der Platzhalter @ES mit (-1) multipliziert wird, neue Summe danach gleich null. \\ Im Platzhalter @ES werden nur Summen gebildet, die zwischen diesen beiden Platzhaltern liegen, d.h. eine Summe (@ES) mit dem Wert Null bewirkt ein neues Aufsummieren ab dieser Stelle. SUMME bis hierher als Beispiel (OHNE Doppelpunkt! da sonst auch "@ERGEBNIS" erzeugt würde) 38,00 \\ Nullstellung: -1*38,00 =-38,00 \\ __Summe neu 0,00__ Neuer Rechenansatz, nach der Nullsetzung des Ergebnisses \\ VAR1+VAR2=30,00 Summe mit @ES seit letzter Anwendung von @ES 30,00 \\ erneute Nullstellung: -1*30,00 =-30,00 \\ __Endsumme neu 0,00__ Mit dem **Platzhalter @ZS** können Zwischensummen gebildet werden, die insgesamt dann in die Endsumme (@ES) aufgenommen werden. Die Platzhalter können auch in Rechenoperationen eingebunden werden, wobei immer der LETZTGÜLTIGE Wert genommen wird. \\ VAR1+VAR2=30,00 \\ 10*10=100,00 \\ **Platzhalter Zwischensumme 1 @ZS 130,00 \\ 2*3=6,00** \\ 5 x "Zwischensumme": 5*6,00 =30,00 \\ Definition der letzten "Zwischensumme" als Variable, Einbindung in weiteren Rechengang! Damit aber auch Teilung des Bereiches für die \\ Zwischensumme \\ **ZWS=30,00** \\ 10*ZWS=300,00 \\ 10*5=50,00 \\ **Zwischensumme2 (@ZS) 350,00** Endsumme (@ES) seit letzter Nullstellung 516,00 \\ erneute Nullstellung: -1*516,00 =- 516,00 \\ Zwischensumme, um auch diese auf Null zu stellen, keine Auswirkung auf Endsumme - 516,00 \\ Summe neu 0,00 Für den **Platzhalter @ADD** konnten keine Funktionen in Rechendokumenten ermittelt werden. \\ VAR1+VAR2=30,00 Die **Platzhalter @TE (Teilergebnis)** und** @TZS (Teilzwischensumme)** lassen abgeschlossene Summenbildungen innerhalb eines Bereiches zu. \\ So können mehrere "Teilergebnisse" in einer "Teilzwischensumme" erfasst werden \\ 10*40=400,00 ; Teilergebnis 1 \\ 10*50=500,00 ; Teilergebnis 2 \\ **Teilzwischensumme 900,00** ; nur die Ergebnisse von 1 und 2 werden zusammengefasst \\ 20*40=800,00 ; Teilergebnis 3 \\ 20*50=1 000,00 ; Teilergebnis 4 \\ T**eilzwischensumme 1 800,00** ; nur die Ergebnisse von 3 und 4 werden zusammengefasst Die Teilergebnisse und Teilzwischensummen werden in den Rechenablauf NICHT aufgenommen und dienen dazu, nachvollziehbare Ansätze zu liefern, die dann nicht mehr auf "null" gestellt werden müssen, wie alternativ zuvor beschrieben Soll später einer dieser Werte dennoch verwendet werden, so kann eine Teilzwischensumme als VARIABLE definiert werden \\ 30*40=1 200,00 ; Teilergebnis 5 \\ 30*50=1 500,00 ; Teilergebnis 6 \\** VAR3=2 700,00** \\ nur die Ergebnisse von 5 und 6 werden zusammengefasst, VAR 3 kann weiter eingesetzt werden Neuer Rechenansatz \\ VAR1+VAR2=30,00 \\ Einsatz Variable 3: VAR3*2=5 400,00 Summe 5 460,00 ; samt Summe vor dem Text für "@ADD"! **RUNDEN** \\ Gesamtsummen oder Zahlen, können automatisch gerundet werden indem die Funktionen "R(xxx)=" oder "R10(xxx)=" oder "R100(xxx)=" sowie "R1000(xxx)" verwendet werden. \\ Die Zahlen werden **NUR AUFGERUNDET, nicht abgerundet!** \\ "R(xxx)=" rundet auf die nächste ganze Zahl auf (z.B. 4,5 auf 5) \\ "R10(xxx)=" rundet auf die nächste ganze Zehnereinheit auf (z.B. 4,5 auf 10) \\ "R100(xxx)=" rundet auf die nächste ganze Hundertereinheit auf (z. B. 45 auf 100) - \\ "R1000(xxx)=" rundet auf den ganzen nächsten Tausender auf. z.B. für Bewehrungsstahl Sinnvoll ist die Rundenfunktion mit Endsummen unter Verwendung des Platzhalters "Endsumme" (@ES) einzusetzen \\ Summe bisher 5 460,00 \\ Annahme: 1234,66= 1 234,66 \\ Runden: R(6 694,66 )= 0,34 \\ oder \\ Runden: R10(6 695,00 )= 5,00 \\ oder \\ Runden: R1000(6 700,00 )= 300,00 Beispiel: \\ Summe bisher gerechnet 7 000,00 \\ Neuer Wert dazu: 164,68= 164,68 \\ Runden: R10(7 164,60 )= 5,32 \\ **Summe 7 170,00** **ZUSCHLAG für nicht erfasste Mengen** Je nach Bearbeitungsschritt ist nur ein Teil errechnet, der Rest muss durch einen Zuschlag erfasst werden. \\ Wir führen dies als "LOGFILE" mit fortlaufender Angabe von Datum und Verfasser an und reduzieren dabei jeweils den Zuschlag der nicht erfassten Mengen. \\ Dabei können wieder die Platzhalter eingesetzt werden. Summe bisher ermittelt 7 170,00 \\ Zuschlag für nicht ermittelte Bereiche: 20/100 * 7 170,00 = 1 434,00 \\ Summe nach Zuschlag 8 604,00 \\ Runden: R100(8 604,00)= 96,00 **Summe gerundet 8 700,00** Das nachvollziehbare Ändern von Rechendokumenten gint zwar einen Hinweis auf den Arbeitsaufbau und den Wissensstand, kann jedoch KEINE Veränderund der Rechenwerte auf der Zeitachse bewirken. \\ Um nachvollziehbare Rechenergebnisse mi einem **Gültigkeitsdatum** und damit Einbindung in die **Timeslines** des **Kostentrichters** zu ermöglichen, müssen diese über **eigene Zeilen** mit einem **Gültigkeitsdatum** (z.B. in den Teilgewerken) oder durch **Projektvariablen** mit den entsprechenden zeitlichen Einträgen (manuelle Ansätze oder IFC-Files) erstellt werden. \\ Durch die Erstellung der **Projekt-HISTORY** werden dann für Platzhalter, Kostenkontrolle und Aufträge / Abrechnungen Datensätze mit einem ideneten Gültigkeitsadtum erzeugt und berechnet.