USP_DATAFORMTEMPLATE_VIEW_ADHOCQUERYPAGEEXPRESSION

The load procedure used by the view dataform template "Ad-hoc query page expression form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@NAME nvarchar(255) INOUT Name
@RECORDTYPEID uniqueidentifier INOUT Record type
@PRIMARYKEYFIELD nvarchar(100) INOUT Primary key field
@ISBROWSABLE bit INOUT Is browsable
@OWNERID uniqueidentifier INOUT Owner ID
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@USERCANEDIT bit INOUT User can edit
@FAVORITE bit INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_ADHOCQUERYPAGEEXPRESSION
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @NAME nvarchar(255) = null output,
    @RECORDTYPEID uniqueidentifier = null output,
    @PRIMARYKEYFIELD nvarchar(100) = null output,
    @ISBROWSABLE bit = null output,
    @OWNERID uniqueidentifier = null output,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @USERCANEDIT bit = null output,
    @FAVORITE bit = null output
)
as
    set nocount on;

    set @DATALOADED = 0;

    declare @ISSYSADMIN bit;
    select @ISSYSADMIN = ISSYSADMIN from dbo.APPUSER where ID = @CURRENTAPPUSERID;

    if @ISSYSADMIN = 1
        set @USERCANEDIT = 1
    else
        set @USERCANEDIT = dbo.UFN_SECURITY_APPUSER_GRANTED_ADHOCQUERYINSTANCEEDIT_IN_SYSTEMROLE(@CURRENTAPPUSERID, @ID)

    select 
        @DATALOADED = 1,
        @NAME = q.NAME,
        @RECORDTYPEID = v.RECORDTYPEID,
        @PRIMARYKEYFIELD = 'QUERYRECID',
        @ISBROWSABLE = dbo.UFN_ADHOCQUERY_ISBROWSABLE(q.QUERYDEFINITIONXML, v.OBJECTNAME, v.PRIMARYKEYFIELD),
        @OWNERID = q.OWNERID,
        @FAVORITE = case when f.ID is not null then convert(bit, 1) else convert(bit, 0) end
    from 
        dbo.ADHOCQUERY    q 
        inner join dbo.QUERYVIEWCATALOG v on q.QUERYVIEWCATALOGID     = v.ID
        left join dbo.APPUSERADHOCQUERYFAVORITE f on q.ID = f.ADHOCQUERYID and f.APPUSERID = @CURRENTAPPUSERID
    where 
        q.ID = @ID;

    return 0;