107 lines
10 KiB
Transact-SQL
107 lines
10 KiB
Transact-SQL
USE [DD_ECM]
|
||
GO
|
||
/****** Object: StoredProcedure [dbo].[PRPMO_CREATE_QUICK_SQL] Script Date: 11.11.2015 13:03:09 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
ALTER PROCEDURE [dbo].[PRPMO_CREATE_QUICK_SQL](@pCONSTURCT_ID INT)
|
||
AS
|
||
DECLARE @COL_NAME VARCHAR(50),
|
||
@SQL_BEGIN VARCHAR(1000),
|
||
@SQL_END VARCHAR(2000),
|
||
@SQL VARCHAR(5000),
|
||
@CONTROL_ID INT,
|
||
@RESULT VARCHAR(8000),
|
||
@TYPEID INT,
|
||
@TABINDEX INT,
|
||
@FORM_ID INT,
|
||
@SQL_LBL VARCHAR(2000)
|
||
|
||
DECLARE c_SPALTENNAMEN CURSOR FOR SELECT T.GUID,'['+T.COL_NAME+']' AS 'COL_NAME',T2.GUID FROM TBPMO_CONTROL T, TBPMO_FORM_CONSTR_QUICK_DISPLAY T1, TBPMO_CONTROL_TYPE T2
|
||
WHERE T1.HEADLINE = 0 AND T1.PICTURE = 0 AND T1.CONSTRUCT_ID = @pCONSTURCT_ID AND T.GUID = T1.CONTROL_ID AND T.CONTROL_TYPE_ID = T2.GUID
|
||
ORDER BY T1.SEQUENCE
|
||
BEGIN
|
||
SET @SQL_BEGIN = 'SELECT T.GUID AS [Record-ID],'
|
||
SET @SQL_END = ' FROM TBPMO_RECORD T, TBPMO_FORM T1 WHERE T.FORM_ID = T1.GUID AND T.FORM_ID = @FORM_ID'
|
||
--SELECT @SQL_BEGIN = SQL_RECORD_SQL1, @SQL_END = SQL_RECORD_SQL2 FROM TBPMO_KONFIGURATION WHERE GUID = 1 --T2.ADDED_WHO,T2.ADDED_WHEN, T2.CHANGED_WHO, T2.CHANGED_WHEN
|
||
SELECT @FORM_ID = FORM_ID FROM TBPMO_FORM_CONSTRUCTOR_DETAIL WHERE GUID = @pCONSTURCT_ID
|
||
SET @SQL_END = REPLACE(@SQL_END,'@FORM_ID',@FORM_ID)
|
||
--PICTURE HOLEN
|
||
SELECT @CONTROL_ID = T.GUID,@COL_NAME = '['+T.COL_NAME+']' FROM TBPMO_CONTROL T, TBPMO_FORM_CONSTR_QUICK_DISPLAY T1
|
||
WHERE T1.CONSTRUCT_ID = @pCONSTURCT_ID AND T.GUID = T1.CONTROL_ID AND T1.PICTURE = 1
|
||
IF @CONTROL_ID > 0
|
||
BEGIN
|
||
SET @SQL = '(SELECT T6.IMG FROM TBPMO_CONTROL_IMAGE T6 WHERE T6.RECORD_ID = T.GUID AND T6.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME
|
||
SET @SQL_BEGIN = @SQL_BEGIN + @SQL + ', '
|
||
SET @SQL = ''
|
||
END
|
||
SET @CONTROL_ID = 0
|
||
--HEADLINE HOLEN
|
||
SELECT @CONTROL_ID = T.GUID,@COL_NAME = '['+T.COL_NAME+']' FROM TBPMO_CONTROL T, TBPMO_FORM_CONSTR_QUICK_DISPLAY T1
|
||
WHERE T1.CONSTRUCT_ID = @pCONSTURCT_ID AND T.GUID = T1.CONTROL_ID AND T1.HEADLINE = 1
|
||
IF @CONTROL_ID > 0
|
||
BEGIN
|
||
BEGIN
|
||
IF @TYPEID = 10 OR @TYPEID = 11
|
||
SET @SQL = 'ISNULL((SELECT CASE WHEN UPPER(RTRIM(LTRIM(T5.VALUE))) = ''TRUE'' THEN 1 ELSE 0 END FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + '),0) AS ' + @COL_NAME
|
||
--ELSE IF @TYPEID = 1
|
||
-- BEGIN
|
||
-- SELECT @SQL_LBL = SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = @CONTROL_ID
|
||
-- SET @SQL_LBL = REPLACE(UPPER(@SQL_LBL),'@RECORD_ID','T2.GUID')
|
||
-- SET @SQL = '(' + @SQL_LBL + ') AS ' + @COL_NAME
|
||
-- END
|
||
ELSE
|
||
SET @SQL = '(SELECT T5.VALUE FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME
|
||
END
|
||
SET @SQL_BEGIN = @SQL_BEGIN + @SQL + ', '
|
||
SET @SQL = ''
|
||
END
|
||
|
||
OPEN c_SPALTENNAMEN
|
||
FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID
|
||
|
||
WHILE @@FETCH_STATUS = 0
|
||
BEGIN
|
||
IF LEN(ISNULL(@SQL,'')) = 0
|
||
BEGIN
|
||
IF @TYPEID = 10 OR @TYPEID = 11
|
||
SET @SQL = 'ISNULL((SELECT CASE WHEN UPPER(RTRIM(LTRIM(T5.VALUE))) = ''TRUE'' THEN 1 ELSE 0 END FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + '),0) AS ' + @COL_NAME
|
||
ELSE IF @TYPEID = 6
|
||
SET @SQL = '(SELECT T6.IMG FROM TBPMO_CONTROL_IMAGE T6 WHERE T6.RECORD_ID = T.GUID AND T6.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME
|
||
ELSE IF @TYPEID = 1
|
||
BEGIN
|
||
SELECT @SQL_LBL = SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = @CONTROL_ID
|
||
SET @SQL_LBL = REPLACE(UPPER(@SQL_LBL),'@RECORD_ID','T.GUID')
|
||
SET @SQL = '(' + @SQL_LBL + ') AS ' + @COL_NAME
|
||
END
|
||
ELSE
|
||
SET @SQL = '(SELECT T5.VALUE FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
IF (@TYPEID = 10) OR (@TYPEID = 11)
|
||
SET @SQL = @SQL + ',ISNULL((SELECT CASE WHEN UPPER(RTRIM(LTRIM(T5.VALUE))) = ''TRUE'' THEN 1 ELSE 0 END FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + '),0) AS ' + @COL_NAME
|
||
ELSE IF @TYPEID = 6
|
||
SET @SQL = @SQL + ',(SELECT T6.IMG FROM TBPMO_CONTROL_IMAGE T6 WHERE T6.RECORD_ID = T.GUID AND T6.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME
|
||
ELSE IF @TYPEID = 1
|
||
BEGIN
|
||
SELECT @SQL_LBL = SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = @CONTROL_ID
|
||
SET @SQL_LBL = REPLACE(UPPER(@SQL_LBL),'@RECORD_ID','T2.GUID')
|
||
SET @SQL = @SQL + ',(' + @SQL_LBL + ') AS ' + @COL_NAME
|
||
END
|
||
ELSE
|
||
SET @SQL = @SQL + ',(SELECT T5.VALUE FROM TBPMO_CONTROL_VALUE T5 WHERE T5.RECORD_ID = T.GUID AND T5.CONTROL_ID = ' + CONVERT(VARCHAR(20),@CONTROL_ID) + ') AS ' + @COL_NAME
|
||
END
|
||
|
||
FETCH NEXT FROM c_SPALTENNAMEN INTO @CONTROL_ID,@COL_NAME,@TYPEID
|
||
END
|
||
|
||
CLOSE c_SPALTENNAMEN
|
||
DEALLOCATE c_SPALTENNAMEN
|
||
|
||
SET @RESULT = @SQL_BEGIN + @SQL + @SQL_END
|
||
|
||
UPDATE TBPMO_FORM_CONSTRUCTOR_DETAIL SET SQL_QUICK_VIEW = @RESULT WHERE GUID = @pCONSTURCT_ID
|
||
END
|