Home Forum Nuclos Konfiguration Sonstiges Alter aus Geburtsdatum errechnen Alter aus Geburtsdatum errechnen

#8082
Thomas Hempel
Teilnehmer

Hallo fholzer,

an dem Problem war ich zufällig gerade dran, hier meine Lösung mit Nuclos 4.3.1 und SQL-Server:

Folgende Funktion habe ich als Datenbankobjekt angelegt:

-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================

CREATE FUNCTION nuclos.O181_CA_ALTER (@INTID AS Int)

RETURNS varchar(3)
AS
BEGIN
DECLARE @Alter as varchar(3);
DECLARE @birthday AS DATE;

SET @birthday = (
SELECT T.DATGEBURTSDATUM
FROM nuclos.O181_MITARBEITER AS T
WHERE T.INTID = @INTID);

SET @Alter = DATEDIFF (YEAR, @birthday,GETDATE()) -
CASE
WHEN 100 * MONTH(GETDATE()) + DAY(GETDATE())
< 100 * MONTH(@birthday) + DAY(@birthday) THEN 1
ELSE 0
END;

RETURN (@Alter);

END;

Dazu unter Konfiguration/Datenbank ein Datenbankobjekt vom Typ function anlegen, zweitens unter /Datenbankquelltext obigen Quelltext anlegen und dem Objekt zuweisen.

Im BO muss es ein Feld Geburtsdatum vom Typ Datum geben, oder es muss das SELECT-Statement in der Funktion entsprechend angepasst werden, damit ein Geburtsdatum geliefert wird. Das SELECT-STatement muss an den Namen des BO-Objektes angepasst werden.

Im Businessobjekt-Wizard muss im Attribut Alter im Feld Berechnungsvorschrift die Funktion eingestellt werden. Als Parameter wird von nuclos automatisch die INTID des Datensatzes mitgeliefert.

Gruß
Thomas