USP_SEARCHLIST_APEXFORM
This provides the search function for form instances
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NAME | nvarchar(512) | IN | Name |
@FORMTYPEID | uniqueidentifier | IN | Form type id |
@ISDEFAULT | bit | IN | Isdefault |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
@SORTPARAMETER | varchar(100) | IN | SORTPARAMETER |
@SORTORDER | varchar(50) | IN | SORTORDER |
@PAGENUMBER | int | IN | PAGENUMBER |
@PAGESIZE | int | IN | PAGESIZE |
@SITEID | int | IN | Site ID |
@FAFFORMS | varchar(50) | IN | Faf Forms |
Definition
Copy
CREATE procedure dbo.USP_SEARCHLIST_APEXFORM
(
@NAME nvarchar(512) = null,
@FORMTYPEID uniqueidentifier = null,
@ISDEFAULT bit = null,
@MAXROWS smallint = 500,
@SORTPARAMETER varchar(100) = 'NAME', -- NAME or STATUS or TYPE
@SORTORDER varchar(50) = 'ASC', -- ASC or DESC
@PAGENUMBER int = 1,
@PAGESIZE int = 50,
@SITEID int = null,
@FAFFORMS varchar(50) = null
) with execute as owner
as
set nocount on;
set @NAME = '%' + COALESCE(@NAME,'') + '%'
DECLARE @sqlCommand nvarchar(4000)
DECLARE @ParmDefinition nvarchar(1000)
DECLARE @STARTROW int
DECLARE @ENDROW int
SET @STARTROW = ((@PAGENUMBER * @PAGESIZE) - @PAGESIZE + 1)
SET @ENDROW = (@PAGENUMBER * @PAGESIZE)
IF ISNULL(@STARTROW,-1) < 0
SET @STARTROW = 1
IF ISNULL(@ENDROW,0) = 0
SET @ENDROW = 10000
SET @ParmDefinition = '@NAME nvarchar(512), @FORMTYPEID uniqueidentifier, @ISDEFAULT bit, @SORTPARAMETER varchar(100), @SORTORDER varchar(50), @STARTROW int, @ENDROW int, @SITEID int, @FAFFORMS varchar(50)'
IF (@SORTPARAMETER='' OR @SORTPARAMETER is null)
SET @SORTPARAMETER='NAME'
SET @sqlCommand = '
SELECT AF.ID,
AF.NAME,
ft.FORMTYPE,
AF.DATECHANGED,
AF.OWNERID,
AF.SITEID,
CU.USERNAME
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY '
Select @SORTPARAMETER =
CASE
WHEN @SORTPARAMETER = 'FORMTYPE' THEN 'FORMTYPEID '
WHEN @SORTPARAMETER = 'DATECHANGED' THEN 'DATECHANGED '
ELSE 'NAME '
END
SET @sqlCommand =@sqlCommand +@SORTPARAMETER
Select @SORTORDER =
CASE
WHEN @SORTORDER = 'DESC' THEN 'DESC '
ELSE 'ASC '
END
SET @sqlCommand =@sqlCommand +@SORTORDER
SET @sqlCommand =@sqlCommand + ') AS ROW,
APEXFORM.[ID],
APEXFORM.[NAME],
APEXFORM.[FORMTYPEID],
APEXFORM.[DATECHANGED],
APEXFORM.[OWNERID],
APEXFORM.[SITEID]
FROM
dbo.APEXFORM'
set @sqlCommand=@sqlCommand + ' WHERE (NAME LIKE @NAME)' --To prevent SQLi, this should be parameterized.
if @FORMTYPEID is not null
SET @sqlCommand =@sqlCommand +' AND (FORMTYPEID = @FORMTYPEID)'
if @FAFFORMS is not null
SET @sqlCommand =@sqlCommand +' AND (FORMTYPEID IN (Select ID FROM APEXFORMTYPE WHERE PRODUCTID=''A919502C-A2F6-4A56-9183-28E3F667916E''))'
if @ISDEFAULT is not null
SET @sqlCommand=@sqlCommand + ' AND (ISDEFAULT = @ISDEFAULT)'
if @SITEID is not null
SET @sqlCommand=@sqlCommand + ' AND (SITEID = @SITEID)'
SET @sqlCommand =@sqlCommand + ') AS AF
left outer join dbo.APEXFORMTYPE ft on ft.ID = AF.[FORMTYPEID]
LEFT OUTER JOIN dbo.CLIENTUSERS CU ON CU.ID = AF.[OWNERID]'
SET @sqlCommand =@sqlCommand + ' WHERE ROW >= @STARTROW AND ROW <= @ENDROW'
if @SORTPARAMETER = 'FORMTYPEID'
SET @sqlCommand=@sqlCommand + ' ORDER BY ft.FORMTYPE'
exec sp_executesql @sqlCommand, @ParmDefinition, @NAME = @NAME, @FORMTYPEID = @FORMTYPEID, @ISDEFAULT = @ISDEFAULT,
@SORTPARAMETER = @SORTPARAMETER, @SORTORDER = @SORTORDER, @STARTROW = @STARTROW, @ENDROW = @ENDROW, @SITEID=@SITEID, @FAFFORMS = @FAFFORMS