204 lines
10 KiB
Transact-SQL
204 lines
10 KiB
Transact-SQL
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 |