Home › Forum › Nuclos Konfiguration › Sonstiges › Alter aus Geburtsdatum errechnen › Alter aus Geburtsdatum errechnen
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