USP_DATAFORM_SETFIELDCHARACTERISTICS
Set the characteristics for a field on a data form.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DATAFORMINSTANCEID | uniqueidentifier | IN | |
@FIELDID | nvarchar(200) | IN | |
@CULTURE | nvarchar(5) | IN | |
@CAPTION | nvarchar(200) | IN | |
@ISHIDDEN | bit | IN | |
@ISREQUIRED | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORM_SETFIELDCHARACTERISTICS
(
@DATAFORMINSTANCEID uniqueidentifier,
@FIELDID nvarchar(200),
@CULTURE nvarchar(5),
@CAPTION nvarchar(200),
@ISHIDDEN bit,
@ISREQUIRED bit,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
begin try
if dbo.UFN_DATAFORM_ISINSTANCEFORMFIELDIDVALID(@DATAFORMINSTANCEID, @FIELDID) = 0 begin
raiserror('BBERR_DATAFORMFIELDCHARACTERISTIC_VALIDFIELDID', 13, 1);
end
if @ISHIDDEN = 0 and dbo.UFN_DATAFORM_ISINSTANCEFORMFIELDHIDDEN(@DATAFORMINSTANCEID, @FIELDID) = 1 begin
raiserror('BBERR_DATAFORMFIELDCHARACTERISTIC_VALIDHIDDENFIELD', 13, 1);
end
if @ISREQUIRED = 0 and dbo.UFN_DATAFORM_ISINSTANCEFORMFIELDREQUIRED(@DATAFORMINSTANCEID, @FIELDID) = 1 begin
raiserror('BBERR_DATAFORMFIELDCHARACTERISTIC_VALIDREQUIREDFIELD', 13, 1);
end
if @ISREQUIRED = 1 and dbo.UFN_DATAFORM_ISINSTANCEFORMFIELDREADONLY(@DATAFORMINSTANCEID, @FIELDID) = 1 begin
raiserror('BBERR_DATAFORMFIELDCHARACTERISTIC_VALIDREADONLYFIELD', 13, 1);
end
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null begin
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
end
declare @ROWFIELDID uniqueidentifier
-- check for existing row of this field characteristic; determine for insert or update.
select @ROWFIELDID = ID from dbo.DATAFORMFIELDCHARACTERISTIC where DATAFORMINSTANCEID = @DATAFORMINSTANCEID and FIELDID = @FIELDID;
if @ROWFIELDID is null begin
set @ROWFIELDID = newid();
insert into dbo.DATAFORMFIELDCHARACTERISTIC (
ID,
DATAFORMINSTANCEID,
FIELDID,
ISHIDDEN,
ISREQUIRED,
ADDEDBYID,
CHANGEDBYID
) values (
@ROWFIELDID,
@DATAFORMINSTANCEID,
@FIELDID,
@ISHIDDEN,
@ISREQUIRED,
@CHANGEAGENTID,
@CHANGEAGENTID
);
end else begin
update dbo.DATAFORMFIELDCHARACTERISTIC set
ISHIDDEN = @ISHIDDEN,
ISREQUIRED = @ISREQUIRED,
CHANGEDBYID = @CHANGEAGENTID
where ID = @ROWFIELDID;
end
-- check for existing caption of this field/culture
if not exists(select ID from dbo.DATAFORMFIELDCHARACTERISTICCAPTION where DATAFORMFIELDCHARACTERISTICID = @ROWFIELDID and CULTURE = @CULTURE) begin
insert into dbo.DATAFORMFIELDCHARACTERISTICCAPTION (
DATAFORMFIELDCHARACTERISTICID,
CULTURE,
CAPTION,
ADDEDBYID,
CHANGEDBYID
) values (
@ROWFIELDID,
@CULTURE,
coalesce(@CAPTION, ''),
@CHANGEAGENTID,
@CHANGEAGENTID
);
end else begin
update dbo.DATAFORMFIELDCHARACTERISTICCAPTION set
CAPTION = coalesce(@CULTURE, ''),
CHANGEDBYID = @CHANGEAGENTID
where CULTURE = @CULTURE and DATAFORMFIELDCHARACTERISTICID = @ROWFIELDID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;