USP_DATAFORMTEMPLATE_EDITLOAD_USERDEFINEDELEMENT

The load procedure used by the edit dataform template "User-defined Element Edit Data 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.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@ACCOUNTSTRUCTUREID uniqueidentifier INOUT
@SHORTID nvarchar(100) INOUT ID
@DESCRIPTION nvarchar(60) INOUT Description
@PREVENTDATAENTRY bit INOUT Prevent data entry
@PREVENTDATAENTRYBEFOREDATE datetime INOUT Before
@PREVENTDATAENTRYAFTERDATE datetime INOUT After
@PREVENTPOST bit INOUT Prevent posting
@PREVENTPOSTBEFOREDATE datetime INOUT Before
@PREVENTPOSTAFTERDATE datetime INOUT After
@ELEMENTNAME nvarchar(100) INOUT Element Name
@ELEMENTLENGTH int INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_USERDEFINEDELEMENT(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @ACCOUNTSTRUCTUREID uniqueidentifier = null output,
    @SHORTID nvarchar(100) = null output,
    @DESCRIPTION nvarchar(60) = null output,
    @PREVENTDATAENTRY bit = null output,
    @PREVENTDATAENTRYBEFOREDATE datetime = null output,
    @PREVENTDATAENTRYAFTERDATE datetime = null output,
    @PREVENTPOST bit = null output,
    @PREVENTPOSTBEFOREDATE datetime = null output,
    @PREVENTPOSTAFTERDATE datetime = null output,
    @ELEMENTNAME nvarchar(100) = null output,
    @ELEMENTLENGTH integer = null output
)
as

    set nocount on;

    -- be sure to set these, in case the select returns no rows

    set @DATALOADED = 0
    set @TSLONG = 0

    -- populate the output parameters, which correspond to fields on the form.  Note that

    -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system

    -- will display a "no data loaded" message.  Also note that we fetch the TSLONG so that concurrency

    -- can be considered.

    select
        @DATALOADED = 1,
        @TSLONG = PDACCOUNTSEGMENTVALUE.TSLONG,
        @ACCOUNTSTRUCTUREID = PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID,
        @SHORTID = PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION ,
        @DESCRIPTION = PDACCOUNTSEGMENTVALUE.DESCRIPTION ,
        @PREVENTDATAENTRY = PDACCOUNTSEGMENTVALUE.PREVENTDATAENTRY,
        @PREVENTDATAENTRYBEFOREDATE = PDACCOUNTSEGMENTVALUE.PREVENTDATAENTRYBEFOREDATE,
        @PREVENTDATAENTRYAFTERDATE = PDACCOUNTSEGMENTVALUE.PREVENTDATAENTRYAFTERDATE,
        @PREVENTPOST = PDACCOUNTSEGMENTVALUE.PREVENTPOST,
        @PREVENTPOSTBEFOREDATE = PDACCOUNTSEGMENTVALUE.PREVENTPOSTBEFOREDATE,
        @PREVENTPOSTAFTERDATE = PDACCOUNTSEGMENTVALUE.PREVENTPOSTAFTERDATE,
        @ELEMENTNAME = PDACCOUNTSTRUCTURE.DESCRIPTION,
        @ELEMENTLENGTH = (case PDACCOUNTSTRUCTURE.LENGTH when 0 then 100 else PDACCOUNTSTRUCTURE.LENGTH end
    from
        dbo.PDACCOUNTSEGMENTVALUE
        inner join dbo.USERDEFINEDELEMENT on USERDEFINEDELEMENT.ID = PDACCOUNTSEGMENTVALUE.ID
        inner join dbo.PDACCOUNTSTRUCTURE on PDACCOUNTSTRUCTURE.ID = PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID
    where
        PDACCOUNTSEGMENTVALUE.ID = @ID;

    return 0;