104 lines
3.4 KiB
Transact-SQL

ALTER TABLE TBPMO_FORM_CONSTRUCTOR
ADD LANGUAGE VARCHAR(5) NOT NULL DEFAULT 'de-DE'
GO
DROP TABLE TBPMO_CONTROL_LANGUAGE
CREATE TABLE TBPMO_CONTROL_LANGUAGE
(
GUID INT IDENTITY(1,1), -- Eindeutiger Tabellenschlüssel,
LANGUAGE_TYPE VARCHAR(5) NOT NULL,
CONTROL_SCREEN_ID INTEGER NOT NULL,
CAPTION VARCHAR(100) NOT NULL,
HINT VARCHAR(500),
ADDED_WHO VARCHAR(50) DEFAULT 'Digital Data' NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBPMO_CONTROL_LANGUAGE PRIMARY KEY(GUID),
CONSTRAINT FK_TBPMO_CONTROL_LANGUAGE_CTRLSCR_ID FOREIGN KEY(CONTROL_SCREEN_ID) REFERENCES TBPMO_CONTROL_SCREEN(GUID)
)
GO
------------------------------------------------------------------------------
CREATE TRIGGER TBPMO_CONTROL_LANGUAGE_AFT_UPD ON TBPMO_CONTROL_LANGUAGE
FOR UPDATE
AS
BEGIN
UPDATE TBPMO_CONTROL_LANGUAGE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_CONTROL_LANGUAGE.GUID = INSERTED.GUID
END
GO
CREATE TABLE TBPMO_LANGUAGE_OBJECT
(
GUID INT IDENTITY(1,1), -- Eindeutiger Tabellenschlüssel,
LANGUAGE_TYPE VARCHAR(5) NOT NULL,
SCREEN_ID INTEGER NOT NULL,
PMO_OBJECT_NAME VARCHAR(100) NOT NULL,
CAPTION VARCHAR(100) NOT NULL,
HINT VARCHAR(500),
ADDED_WHO VARCHAR(50) DEFAULT 'Digital Data' NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBPMO_LANGUAGE_OBJECT PRIMARY KEY(GUID),
CONSTRAINT FK_TBPMO_LANGUAGE_OBJECT_SCREEN_ID FOREIGN KEY(SCREEN_ID) REFERENCES TBPMO_SCREEN(GUID)
)
GO
------------------------------------------------------------------------------
CREATE TRIGGER TBPMO_LANGUAGE_OBJECT_AFT_UPD ON TBPMO_LANGUAGE_OBJECT
FOR UPDATE
AS
BEGIN
UPDATE TBPMO_LANGUAGE_OBJECT SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBPMO_LANGUAGE_OBJECT.GUID = INSERTED.GUID
END
GO
CREATE FUNCTION [dbo].[FNPMO_GETOBJECTCAPTION](@pLANG_TYPE VARCHAR(5), @pOBJ_NAME VARCHAR(100), @pSCREEN_ID INT)
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @PMOOBJ_CAPTION VARCHAR(100)
SELECT @PMOOBJ_CAPTION = CAPTION FROM
TBPMO_LANGUAGE_OBJECT AS T
WHERE
T.LANGUAGE_TYPE = @pLANG_TYPE AND
T.SCREEN_ID = @pSCREEN_ID AND
T.PMO_OBJECT_NAME = @pOBJ_NAME
RETURN(ISNULL(@PMOOBJ_CAPTION,''))
END
GO
ALTER TRIGGER [dbo].[TBPMO_FORM_CONSTRUCTOR_AFT_UPD] ON [dbo].[TBPMO_FORM_CONSTRUCTOR]
FOR UPDATE
AS
BEGIN
DECLARE @FORM_TITLE VARCHAR(50),
@LANGUAGE VARCHAR(5), @CHANGED_WHO VARCHAR(50),
@GUID INTEGER,
@PMO_OBJECT_NAME VARCHAR(100)
SELECT
@GUID = GUID,
@FORM_TITLE = FORM_TITLE,
@LANGUAGE = [LANGUAGE],
@CHANGED_WHO = CHANGED_WHO
FROM INSERTED
SET @PMO_OBJECT_NAME = 'CONSTR_MENUE' + CONVERT(VARCHAR(5),@GUID)
UPDATE TBPMO_FORM_CONSTRUCTOR SET CHANGED_WHEN = GETDATE()
FROM INSERTED WHERE TBPMO_FORM_CONSTRUCTOR.GUID = INSERTED.GUID
If exists(SELECT * FROM TBPMO_LANGUAGE_OBJECT WHERE PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = 1)
UPDATE TBPMO_LANGUAGE_OBJECT SET CAPTION = @FORM_TITLE,CHANGED_WHO = @CHANGED_WHO WHERE
PMO_OBJECT_NAME = @PMO_OBJECT_NAME AND
LANGUAGE_TYPE = @LANGUAGE AND SCREEN_ID = 1
ELSE
INSERT INTO TBPMO_LANGUAGE_OBJECT (LANGUAGE_TYPE,SCREEN_ID,PMO_OBJECT_NAME,CAPTION) VALUES
(@LANGUAGE,1,@PMO_OBJECT_NAME,@FORM_TITLE)
END
GO