204 lines
10 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ALTER PROCEDURE [dbo].[PRPMO_COPY_ENTITY](@pFORM_ID INT)
AS
DECLARE
@NEW_FORM_ID INT,
@PARENT_ID INT,
@NAME VARCHAR(100),
@LEVEL VARCHAR(10),
@SHOW_FORM_CONSTR BIT,
@FORM_TYPE_ID INT,
@CONTROL_GUID INTEGER,
@CONTROL_TYPE_ID INT,
@CONTROL_NAME VARCHAR(100)
,@COL_NAME VARCHAR(100)
,@REQUIRED BIT
,@DEFAULT_VALUE VARCHAR(100)
,@SQL_COMMAND_1 VARCHAR(2000)
,@SQL_COMMAND_2 VARCHAR(2000)
,@CONNECTION_ID_1 SMALLINT
,@CONNECTION_ID_2 SMALLINT
,@READ_ONLY BIT
,@VALIDATION BIT
,@MULTILINE BIT
,@PARENT_CONTROL_ID INT
,@MASTER_DATA_ID INT
,@FORMAT_TYPE VARCHAR(50)
,@SHOW_COLUMN BIT
,@STATIC_LIST VARCHAR(2000)
SELECT @PARENT_ID = PARENT_ID, @NAME = 'COPY_' + NAME,@LEVEL = [LEVEL],@SHOW_FORM_CONSTR = SHOW_FORM_CONSTRUCT, @FORM_TYPE_ID = FORM_TYPE_ID FROM TBPMO_FORM WHERE GUID = @pFORM_ID
INSERT INTO TBPMO_FORM (
PARENT_ID,NAME,LEVEL,ADDED_WHO,SHOW_FORM_CONSTRUCT,FORM_TYPE_ID) VALUES (
@PARENT_ID,@NAME,@LEVEL,'PRPMO_COPY_ENTITY',@SHOW_FORM_CONSTR,@FORM_TYPE_ID)
SELECT @NEW_FORM_ID = MAX(GUID) FROM TBPMO_FORM
INSERT INTO TBPMO_FORM_VIEW (FORM_ID, SCREEN_ID, FORM_TITLE, DESCRIPTION, ADDED_WHO) VALUES
(@NEW_FORM_ID, 1, 'UNDEFINED_FORMTITLE', '', 'PRPMO_COPY_ENTITY')
DECLARE c_CONTROL CURSOR FOR SELECT GUID,[CONTROL_TYPE_ID]
,'COPY_' + [NAME]
,[COL_NAME]
,[REQUIRED]
,[DEFAULT_VALUE]
,[SQL_COMMAND_1]
,[SQL_COMMAND_2]
,[CONNECTION_ID_1]
,[CONNECTION_ID_2]
,[READ_ONLY]
,[VALIDATION]
,[MULTILINE]
,[PARENT_CONTROL_ID]
,[MASTER_DATA_ID]
,[FORMAT_TYPE]
,[SHOW_COLUMN],STATIC_LIST FROM TBPMO_CONTROL WHERE FORM_ID = @pFORM_ID ORDER BY PARENT_CONTROL_ID
BEGIN
OPEN c_CONTROL
FETCH NEXT FROM c_CONTROL INTO @CONTROL_GUID,@CONTROL_TYPE_ID,
@CONTROL_NAME
,@COL_NAME
,@REQUIRED
,@DEFAULT_VALUE
,@SQL_COMMAND_1
,@SQL_COMMAND_2
,@CONNECTION_ID_1
,@CONNECTION_ID_2
,@READ_ONLY
,@VALIDATION
,@MULTILINE
,@PARENT_CONTROL_ID
,@MASTER_DATA_ID
,@FORMAT_TYPE
,@SHOW_COLUMN
,@STATIC_LIST
WHILE @@FETCH_STATUS = 0
BEGIN
IF @PARENT_CONTROL_ID > 0
BEGIN
DECLARE @CTRLNAME VARCHAR(100)
SELECT @CTRLNAME = 'COPY_' + [NAME] FROM TBPMO_CONTROL WHERE GUID = @PARENT_CONTROL_ID
PRINT 'PCTRID = ' + CONVERT(VARCHAR(10),@PARENT_CONTROL_ID)
PRINT '@CTRLNAME = ' + @CTRLNAME
SELECT @PARENT_CONTROL_ID = GUID FROM TBPMO_CONTROL WHERE NAME = @CTRLNAME AND FORM_ID = @NEW_FORM_ID
PRINT 'NEW PCTRID = ' + CONVERT(VARCHAR(10),@PARENT_CONTROL_ID)
END
INSERT INTO TBPMO_CONTROL (
FORM_ID
,[CONTROL_TYPE_ID]
,[NAME]
,[COL_NAME]
,[REQUIRED]
,[DEFAULT_VALUE]
,[SQL_COMMAND_1]
,[SQL_COMMAND_2]
,[CONNECTION_ID_1]
,[CONNECTION_ID_2]
,[READ_ONLY]
,[VALIDATION]
,[MULTILINE]
,[PARENT_CONTROL_ID]
,[MASTER_DATA_ID]
,[FORMAT_TYPE]
,[SHOW_COLUMN]
,[STATIC_LIST]
) VALUES (
@NEW_FORM_ID
,@CONTROL_TYPE_ID
,@CONTROL_NAME
,@COL_NAME
,@REQUIRED
,@DEFAULT_VALUE
,@SQL_COMMAND_1
,@SQL_COMMAND_2
,@CONNECTION_ID_1
,@CONNECTION_ID_2
,@READ_ONLY
,@VALIDATION
,@MULTILINE
,@PARENT_CONTROL_ID
,@MASTER_DATA_ID
,@FORMAT_TYPE
,@SHOW_COLUMN
,@STATIC_LIST
)
DECLARE @NEW_CONTROLID INTEGER
SELECT @NEW_CONTROLID = MAX(GUID) FROM TBPMO_CONTROL
DECLARE
@SCREEN_ID INTEGER
,@CONTROL_TEXT VARCHAR(100)
,@X_LOC FLOAT
,@Y_LOC FLOAT
,@HEIGHT INTEGER
,@WIDTH INTEGER
,@FONT_FAMILY VARCHAR(50)
,@FONT_COLOR INTEGER
,@FONT_SIZE INTEGER
,@FONT_STYLE INTEGER
,@TAB_INDEX INTEGER
,@TAB_STOP BIT
,@BACK_COLOR INTEGER
SELECT @SCREEN_ID = [SCREEN_ID], @CONTROL_TEXT = [CONTROL_TEXT],@X_LOC = [X_LOC],
@Y_LOC = [Y_LOC],@HEIGHT = [HEIGHT], @WIDTH = [WIDTH],@FONT_FAMILY = [FONT_FAMILY],
@FONT_COLOR = [FONT_COLOR], @FONT_SIZE = [FONT_SIZE],@FONT_STYLE = [FONT_STYLE],
@TAB_INDEX = [TAB_INDEX], @TAB_STOP = [TAB_STOP], @BACK_COLOR = [BACK_COLOR] FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = @CONTROL_GUID
INSERT INTO TBPMO_CONTROL_SCREEN (
CONTROL_ID,
SCREEN_ID
,CONTROL_TEXT
,X_LOC
,Y_LOC
,HEIGHT
,WIDTH
,FONT_FAMILY
,FONT_COLOR
,FONT_SIZE
,FONT_STYLE
,TAB_INDEX
,TAB_STOP
,BACK_COLOR)
VALUES(
@NEW_CONTROLID
,@SCREEN_ID
,@CONTROL_TEXT
,@X_LOC
,@Y_LOC
,@HEIGHT
,@WIDTH
,@FONT_FAMILY
,@FONT_COLOR
,@FONT_SIZE
,@FONT_STYLE
,@TAB_INDEX
,@TAB_STOP
,@BACK_COLOR
)
FETCH NEXT FROM c_CONTROL INTO @CONTROL_GUID,@CONTROL_TYPE_ID,
@CONTROL_NAME
,@COL_NAME
,@REQUIRED
,@DEFAULT_VALUE
,@SQL_COMMAND_1
,@SQL_COMMAND_2
,@CONNECTION_ID_1
,@CONNECTION_ID_2
,@READ_ONLY
,@VALIDATION
,@MULTILINE
,@PARENT_CONTROL_ID
,@MASTER_DATA_ID
,@FORMAT_TYPE
,@SHOW_COLUMN
,@STATIC_LIST
END
CLOSE c_CONTROL
DEALLOCATE c_CONTROL
END