UebergeordnetesD.bmp Grundlegende Informationen zur NTCS Allgemein finden Sie unter Einfache Handhabung.


 Was ist ein Makro?

Ein Makro ist ein Verfahren, mit dem ein Vorgang oder eine Folge von Vorgängen in einem einzelnen, einfach zu verwendenden Befehl zusammengefasst wird. Makros werden im allgemeinen in Kategorien geteilt.

Automatisierungsmakros
Makros, die entworfen werden, um häufig ausgeführte Vorgänge mittels eines Menübefehls oder einer Tastenkombination schneller ausführen zu können.
Erweiterungsmakros
Makros, die BMD NTCS neue Funktionen hinzufügen.
Anwendungsmakros
Vollständige Makrosysteme, die zur Ausführung komplexerer Vorgänge entworfen werden.
 
Dies ist jedoch keine feste Unterteilung. Es gibt Erweiterungsmakros, die Vorgänge automatisieren und Automatisierungsmakros, mit denen ein spezifisches Problem gelöst wird. Die meisten Makros fallen bis zu einem gewissen Grad in zwei oder in alle drei dieser Kategorien. Es ist dennoch zweckmäßig, diese Kategorien im Auge zu behalten, wenn Sie sich mit dem Entwurf und der Erstellung von Makros befassen.

 Die Makroumgebung

Die Makrofunktionen stehen in jedem Fenster im Menü "Extras" und hier im Untermenü "Makros" zu Verfügung. Sollte der Befehl "Makros" im Menü "Extras" nicht aufscheinen, müssen Sie die Makroumgebung aktivieren. Der Parameter befindet sich unter Tools → Überblick über alle TOOLS Parameter → Einstellung für Gesamtsystem → Globale Einstellungen → Gesamtsystem → Makros aktivieren: Ja.
Im Untermenü "Makros" finden Sie sowohl die Makro-Verwaltung als auch alle verfügbaren Fenstermakros.
Starten Sie zunächst die Makro-Verwaltung mit dem Befehl "Makro-Verwaltung" aus dem Untermenü "Makros" im Menü "Extras", um Ihr erstes Makro zu erstellen.
 

 Die Makro-Verwaltung

In der Makro-Verwaltung finden Sie eine Auflistung aller Fenster- und Aktionsmakros. Mit der Schaltfläche "Erstellen" können Sie abhängig vom gewählten Bereich ein Fenster- oder Aktionsmakro erstellen.

 Erstellen

Um das erste Fenstermakro zu erstellen, klicken Sie auf die Schaltfläche "Erstellen". Es öffnet sich das Dialogfenster des Makro-Editors. 

 Bearbeiten

Wenn Sie ein Makro bearbeiten möchten, markieren Sie das gewünschte Makro. Anschließend klicken Sie auf die Schaltfläche "Bearbeiten".

 Löschen

Wenn Sie ein Makro löschen möchten, markieren Sie das gewünschte Makro. Anschließend klicken Sie auf die Schaltfläche "Löschen".

 Der Makro-Editor

Sie können im Feld "Namen" die Bezeichnung des Makros eingeben, die dann im Untermenü "Makros" aufscheint.
Auf der rechten Seite finden Sie die Makro-Toolbar die alle verfügbaren Befehle und Datenfelder auflistet, die Sie für Ihre Makros verwenden können. Wenn Sie den Befehl markiert haben, erscheint im rechten unteren Fenster ein kurzer Hinweis, wie dieser Befehl verwendet werden kann.
Mittels Doppelklick auf den gewünschten Befehl fügen Sie diesen in das Code-Fenster ein. Sie können Makrofunktionen auch einfügen, indem Sie die Taste F4 drücken oder den Befehl "Funktion" aus dem Menü "Funktionen" wählen. Sobald Ihnen die Syntax und die Befehle bekannt sind, können Sie die Befehle auch eintippen. Sie können das aktive Makro starten, indem Sie auf die Schaltfläche "Start" klicken oder die Taste F9 drücken. Um syntaktische Fehler vor der Ausführung zu vermeiden, empfiehlt es sich, das Makro zu compilieren (Strg + F9). Klicken Sie auf die Schaltfläche OK, um den Makro-Editor zu verlassen und das Makro zu speichern.

 Funktionen

Im Menü "Funktionen" können Sie nachfolgende Befehle ausführen.

Feld einfügen
 
Funktion
Funktion einfügen
Starten
Makro starten
Kompilieren
Makro kompilieren
Makro-Text löschen
 

 Erstellen eines Makros

Für unser Beispiel geben Sie dem Makro den Namen "Hallo Welt!" Um die Meldung "Hallo Welt!" anzeigen zu können, setzen Sie den Cursor an die Stelle des Code-Fensters, an der der gewünschte Befehl stehen soll und wählen Sie anschließend den Befehl "ShowMessage" aus der Rubrik "Funktionen" in der Makro-Toolbar aus. Mittels Doppelklick auf den Befehl fügen Sie diesen in das Code-Fenster ein. Ändern Sie nun im Code-Fenster den Begriff "Text" zwischen den Anführungszeichen in "Hallo Welt!" Sie können eine Makrofunktion auch einfügen, indem Sie die Taste F4 drücken oder den Befehl "Funktion" aus dem Menü "Funktionen" wählen. Starten Sie das nachfolgende Beispiel, indem Sie auf die Schaltfläche "Start" klicken oder die Taste F9 drücken. Es erscheint die nachfolgende Makro-Meldung "Hallo Welt!"
Um syntaktische Fehler vor der Ausführung zu vermeiden, empfiehlt es sich, das Makro zu compilieren (Strg + F9). Klicken Sie auf die Schaltfläche OK, um den Makro-Editor zu verlassen und das Makro zu speichern.

Beispiel 
Beispiel.png
//==============================================
// Erstelldatum : 25.09.2005 10:28:20
// Ersteller : LOI401
// Beschreibung : Fenstermakro im Fenster Kundenerfassung (Kunden)
//==============================================
BMD_SHOWMESSAGE('Hallo Welt!') //Zeigt die Makro-Meldung 'Hallo Welt!' an.

 Kommentare hinzufügen

Es ist oft zweckmäßig, einem Makro Kommentare hinzuzufügen, die den Zweck des Makros oder den Zweck von einzelnen Anweisungen erläutern. Die Zeichen "//" geben an, dass es sich beim nachfolgenden Text entweder um eine Kommentarzeile oder um einen Kommentar zu einer Anweisung handelt.

 Ausführen des Fenstermakros

Das Fenstermakro "Hallo Welt!" können Sie jetzt auch ausführen, indem Sie den Befehl "Hallo Welt!" im Untermenü "Makro" des Menüs "Extras" auswählen. Sie können dem Makro auch eine Tastenkombination zuweisen, um das Makro direkt aufrufen zu können.

 Zuweisen einer Tastenkombination

Wenn Sie dem Makro eine Tastenkombination zuweisen möchten, wählen Sie den Befehl "Makro-Verwaltung" aus dem Untermenü "Administration" des Menüs "Tools" aus. Markieren Sie das gewünschte Makro und wählen Sie anschließend den Befehl "Bearbeiten" oder drücken Sie die Taste F6. Wählen Sie im Feld "Kürzel für Schnellstart" die gewünschte Tastenkombination aus. Zur Verfügung stehen die Tastenkombinationen Strg + Funktionstasten 1 bis 8 und Alt + Funktionstasten 1 bis 8. Wenn das Makro aus Sicherheitsgründen nur von Ihnen verwendet werden soll, können Sie das gewünschte Makro auf "Privat" setzen, indem Sie das Kontrollkästchen "Ist Privat"markieren.

 Der Makrokontext

BMD NTCS verwendet Makros in unterschiedlichen Teilbereichen.
 

 Fenstermakro

Makros, die entworfen werden, um häufig ausgeführte Vorgänge im jeweiligen Fenster mittels eines Menübefehls oder einer Tastenkombination schneller ausführen zu können.

 Aktionsmakro

Aktionsmakros sind Makros, die automatisch beim Ausführen von Funktionen im jeweiligen Fenster starten.
Wenn eine BMD NTCS Funktion gestartet wird, dann können vorher oder nachher noch eigene Aktionen (Makros) ausgeführt werden.
Bei Neuanlage und Bearbeiten wird eine Sonderbehandlung durchgeführt. Ein Aktionsmakro kann
  • vor Beginn (die Aktion kann z. B. abgebrochen werden),
  • nach Beginn (hier können z. B. Werte umgesetzt werden),
  • vor Ende (Prüfungen vor dem Speichern) und
  • nach Ende (zu Protokollzwecken) ausgeführt werden.

 Feldmakro

Feldmakros sind Makros, die Aktionen beim Bearbeiten von Datenfeldern starten. Auch hier wird wieder zwischen manuell startbaren Makros (F4-Taste, F8-Taste) und den automatisch startenden (Hineinspringen, Verlassen des Feldes) unterschieden.

 Standardbrief 

Auch im Standardbrief können Makros verwendet werden, die automatisch nach dem Öffnen der Druckvorschau gestartet werden. Diese Makros werden verwendet, wenn Formeln zu unübersichtlich für die Werteberechnung sind.
Das nachfolgende Makro prüft, ob das Feld "Standardanrede" den Text "Firma" beinhaltet und liefert dann im Ergebnis (Result) den Nachnamen. Andernfalls werden als Ergebnis der Titel, Vorname und Nachname verbunden, wobei die notwendigen Leerzeichen dazwischen berücksichtigt werden.
Das Makro kann sehr einfach um weitere Felder erweitert werden, wobei man auch Zeilenschaltungen durch "Result := Result + #13;" löst. Dadurch ist es möglich, den gesamten Adressblock durch ein Makro im gewünschten Format (mehrzeilig) zu definieren. Dies ermöglicht eine genau Leerzeilensteuerung.

 Bericht

Sie können Makros auch in einem Bilanzbericht verwenden.

 Ausdrucksstapel

Ausdrucke können im NTCS per Makro automatisiert ablaufen.

 Makro-Sprache 

In der Einleitung wurde gezeigt, wie ein Makro erstellt wird, und Sie haben untersucht, wie das Makrosystem aufgebaut und wie Makros ausgeführt und bearbeitet werden. Die BMD NTCS Makrosprache besteht aus einem aus Pascal stammenden Vokabular, der Syntax und einer Reihe von Programmierstrukturen sowie einer Gruppe von Befehlen und Funktionen, die für BMD NTCS spezifisch sind. Die Flexibilität und Funktionsvielfalt der BMD NTCS Makrosprache ist das Ergebnis der Kombination der Stärke von BMD NTCS mit den Programmiermöglichkeiten von Pascal.
Die BMD NTCS Makrospache hat wie andere Programmiersprachen die folgenden Merkmale mit natürlichen Sprachen gemeinsam:
  • Eine Sammlung von Token von denen jedes eine spezifische Bedeutung hat - gleichbedeutend mit einem Vokabular. In der BMD NTCS Makrosprache werden diese Token "Schlüsselwörter", "Variablen" und "Operatoren" genannt.

  • Eine genau definierte Syntax. Die Token müssen in einer spezifischen Reihenfolge angeordnet sein, vergleichbar mit der strikten Satzstruktur Subjekt-Prädikat-Objekt im Englischen. In der BMD NTCS Makrosprache wird eine Anordnung von Token in größeren Einheiten eine Anweisung genannt.

  • Strukturen, in denen größere Bedeutungseinheiten - beispielsweise Absätze - aus kleineren Einheiten - zum Beispiel Sätzen - aufgebaut werden. In der BMD NTCS Makrosprache können Sie Routinen und Unterroutinen aus einer Folge von Anweisungen erstellen.

  • Einen Kontext, in dem sich die Sprache auf ihre "Umgebung" bezieht. In der BMD NTCS Makrosprache werden die Routinen und Unterroutinen eines Makros im Kontext zur BMD NTCS Umgebung und der Benutzereingabe ausgeführt.

  • Die Syntax und Grammatik der BMD NTCS Makrosprache basieren auf der vorhandenen Sprache Pascal. Die Syntax und Struktur von Pascal sind der des Englischen, und bis zu einem gewissem Grad auch der des Deutschen, ähnlich. Sie können beispielsweise Folgendes sagen:

    Beispiel
     
    Beispiel.png
    Wenn Marlene Zeit hat, lade ich sie ins Kino ein; sonst lade ich Julia ein.
    In Pascal könnten Sie diesen Satz folgendermaßen ausdrücken:
    if MarleneZeit = true then begin
    EinladungKino("Marlene")
    end
    else begin
    EinladungKino("Julia")
    end;

    Die Folge if ... then ... else wird Kontrollstruktur genannt, da sie die gesamte Struktur der Routine kontrolliert. Der Text MarleneZeit ist eine Variable, die Sie sich als einen Platzhalter zur Aufnahme verschiedener Datentypen vorstellen können. In diesem Fall kann MarleneZeit entweder den Wert TRUE oder FALSE enthalten. Der Text MarleneZeit = true ist ein Ausdruck, dessen Auswertung in diesem Fall entweder den Wert TRUE oder FALSE ergeben kann. Das Element EinladungKino ist eine Unterroutine (hier nicht aufgeführt), die Aufgaben spezifiziert, die außerhalb dieser Routine auszuführen sind.

 Kontrollstukturen

 

 if ... then begin

 
if <Bedingung> then begin
  
   // ...
end;
1.2 if ... then begin ... else ...
if <Bedingung> then begin
// ...
end
else begin
// ...
end;
1.4 while ... do begin
while <Bedingung> do begin
// ...
end;
1.5 for I:= 0 to ... do begin
for I := 0 to 10 do begin
// ...
end;

 Variablen

Eine Variable ist in der BMD NTCS Makrosprache ein Token, das einen Wert enthält. Der Wert einer Variablen kann sich ändern und kann durch Operatoren in einer Makro-Routine geändert werden. Es gibt zwei Typen von Variablen: numerische Variablen (siehe Zuweisung Zahl) und Zeichenfolgevariablen (siehe Zuweisung Text).

 Zeichenfolgevariablen

Der eigentliche Text, der einer Zeichenfolgevariablen zugewiesen ist, wird Zeichenfolgekonstante genannt und steht immer zwischen Anführungszeichen. Beispielsweise weist die Anweisung
MyVar := 'Hallo Welt!'';
der Variablen MyVar die Zeichenfolgekonstante Hallo Welt! zu.

 
Eine der einfachsten mit Zeichenfolgekonstanten bzw. Zeichenfolgevariablen durchzuführenden Operationen ist das Verknüpfen einzelner Zeichenfolgekonstanten bzw. -variablen. In den nachfolgenden Makroanweisungen werden zwei Zeichenfolgevariablen und eine Zeichenfolgekonstante zu einer längeren Textzeichenfolge verknüpft, die dann als Nachricht am Bildschirm angezeigt wird.
Text1:='Marlene';
Text2:='Julia';
Kinder:=Text1 + ' und ' + Text2;
BMD_SHOWMESSAGE(Kinder);
 

 Numerische Variablen

 Zuweisung Zahl

Im Gegensatz zu Zeichenfolgevariablen stehen die numerischen Konstanten nicht zwischen Anführungszeichen.
MyVar := 100;

 Standardfunktionen

 Textfunktionen

Upper
Der Befehl BMD_UPPER('Text') wandelt einen Text in Großbuchstaben um.
BMD_UPPER('Text') liefert 'TEXT' als Ergebnis.
Lower
Der Befehl BMD_LOWER('Text') wandelt einen Text in Kleinbuchstaben um.
BMD_LOWER('Text') liefert 'text' als Ergebnis.
Copy
Der Befehl BMD_COPY('Text',<Ab Position>,<Länge>) kopiert einen Teil aus einem Text.
BMD_COPY('Text',2,2) liefert das Ergebnis 'xt'.
Trim
BMD_TRIM('Text')
Leerzeichen am Begin und am Ende des Textes werden entfernt.
RTrim
BMD_RTRIM('Text')
Leerzeichen am Ende des Textes werden entfernt.

LTrim
BMDLTRIM('Text')
Leerzeichen am Anfang des Textes werden entfernt.
Concat
Der Befehl BMD_CONCAT('Text1','Text2') verkettet Texte.
BMD_CONCAT('Text1','Text2') liefert 'Text1Text2' als Ergebnis.
Pos
Die Funktion BMD_POS('Text','Teilstring') liefert die Position einer spezifizierten Such-Zeichenfolge in einer Ziel-Zeichenfolge.
BMD_POS('Text','e') liefert 2 als Ergebnis.
Len
Die Funktion BMD_LEN('Text') liefert die Anzahl der Zeichen einer Zeichenfolge (Länge).
BMD_LEN('Text') liefert 4 als Ergebnis.

TextToNumDef
Die Funktion BMD_TEXTTONUMDEF('Text') wandelt einen Text in eine Zahl um. Bei Fehler wird 0 zurückgegeben.
BMD_TEXTTONUMDEF('1234') liefert 1234 als Ergebnis.
Leerzeichen am Anfang und Ende werden ignoriert.
Das Dezimaltrennzeichen ist standardmäßig ein Beistrich; Tausendertrennzeichen und Währungssymbole sind nicht zulässig.

Beispiel
Beispiel.png
BMD_TEXTTONUMDEF('1') liefert 1 zurück.
BMD_TEXTTONUMDEF('1,5') liefert 1,5 zurück.

BMD_TEXTTONUMDEF('abc') liefert 0 zurück.
BMD_TEXTTONUMDEF('1.000,00') liefert 0 zurück.
BMD_TEXTTONUMDEF('1.5') liefert 0 zurück.

EAN
BMD_EAN(<Länge>,'Text')
Liefert die EAN inkl. Prüfziffer.
Die Länge ist die Länge der Zahl inkl. Prüfziffer.
Ext_Field
EXT_FIELD('Datenquelle','Externes Feld','Bedingung1','Wert1','Bedingung2','Wert2','Bedingung3','Wert3')
Liefert einen Wert aus einer externen Datenbank, die über ODBC angesprochen wird, retour.

Beispiel
Beispiel.png
Bezeichnung:= BMD_EXT_FIELD('"991714856355711"','"KS_BEZEICH"','"KS_VERDICHT"','"0"','"KS_KENNZ"','"1"','"KS_KONUMMER"',I);
Stringreplace
Die Funktion BMD_STRINGREPLACE('Text','OldPattern','NewPattern', <AllOccurrences (opt)>, <CaseSensitive (opt)>) ersetzt in einer Zeichenfolge eine Such-Zeichenfolge (OldPattern) durch eine neue (NewPattern).
Standardmäßig ist die Funktion case-sensitive und es werden alle Vorkommen ersetzt.
BMD_STRINGREPLACE('Text','e','x') liefert 'Txxt' als Ergebnis.

Left
 
Right
 
Asc
 
Chr$
 

 Mathematische Funktionen

FormatNum
Mit der Funktion BMD_FORMATNUM('Format',<Wert>) wird eine Zahl formatiert.

Formatoptionen:
0 Ziffer wird immer angedruckt.
# Ziffer wird angedruckt, wenn sie vorhanden ist.
.  Kennzeichnet das Tausendertrennzeichen.
,  Kennzeichnet das Komma.

BMD_FORMATNUM('#.##0,00', 1234) liefert '1.234,00' als Ergebnis.
Min
BMD_MIN(<Zahl>,<Zahl>)
Das Minimum von zwei Zahlen wird berechnet.
BMD_MIN(1,2) liefert 1 zurück.
BMD_MIN(1.5,2) liefert 1,5 zurück.
Max
BMD_MAX(<Zahl>,<Zahl>)
Das Maximum von zwei Zahlen wird berechnet.
BMD_MAX(1,2) liefert 2 zurück.
Round
BMD_ROUND(<Zahl>,<Stellen>)
Eine Zahl wird auf X-Stellen gerundet.
BMD_ROUND(3456.789, 2) liefert 3456.79.
BMD_ROUND(3456.789, -2) liefert 3500.
BMD_ROUND(3456.789,0) liefert 3457.
RoundX
BMD_ROUNDX(<Zahl>,<Basis>,<Rundungsart (opt)>)
Eine Zahl wird aufgrund der Basis gerundet.
Mit der Rundungsart kann eingestellt werden, ob kaufmännisch gerundet, ab- oder aufgerundet werden soll.

Parameter:
  • Basis: Die Basis gibt an, auf wie viele Nachkommastellen und auf welche Zahl gerundet werden soll. (0.01 -> Zwei Nachkommastellen werden angegeben; 0.05 -> Zwei Nachkommastellen werden angegeben, aber die letzte kann nur 0 bzw. 5 sein. (0.00 oder 0.05))
    Rundungsart: 1 = default (kaufmännisch), 2 = abrunden, 3 = aufrunden

Beispiele
Beispiel.png
BMD_RoundX(123.456, 0.01) liefert 123.46.
BMD_RoundX(123.456, 0.5) liefert 123.5.
BMD_RoundX(123.231, 0.5) liefert 123.
BMD_RoundX(123.456, 10) liefert 120.
BMD_RoundX(123.456, 0.01, 2) liefert 123.45.
BMD_RoundX(123.454, 0.01, 3) liefert 123.46.


Abs
BMD_ABS(<Zahl>)
Der Absolutwert einer Zahl wird berechnet.
BMD_ABS(1) liefert 1.
BMD_ABS(-1) liefert 1.
Trunc
BMD_TRUNC(<Zahl>)
Trunc konvertiert eine Gleitkommazahl in einen Integer-Wert. Die Nachkommastellen werden abgeschnitten.
BMD_TRUNC(1.5) liefert 1.
BMD_TRUNC(1.9) liefert 1.
Power
BMD_POWER(<Base>,<Exp>)
Power errechnet aus Base und einem beliebigen Wert die Potenz.
BMD_POWER(3,2) liefert 9.
BMD_POWER(2,3) liefert 8.
Sqrt
BMD_SQRT(<Zahl>)
Die Quadratwurzel wird berechnet.
BMD_SQRT(9) liefert 3.
Modulo
BMD_MODULO(<Zahl>,<Zahl>)
Der Operator "Modulo" liefert den Rest, der sich bei der Division seiner Operanden ergibt.
BMD_MODULO(7,5) liefert 2.
BMD_MODULO(5,2) liefert 1.

 Datum & Zeit

Time
Die Funktion BMD_TIME() liefert die aktuelle Zeit.

Beispiel
Beispiel.png
BMD_TIME() liefert 06:25:25 (wenn Sie ins Büro kommen).
BMD_TIME() liefert 18:55:37 (wenn Sie das Büro verlassen).
Date
Die Funktion BMD_DATE() liefert das aktuelle Datum.
 
Beispiel
Beispiel.png
BMD_DATE() liefert 24.12.2013 (wenn Sie die Funktion am Heiligabend aufrufen).
BMD_DATE() liefert 01.01.2014 (wenn Sie die Funktion am Neujahrstag aufrufen).
DayOfWeek
Die Funktion DAYOFWEEK('Datum') gibt den Wochentag des angegebenen Datums zurück, z. B. "Sonntag".
 
Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
 
Beispiel
Beispiel.png
BMD_DAYOFWEEK('24.12.2013') liefert 0 als Wochentag zurück.
BMD_DAYOFWEEK(BMD_DATE()) liefert 0 als Wochentag des aktuellen Datums zurück (wenn Sie die Funktion am 26.10.2013 aufrufen).
WeekOfYear
Die Funktion WEEKOFYEAR('Datum') gibt die Kalenderwoche des angegebenen Datums zurück.
 
Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.

Beispiel
Beispiel.png
BMD_WEEKOFYEAR('24.12.2005') liefert 51 als Kalenderwoche zurück.
BMD_WEEKOFYEAR('24.12.2004') liefert 52 als Kalenderwoche zurück.
BMD_WEEKOFYEAR(BMD_DATE()) liefert 43 als Kalenderwoche des aktuellen Datums zurück (wenn Sie die Funktion am 26.10.2005 aufrufen).
Day
Die Funktion BMD_DAY('Datum') liefert den Tag des angegebenen Datums zurück.

Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.

Beispiel
Beispiel.png
BMD_DAY('24.12.2005') liefert 24 als Tag zurück.
BMD_DAY(BMD_DATE()) liefert 26 als Tag zurück (wenn Sie die Funktion am 26. eines Monats aufrufen).


Month
Die Funktion BMD_MONTH('Datum') liefert den Monat des angegebenen Datums zurück.

Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
 
Beispiel
Beispiel.png
BMD_MONTH('24.12.2005') liefert 12 als Monat zurück.
BMD_MONTH(BMD_DATE()) liefert 10 als Monat zurück (wenn Sie die Funktion im Oktober aufrufen).
Year
Die Funktion BMD_YEAR('Datum') liefert das Jahr des angegebenen Datums zurück.

Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
 
Beispiel
Beispiel.png
BMD_YEAR('24.12.2005') liefert 2005 als Jahr zurück.
BMD_YEAR(BMD_DATE()) liefert 2005 als Jahr zurück (wenn Sie die Funktion im Jahr 2005 aufrufen).
DateDiff
Die Funktion BMD_DATEDIFF('Datum1','Datum2') liefert die Anzahl der Tage zwischen zwei Daten zurück.
 
Parameter:
  • Datum1: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
  • Datum2: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
Beispiel
Beispiel.png
BMD_DATEDIFF('24.12.2013','24.12.2012') liefert 365 als Differenz zurück.
BMD_DATEDIFF('24.12.2012','24.12.2013') liefert -365 als Differenz zurück.
BMD_DATEDIFF(BMD_DATE(),'27.01.1756') liefert 91218 als Anzahl der Tage zwischen Mozarts Geburtstag und dem aktuellen Datum zurück (wenn Sie die Funktion am 26.10.2005 aufrufen).
DateSum
Die Funktion BMD_DATESUM('Datum', <Zahl>) addiert Tage zum angegebenen Datum.

Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
  • Zahl: ganze Zahl
Beispiel
Beispiel.png
BMD_DATESUM('24.12.2004',306) liefert den 26.10.2005.
BMD_DATESUM(BMD_DATE(),59) liefert den 24.12.2005 (wenn Sie die Funktion am 26.10.2005 aufrufen).
MonthDiff
Die Funktion BMD_MONTHDIFF('Datum1','Datum2') liefert den Absolutwert der Monate zwischen zwei Daten zurück. Tage bleiben bei der Berechnung unberücksichtigt (keine Rundung).
 
Parameter:
  • Datum1: Geben Sie das Datum in der Form 'TT.MM.JJJJ' an oder verwenden Sie eine Datumsfunktion.
  • Datum2: Geben Sie das Datum in der Form 'TT.MM.JJJJ' an oder verwenden Sie eine Datumsfunktion.
Beispiel
Beispiel.png
BMD_MONTHDIFF('01.11.2005','31.12.2004') liefert 11 als Differenz zurück.
BMD_MONTHDIFF('31.12.2004','01.11.2005') liefert 11 als Differenz zurück.
BMD_MONTHDIFF(BMD_DATE(),'31.05.1809') liefert 2357 als Anzahl der Monate zwischen Haydns Todestag und dem aktuellen Datum zurück (wenn Sie die Funktion am 26.10.2005 aufrufen).

LastDayOfMonth
Die Funktion BMD_LASTDAY(<Monat>, <Jahr>) liefert den letzten Tag zum angegebenen Monat und Jahr.

Parameter:
  • Monat: Geben Sie eine Zahl zwischen 1 und 12 ein oder verwenden Sie die Funktion BMD_MONTH('Datum').
  • Jahr: Geben Sie eine 4-stellige Zahl für das Jahr ein oder verwenden Sie die Funktion BMD_YEAR('Datum').
Beispiel
Beispiel.png
BMD_LASTDAY(2,1900) liefert 0 als letzten Tag im Februar 1900 zurück.
BMD_LASTDAY(2,2000) liefert 0 als letzten Tag im Februar 2000 zurück.
BMD_LASTDAY(BMD_MONTH(BMD_DATE()),BMD_YEAR(BMD_DATE())) liefert 0 als letzten Tag im aktuellen Monat zurück (wenn Sie die Funktion im Oktober aufrufen).
Ist Schaltjahr?
Die Funktion BMD_ISLEAPYEAR(<Jahr>) liefert für Schaltjahre 1 zurück, sonst 0.

Parameter:
  • Jahr: Geben Sie eine 4-stellige Zahl für das Jahr ein oder verwenden Sie die Funktion BMD_YEAR('Datum').
Beispiel
Beispiel.png
BMD_ISLEAPYEAR(1900) liefert 0 zurück (ist kein Schaltjahr).
BMD_ISLEAPYEAR(2000) liefert 1 zurück (ist Schaltjahr).
BMD_ISLEAPYEAR(BMD_YEAR(BMD_DATE())) liefert 0 zurück (wenn Sie die Funktion im Jahr 2005 aufrufen).
DateToISOFormat
Die Funktion BMD_DATETOISOFORMAT('Datum') bzw. BMD_DATETOISOFORMAT('Datum Zeit') liefert Datum und Zeit im ISO-Format (ISO 8601) zurück. Das ISO-Format wird z. B. in den Internetkopfzeilen einer E-Mail verwendet. Neben der Ortszeit steht die Differenz zur UTC. UTC steht für Universal Time Coordonné, die Koordinierte Weltzeit (engl.: Universal Time Coordinated).

Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
  • Zeit: Geben Sie die Zeit in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Zeitfunktion. Wenn Sie die Zeit nicht angeben, wird 0 Uhr verwendet.
Beispiel
Beispiel.png
BMD_DATETOISOFORMAT('24.12.2005') liefert während der MEZ 2005-12-24T00:00:00.000+01:00 bzw. während der MESZ (oder OEZ) 2005-12-24T00:00:00.000+02:00 zurück.
BMD_DATETOISOFORMAT('24.12.2005 12:0') liefert während der MEZ 2005-12-24T12:00:00.000+01:00 bzw. während der MESZ (oder OEZ) 2005-12-24T12:00:00.000+02:00 zurück.
BMD_DATETOISOFORMAT(BMD_DATE()) liefert 2005-10-26T00:00:00.000+02:00 zurück (wenn Sie die Funktion am 26.10.2005 aufrufen).
BMD_DATETOISOFORMAT(BMD_DATE()+BMD_TIME()) liefert 2005-10-26T12:00:00.000+02:00 zurück (wenn Sie die Funktion am 26.10.2005 um 12 Uhr aufrufen).
FormatDate
Die Funktion BMD_FORMATDATE('Datum','Eingabeformat','Ausgabeformat') liefert Datum/Zeit formatiert zurück. Bei einem Fehler wird das aktuelle Datum zurückgegeben.

Parameter:
  • Datum: Geben Sie das Datum in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Datumsfunktion.
  • Zeit: Geben Sie die Zeit in einer für Ihr Betriebssystem erlaubten Form an oder verwenden Sie eine Zeitfunktion.
  • Ein- / Ausgabeformat:
  • D: Tag (D ohne führende 0, DD Tag mit führender 0, DDD Tag in abgekürzter Form (z. B. Di), DDDD Tag in ausgeschriebener Form (z. B. Dienstag))
  • M: Monat (M Monat ohne führende 0, MM Monat mit führender 0, MMM Monat in abgekürzter Form (z. B. Dez), MMMM Monat in ausgeschriebener Form)
  • Y: Jahr (Y bzw. YY zweistellige Jahreszahl (z. B. 19), YYY bzw. YYYY vierstellige Jahreszahl)
  • H: Stunde (H ohne führende 0, HH mit führender 0)
  • N: Minute (N ohne führende 0, NN mit führender 0)
  • S: Sekunde (S ohne führende 0, SS mit führender 0)
Ausnahmen:
  1. Für das Eingabeformat muss das Jahr immer in der Form YYYY angegeben werden.
  2. Das Eingabeformat muss Trennzeichen zwischen den Datumsanteilen enthalten. Zwischen Datum und Uhrzeit reicht dabei ein Leerzeichen, sonst ein Punkt, Beistrich oder Doppelpunkt. Folgende Eingabeformate sind daher nicht zulässig: "YYYYMMDD", "DDMMYYYY".
Beispiel
Beispiel.png
BMD_FORMATDATE('1.11.5','M.D.Y','DDD DD.MM.YYYY') liefert Di 11.01.2005 zurück.
BMD_FORMATDATE('1.11.5','','DDD DD.MM.YYYY') liefert Di 01.11.2005 zurück.
BMD_FORMATDATE('1.11.5','D.M.Y','DDD DD.MM.YYYY') liefert Di 01.11.2005 zurück.
BMD_FORMATDATE('1.1.2005','','DDDD, D. MMMM YYYY') liefert Samstag, 1. Januar 2005 zurück.
BMD_FORMATDATE(BMD_DATE(),'','DDD DD.MM.YYYY') liefert Mi 26.10.2005 zurück (wenn Sie die Funktion am 26.10.2005 aufrufen).
BMD_FORMATDATE(BMD_DATE()+BMD_TIME(),'','DDDD DD.MM.YYYY HH:NN:SS') liefert Mittwoch 26.10.2005 12:00:00 zurück (wenn Sie die Funktion am 26.10.2005 um 12 Uhr aufrufen).

Achtung! 
Achtung.png
Nicht erlaubte Eingabeformate:

BMD_FORMATDATE('1.11.23','D.Y.M','DDD DD.MM.YYYY') liefert Di 01.11.2023 zurück.
BMD_FORMATDATE('01012023','DDMMYYYY','DDDD DD.MM.YYYY HH:NN:SS') liefert Mittwoch 26.10.2023 12:00:00 zurück (wenn Sie die Funktion am 26.10.2023 um 12 Uhr aufrufen).
BMD_FORMATDATE('01.01.2023','DDMMYYYY','DDDD DD.MM.YYYY HH:NN:SS') liefert Samstag 01.01.2023 00:00:00 zurück.
 


 
3.4 Externe Werte
  • 3.5 Tools Funktionen

    3.5.1 UserName

    3.5.2 ComputerName

    3.5.3 GetNav_CompanyNo

    3.5.4 GetNav_CustomerNo

    3.5.5 GetNav_ArtCompanyNo

    3.5.6 GetNav_ArticleNo

    3.6 Zins- und Sparfunktionen

    3.6.1 Rate

    Die Funktion BMD_SAVEINTEREST_BEST_SPARZIEL(<Endwert>, <Anfangskapital>, <Gesamtanzahl Raten>, <Jahreszinssatz [%]>, <Kapitalertragsteuer [%]>, <Zahlungen erfolgen>, <Zahlungsweise>) berechnet die Rate bei gegebenem Endwert.

    Parameter

    Zahlungen erfolgen: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Zahlungsweise: 0 … vorschüssig, 1 … nachschüssig

    Beispiele

    BMD_SAVEINTEREST_BEST_SPARZIEL(19993,811,17,5,25,1,0) liefert für eine jährliche, vorschüssige Zahlungsweise 767,785223237073 als Rate.

    BMD_SAVEINTEREST_BEST_SPARZIEL(19993,811,17,5,25,2,1) liefert für eine ½-jährliche, nachschüssige Zahlungsweise 954,754916603932 als Rate.

    BMD_SAVEINTEREST_BEST_SPARZIEL(19993,811,17,5,25,4,0) liefert für eine ¼-jährliche, vorschüssige Zahlungsweise 1030,06264321424 als Rate.

    BMD_SAVEINTEREST_BEST_SPARZIEL(19993,811,17,5,25,12,1) liefert für eine monatliche, nachschüssige Zahlungsweise 1098,25770692474 als Rate.

    3.6.2 Endwert bei Raten

    Die Funktion BMD_SAVEINTEREST_EW_REGEL_ZAHLUNGEN(<Anfangskapital>, <Rate>, <Gesamtanzahl Raten>, <Jahreszinssatz [%]>, <Kapitalertragsteuer [%]>, <Zahlungen erfolgen>, <Zahlungsweise>, <Anzeige von>) berechnet die Summe der Raten, die Zinsen, die Kapitalertragsteuer und den Endwert.

    Parameter

    Zahlungen erfolgen: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Zahlungsweise: 0 … vorschüssig, 1 … nachschüssig

    Anzeige von: 1 … Summe der Raten, 2 … Zinsen, 3 … Kapitalertragsteuer, 4 … Endwert

    Beispiele

    BMD_SAVEINTEREST_EW_REGEL_ZAHLUNGEN(16381,19997,19,5,25,1,0,1) liefert 379943 als Summe der Raten.

    BMD_SAVEINTEREST_EW_REGEL_ZAHLUNGEN(16381,19997,19,5,25,2,0,2) liefert für eine ½-jährliche, vorschüssige Ratenzahlung 114677,616302214 als Zinsen.

    BMD_SAVEINTEREST_EW_REGEL_ZAHLUNGEN(16381,19997,19,5,25,4,1,3) liefert für eine ¼-jährliche, nachschüssige Ratenzahlung 12170,0535092802 als Kapitalertragsteuer.

    BMD_SAVEINTEREST_EW_REGEL_ZAHLUNGEN(16381,19997,19,5,25,12,1,4) liefert für eine monatliche, nachschüssige Ratenzahlung 408042,798266323 als Endwert.

    3.6.3 Barwert bei Raten

    Die Funktion BMD_SAVEINTEREST_BW_REGEL_ZAHLUNGEN(<Rate>, <Gesamtanzahl Raten>, <Jahreszinssatz [%]>, <Kapitalertragsteuer [%]>, <Zahlungen erfolgen>, <Zahlungsweise>) berechnet den Barwert.

    Parameter

    Zahlungen erfolgen: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Zahlungsweise: 0 … vorschüssig, 1 … nachschüssig

    Beispiele

    BMD_SAVEINTEREST_BW_REGEL_ZAHLUNGEN(19031,23,5,25,1,0) liefert für eine jährliche, vorschüssige Zahlungsweise 300740,925834167 als Barwert.

    BMD_SAVEINTEREST_BW_REGEL_ZAHLUNGEN(19031,23,5,25,2,1) liefert für eine ½- jährliche, nachschüssige Zahlungsweise 353614,714358877 als Barwert.

    BMD_SAVEINTEREST_BW_REGEL_ZAHLUNGEN(19031,23,5,25,4,0) liefert für eine ¼- jährliche, vorschüssige Zahlungsweise 396348,233598446 als Barwert.

    BMD_SAVEINTEREST_BW_REGEL_ZAHLUNGEN(19031,23,5,25,12,1) liefert für eine monatliche, nachschüssige Zahlungsweise 422026,807020848 als Barwert.

    3.6.4 Anfangskapital (Zinseszinsrechnung)

    Die Funktion BMD_SAVEINTEREST_ANFANGSWERT(<Endwert>, <Anzahl der Zinsperioden>, <Jahreszinssatz [%]>, <Kapitalertragsteuer [%]>, <Verzinsung>, <Anzeige von>) berechnet die Zinsen, die Kapitalertragsteuer und das Anfangskapital.

    Parameter

    Verzinsung: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Anzeige von: 1 … Zinsen, 2 … Kapitalertragsteuer, 3 … Anfangskapital

    Beispiele

    BMD_SAVEINTEREST_ANFANGSWERT(17903,29,5,25,1,1) liefert für eine jährliche Verzinsung 15663,1931106266 als Zinsen.

    BMD_SAVEINTEREST_ANFANGSWERT(17903,29,5,25,2,2) liefert für eine ½-jährliche Verzinsung 2485,54832909509 als Kapitalertragsteuer.

    BMD_SAVEINTEREST_ANFANGSWERT(17903,29,5,25,4,3) liefert für eine ¼-jährliche Verzinsung 13658,4694416212 als Anfangskapital.

    BMD_SAVEINTEREST_ANFANGSWERT(17903,29,5,25,12,3) liefert für eine monatliche Verzinsung 16354,1976896271 als Anfangskapital.

    3.6.5 Endwert

    Die Funktion BMD_SAVEINTEREST_ENDWERT(<Anfangskapital>, <Anzahl der Zinsperioden>, <Jahreszinssatz [%]>, <Kapitalertragsteuer [%]>, <Verzinsung>, <Anzeige von>) berechnet die Zinsen, die Kapitalertragsteuer und den Endwert.

    Parameter

    Verzinsung: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Anzeige von: 1 … Zinsen, 2 … Kapitalertragsteuer, 3 … Endwert

    Beispiele

    BMD_SAVEINTEREST_ENDWERT (19213,31,5,25,1,1) liefert für eine jährliche Verzinsung 54580,9710667647 als Zinsen.

    BMD_SAVEINTEREST_ENDWERT (19213,31,5,25,2,2) liefert für eine ½-jährliche Verzinsung 4986,88568836676 als Kapitalertragsteuer.

    BMD_SAVEINTEREST_ENDWERT (19213,31,5,25,4,3) liefert für eine ¼-jährliche Verzinsung 25658,0736313256 als Endwert.

    BMD_SAVEINTEREST_ENDWERT (19213,31,5,25,12,3) liefert für eine monatliche Verzinsung 21164,2001199255 als Endwert.

    3.6.6 Verdoppelung des Anfangskapitals

    Die Funktion BMD_SAVEINTEREST_JAHRE_VERDOPPLUNG(<Jahreszinssatz [%]>, <Kapitalertragsteuer [%]>, <Verzinsung>) berechnet bei gegebenem Jahreszinssatz die Laufzeit für eine Verdoppelung des Anfangskapitals.

    Parameter

    Verzinsung: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Beispiele

    BMD_SAVEINTEREST_JAHRE_VERDOPPLUNG(5,25,1) liefert für eine jährliche Verzinsung eine Laufzeit von 18,8283719947694 Jahren.

    BMD_SAVEINTEREST_JAHRE_VERDOPPLUNG(5,25,2) liefert für eine ½-jährliche Verzinsung eine Laufzeit von 18,6566751061039 Jahren.

    BMD_SAVEINTEREST_JAHRE_VERDOPPLUNG(5,25,4) liefert für eine ¼-jährliche Verzinsung eine Laufzeit von 18,5704334630455 Jahren.

    BMD_SAVEINTEREST_JAHRE_VERDOPPLUNG(5,25,12) liefert für eine monatliche Verzinsung eine Laufzeit von 18,5127909286555 Jahren.

    3.6.7 Zinsen

    Die Funktion BMD_SAVEINTEREST_ZINSEN_NACH_TAGEN(<Anfangskapital>, <Jahreszinssatz [%]>, <Anfangsdatum>, <Enddatum>, <Oder Tage>, <Tage>, <Jahr>, <Monat>) berechnet Zinsen (einfache Zinsrechnung). Im Gegensatz zum BMD-Formeleditor steht hier nicht die volle Funktionalität zur Verfügung. Als Makrofunktion ist verwendbar: BMD_SAVEINTEREST_ZINSEN_NACH_TAGEN(<Anfangskapital>, <Jahreszinssatz [%]>, '', '', 1, <Tage>, <Jahr>, 1).

    Parameter

    Jahr: 360 … 360 Tage, 365 … 365 Tage

    Beispiele

    BMD_SAVEINTEREST_ZINSEN_NACH_TAGEN(18913,5,'','',1,180,360,1) liefert 472,825 als Zinsen.

    Sie können die Tage zwischen 2 Daten mit der Funktion BMD_DATEDIFF('Datum1','Datum2') berechnen lassen. Das vorige Beispiel sieht dann so aus: BMD_SAVEINTEREST_ZINSEN_NACH_TAGEN(18913,5,'','',1,BMD_DATEDIFF('24.12.2005','27.06.2005'),360,1) liefert 472,825 als Zinsen.

    BMD_SAVEINTEREST_ZINSEN_NACH_TAGEN(18913,5,'','',1,180,365,1) liefert 466,347945205479 als Zinsen.

    3.6.8 Laufzeit

    Die Funktion BMD_SAVEINTEREST_ZEITRAUM(<Anfangskapital>, <Jahreszinssatz [%]>, <Zinsen>, <Jahr>) berechnet die Laufzeit in Tagen (einfache Zinsrechnung).

    Parameter

    Jahr: 360 … 360 Tage, 365 … 365 Tage

    Beispiele

    BMD_SAVEINTEREST_ZEITRAUM(19927,5,607,360) liefert eine Laufzeit von 219,320519897626 Tagen.

    BMD_SAVEINTEREST_ZEITRAUM(19927,5,607,365) liefert eine Laufzeit von 222,366638229538 Tagen.

    3.6.9 Jahreszinssatz (einfache Zinsrechnung)

    Die Funktion BMD_SAVEINTEREST_ZINSFUSS(<Anfangskapital>, <Zinsen>, <Anfangsdatum>, <Enddatum>, <Oder Tage>, <Tage>, <Jahr>, <Monat>) berechnet den Jahreszinssatz (einfache Zinsrechnung). Im Gegensatz zum BMD-Formeleditor steht hier nicht die volle Funktionalität zur Verfügung. Als Makrofunktion ist verwendbar: BMD_SAVEINTEREST_ZINSFUSS(<Anfangskapital>, <Zinsen>, '', '', 1, <Tage>, <Jahr>, 1).

    Parameter

    Jahr: 360 … 360 Tage, 365 … 365 Tage

    Beispiele

    BMD_SAVEINTEREST_ZINSFUSS(19991,613,'','',1,224,360,1) liefert 4,92811050687095 als Jahreszinssatz.

    Sie können die Tage zwischen 2 Daten mit der Funktion BMD_DATEDIFF('Datum1','Datum2') berechnen lassen. Das vorige Beispiel sieht dann so aus: BMD_SAVEINTEREST_ZINSFUSS(19991,613,'','',1,BMD_DATEDIFF('24.12.2005','14.05.2005'),360,1) liefert 4,92811050687095 als Jahreszinssatz.

    BMD_SAVEINTEREST_ZINSFUSS(19991,613,'','',1,224,365,1) liefert 4,99655648613305 als Jahreszinssatz.

    3.6.10 Anfangskapital (einfache Zinsrechnung)

    Die Funktion BMD_SAVEINTEREST_KAPITAL(<Jahreszinssatz [%]>, <Zinsen>, <Anfangsdatum>, <Enddatum>, <Oder Tage>, <Tage>, <Jahr>, <Monat>) berechnet das Anfangskapital (einfache Zinsrechnung). Im Gegensatz zum BMD-Formeleditor steht hier nicht die volle Funktionalität zur Verfügung. Als Makrofunktion ist verwendbar: BMD_SAVEINTEREST_KAPITAL(<Jahreszinssatz [%]>, <Zinsen>, '', '', 1, <Tage>, <Jahr>, 1).

    Parameter

    Jahr: 360 … 360 Tage, 365 … 365 Tage

    Beispiele

    BMD_SAVEINTEREST_KAPITAL(5,809,'','',1,365,360,1) liefert 15958,3561643836 als Anfangskapital.

    Sie können die Tage zwischen 2 Daten mit der Funktion BMD_DATEDIFF('Datum1','Datum2') berechnen lassen. Das vorige Beispiel sieht dann so aus: BMD_SAVEINTEREST_KAPITAL(5,809,'','',1,BMD_DATEDIFF('24.12.2005','24.12.2004'),360,1) liefert 15958,3561643836 als Anfangskapital.

    BMD_SAVEINTEREST_KAPITAL(5,809,'','',1,365,365,1) liefert 16180 als Anfangskapital.

    3.6.11 Jahreszinssatz (Zinseszinsrechnung)

    Die Funktion BMD_SAVEINTEREST_PROZ_GEWINN(<Anfangskapital>, <Endwert>, <Laufzeit [Monate]>, <Verzinsung>) berechnet den Jahreszinssatz (Zinseszinsrechnung) bei gegebenem Anfangskapital und Endwert.

    Parameter

    Verzinsung: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Beispiele

    BMD_SAVEINTEREST_PROZ_GEWINN(17183,19973,37,1) liefert für eine jährliche Verzinsung 5,00083429344893 als Jahreszinssatz.

    BMD_SAVEINTEREST_PROZ_GEWINN(17183,19973,37,2) liefert für eine ½-jährliche Verzinsung 4,93982950461231 als Jahreszinssatz.

    BMD_SAVEINTEREST_PROZ_GEWINN(17183,19973,37,4) liefert für eine ¼-jährliche Verzinsung 4,90969808549888 als Jahreszinssatz.

    BMD_SAVEINTEREST_PROZ_GEWINN(17183,19973,37,12) liefert für eine monatliche Verzinsung 4,88974633981893 als Jahreszinssatz.

    3.6.12 Prozentannuität

    Die Funktion BMD_SAVEINTEREST_RATE_EFFZINS_ANNUI(<Darlehen>, <Jahreszinssatz [%]>, <Tilgungssatz in der ersten Periode [%]>, <Zahlungen erfolgen>) berechnet die Rate eines Annuitätendarlehens in der ersten Periode bei gegebenem Jahrszinssatz und Tilgungssatz.

    Parameter

    Zahlungen erfolgen: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Beispiele

    BMD_SAVEINTEREST_RATE_EFFZINS_ANNUI(19267,5,2,1) liefert 1348,69 als jährliche Rate.

    BMD_SAVEINTEREST_RATE_EFFZINS_ANNUI(19267,5,2,2) liefert 674,345 als ½-jährliche Rate.

    BMD_SAVEINTEREST_RATE_EFFZINS_ANNUI(19267,5,2,4) liefert 337,1725 als ¼-jährliche Rate.

    BMD_SAVEINTEREST_RATE_EFFZINS_ANNUI(19267,5,2,12) liefert 112,390833333333 als monatliche Rate.

    3.6.13 Effektivzinssatz

    Die Funktion BMD_SAVEINTEREST_EFFZINS_AUS_NOMZINS(<Nominalzinssatz [%]>, <Verzinsung>) berechnet den Effektivzinssatz bei gegebenem Nominalzinssatz.

    Parameter

    Verzinsung: 1 … jährlich, 2 … ½-jährlich, 4 … ¼-jährlich, 12 … monatlich

    Beispiele

    BMD_SAVEINTEREST_EFFZINS_AUS_NOMZINS(5,1) liefert für eine jährliche Verzinsung 5 als Nominalzinssatz.

    BMD_SAVEINTEREST_EFFZINS_AUS_NOMZINS(5,2) liefert für eine ½-jährliche Verzinsung 5,06249999999999 als Nominalzinssatz.

    BMD_SAVEINTEREST_EFFZINS_AUS_NOMZINS(5,4) liefert für eine ¼-jährliche Verzinsung 5,09453369140624 als Nominalzinssatz.

    BMD_SAVEINTEREST_EFFZINS_AUS_NOMZINS(5,12) liefert für eine monatliche Verzinsung 5,11618978817334 als Nominalzinssatz.

    4. Makro-Funktionen

    4.1 Abfragen

    4.1.1 AskValueStr

    BMDASKVALUESTR('Fenstertitel','Anzeigetext','Defaultwert')

    Ein Fenster erscheint in dem ein Wert abgefragt wird.

    4.1.2 AskValueBool

    BMDASKVALUEBOOL('Anzeigetext','Fenstertitel')

    Ein Abfrage-Fenster (1 = Ja/0 = Nein/-1 = Abbrechen) wird angezeigt.

    4.1.3 AskValueList

    BMDASKVALUELIST('Wert1,Wert2,...','Text1,Text2,...')

    Ein Fenster mit Auswahlmöglichkeiten wird angezeigt.

    4.2 Filezugriff

    4.2.1 WriteToLogFile

    BMDWRITETOLOGFILE('FileName','Text')

    Eine Meldung wird ins Logfile geschrieben.

    4.2.2 AssignFile

    BMDASSIGNFILE(<FileNo>,'FileName')

    Der Dateiname wird zugewiesen. Die Filenummer(1 - 3) kennzeichnet das File. Anschließend muss die Datei noch geöffnet werden.

    4.2.3 OpenFile_Reset

    BMDOPENFILE_RESET(<FileNo>)

    Die Datei wird zum Lesen geöffnet. Zuvor muss AssignFile ausgeführt werden.

    4.2.4 OpenFile_Append

    BMDOPENFILE_APPEND(<FileNo>)

    Die Datei wird zum Schreiben geöffnet. Der Text wird durch WriteLn am Schluss angehängt. Zuvor muss AssignFile ausgeführt werden.

    4.2.5 CreateFile

    BMDCREATEFILE('FileName')

    Eine neue Datei wird angelegt.

    4.2.6 DeleteFile

    BMDDELETEFILE('FileName')

    Die Funktion löscht eine Datei von der Festplatte.

    4.2.7 CloseFile

    BMDCLOSEFILE(<FileNo>)

    Das File mit der übergebenen Filenummer wird geschlossen.

    4.2.8 ReadLn

    BMDREADLN(<FileNo>)

    Eine Zeile vom File mit der übergebenen Filenummer wird gelesen. (Zuvor muss AssignFile und OpenFile_Reset ausgeführt werden.)

    4.2.9 WriteLn

    BMDWRITELN(<FileNo>,'Text')

    Eine Text-Zeile wird in das File mit der übergebenen Filenummer geschrieben. (Zuvor muss AssignFile und OpenFile_Append ausgeführt werden.)

    4.2.10 Eof

    BMDEOF(<FileNo>)

    Die Funktion prüft, ob das Dateiende erreicht ist.

    4.2.11 FileExists

    BMDFILEEXISTS('FileName')

    Die Funktion prüft, ob die Datei existiert.

    4.3 Bussines-Model

    4.3.1 SetDBValue

    BMDSETDBVALUE('Feldname','Wert')

    Der Wert eines Datenbankfeldes wird gesetzt. Diese Funktion kann nur ausgeführt werden, wenn sich der Datensatz im Einfügemodus befindet. (z. B. bei Aktionsmakros Neu/Bearbeiten "nach Beginn" oder "vor Ende")

    BMDSETDBVALUE('MCA_BMDUSER_FREIFELDA1','ABC');

    4.3.2 GetDBValue

    BMD_GETDBVALUE('Feldname')

    Der Wert eines Datenbankfeldes wird ausgelesen.

    Variable1 := BMD_GETDBVALUE('MCA_BMDUSER_FREIFELDA1');

    4.3.3 GetCurrentSLQStmt

    BMDGETCURRENTSQLSTMT(<Nummer>)

    Das aktuelle SQL-Statement des Models mit der übergebenen Nummer (1,2,...) wird ausgegeben.

    4.3.4 SQLAddCondition

    BMDSQLADDCONDITION(<Nummer>,'Bedingung')

    Zum SQL-Statement des Models wird eine Bedingung in der WHERE-Klausel mit AND angehängt. Das SQL-Statement wird erst mit BMDBMOPEN(<Nummer>) ausgeführt.

    BMD_SQLADDCONDITION(1,'D.ADR_ORTSNAME = ''STEYR''')

    BMDBMOPEN(1)

    4.3.5 SQLAddOrder

    BMDSQLADDORDER(<Nummer>,'OrderBy-Text')

    Zum SQL-Statement des Models wird eine ORDER BY Bedingung angehängt. Das SQL-Statement wird erst mit BMDBMOPEN(<Nummer>) ausgeführt. Achtung: Die Ausführungszeit kann sich dadurch erheblich verlängern!

    BMD_SQLADDORDER(1,'PER_NAME desc, ADR_STRASSE asc')

    BMDBMOPEN(1)

    4.3.6 BMOpen

    BMDBMOPEN(<Nummer>)

    Das SQL-Statement des Models wird ausgeführt, die Datenmenge geöffnet. Alle zusätzlichen Filter und Sortierungen werden erst zu diesem Zeitpunkt angewendet.

    BMD_SQLADDCONDITION(1,'D.ADR_ORTSNAME = ''STEYR''')
    BMD_SQLADDORDER(1,'PER_NAME desc, ADR_STRASSE asc')

    BMD_BMOPEN(1)

    4.3.7 BMNext

    BMDBMNEXT(<Nummer>)

    Der Datenbankcursor wird auf den nächsten Datensatz gesetzt.

    4.3.8 BMNew

    BMDBMNEW(<Nummer>)

    Das Model geht vom Anzeigemodus in den Neuanlagemodus über. Die Schlüsselfelder und Datenfelder können nun gesetzt werden.

    4.3.9 BMEdit

    BMEDIT(<Nummer>)

    Das Model geht vom Anzeigemodus in den Bearbeitungsmodus über. Die Datenfelder können nun gesetzt werden.

    4.3.10 BMSave

    BMDBMSAVE(<Nummer>)

    Das Model speichert den aktuellen Datensatz.

    4.4 Start Funktionen

    4.4.1 StartFunction

    BMDSTARTFUNCTION('Funktionskonstante','Parameter')

    Eine BMD-Funktion wird gestartet.

    4.4.2 StartPrintFunction

    BMDSTARTPRINTFUNCTION('Funktionskonstante','Parameter')

    Ein BMD-Ausdruck wird gestartet.

    4.4.3 StartSpecialFunction

    BMDSTARTSPECIALFUNCTION('Funktionskonstante','Parameter')

    Eine BMD-Sonderfunktion wird gestartet.

    4.4.4 StartExtFunction

    BMDSTARTEXTFUNCTION('FileName','Parameter')

    Eine externe Funktion wird gestartet (z. B. ""c:\winword.exe"",""MyDoc.doc"")

    4.5 Div Funktionen

    4.5.1 SendMail

    BMDSENDMAIL('An','CC','Betreff','Mailtext')

    Eine E-Mail wird versendet.

    4.5.2 ShowMessage

    BMDSHOWMESSAGE('Text')

    Ein Fenster mit einer Meldung wird angezeigt.

    4.5.3 SendToClipboard

    BMDSENDTOCLIPBOARD('Text')

    Ein Text wird ins Clipboard kopiert.

    4.5.4 IsCurrUserInGroup

    BMDISCURRUSERINGROUP('Gruppe')

    Die Funktion liefert zurück, ob der aktuelle Benutzer in der angegebenen Berechtigungsgruppe enthalten ist.

    4.5.5 IsCurrUserInDog

    BMDISCURRUSERINDOG('Gruppe')

    Die Funktion liefert zurück, ob der aktuelle Benutzer in der angegebenen Datenbesitzergruppe enthalten ist.