USP_ATTRIBUTECATEGORY_GETATTRIBUTEFORMEXTENSIONINFO
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_ATTRIBUTECATEGORY_GETATTRIBUTEFORMEXTENSIONINFO
(
@ID uniqueidentifier
)
as
set nocount on;
declare @attributeName nvarchar(100);
declare @likeClause nvarchar(50);
declare @isCurrency bit;
select @likeClause = TABLENAME,
@attributeName = NAME,
@isCurrency = case DATATYPECODE when 3 then 1 else 0 end
from dbo.ATTRIBUTECATEGORY
inner join dbo.TABLECATALOG on ATTRIBUTECATEGORY.TABLECATALOGID = TABLECATALOG.ID
where ATTRIBUTECATEGORY.ID = @ID
declare @addClause1 nvarchar(75) = 'exec dbo.[USP_' + @likeClause;
declare @addClause2 nvarchar(10) = '@VALUE=@';
declare @editViewClause1 nvarchar(75) = 'from dbo.[' + @likeClause;
declare @editViewClause2 nvarchar(10) = '@ tceles';
set @likeClause = '%' + @likeClause + '%';
with xmlnamespaces ('bb_appfx_adddataformtemplate' as addspec, 'bb_appfx_editdataformtemplate' as editspec, 'bb_appfx_viewdataformtemplate' as viewspec, 'bb_appfx_commontypes' as common)
select DATAFORMTEMPLATECATALOG.ID ATTRIBUTEFORMEXTENSIONID,
case DATAFORMTEMPLATECATALOG.MODE
when 0 then
SUBSTRING(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'),
LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2,
CHARINDEX(' =', DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2) - (LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2))
when 1 then
SUBSTRING(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'),
LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2,
CHARINDEX(' =', DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2) - (LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2))
when 2 then
SUBSTRING(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'),
CHARINDEX(@addClause2, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), 0)) + 8,
CHARINDEX(',', DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause2, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), 0)) + 8) - (CHARINDEX(@addClause2, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), 0)) + 8))
end FIELDID,
DATAFORMTEMPLATECATALOG.MODE,
DATAFORMTEMPLATECATALOG.TEMPLATESPECXML,
@attributeName ATTRIBUTENAME,
@isCurrency ISCURRENCY
from dbo.ATTRIBUTEFORMEXTENSION
inner join dbo.DATAFORMINSTANCECATALOG on ATTRIBUTEFORMEXTENSION.EXTENSIONDATAFORMINSTANCECATALOGID = DATAFORMINSTANCECATALOG.ID
inner join dbo.DATAFORMTEMPLATECATALOG on DATAFORMINSTANCECATALOG.DATAFORMTEMPLATECATALOGID = DATAFORMTEMPLATECATALOG.ID
where (DATAFORMTEMPLATECATALOG.MODE = 0 and DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)') like @likeClause)
or (DATAFORMTEMPLATECATALOG.MODE = 1 and DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)') like @likeClause)
or (DATAFORMTEMPLATECATALOG.MODE = 2 and DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)') like @likeClause)