获取自定义下拉列表,右侧信息
Posted 正怒月神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取自定义下拉列表,右侧信息相关的知识,希望对你有一定的参考价值。
如下:
方法:
CREATE FUNCTION Tyler_GetCustomFieldByName_RightText
(
@parentPK uniqueidentifier, -- 主键
@fieldName varchar(32), -- 自定义栏位
@fieldValue varchar(100) -- 下拉列表左侧值(dbo.GetCustomFieldByName 获取的值)
)
returns nvarchar(200)
as
Begin
declare @data xml
declare @valueStr nvarchar(max)
SELECT
@data = GenCustomAddOnRule.XR_SourceCode
FROM dbo.GenCustomAddOnValue
JOIN dbo.GenCustomAddOnRule on GenCustomAddOnValue.XV_XR_Rule=GenCustomAddOnRule.XR_PK
WHERE XV_ParentID = @parentPK
AND XV_Name = @fieldName
select @valueStr= @data.value('((//rules/rule/details/codeDescriptionList/codeDescription[@code=sql:variable("@fieldValue")])[1]/@description)[1]','varchar(max)')
return @valueStr
end
一,涉及的表
GenCustomAddOnValue
GenCustomAddOnRule
二,创建相关视图
CREATE view Tyler_GetGenCustomAddOnValue
as
SELECT
XV_PK,
XV_Data,
XV_IsRuleEnabled,
XV_Name,
XV_ParentID,
XV_ParentTableCode,
XV_Type,
XV_XR_Rule
FROM dbo.GenCustomAddOnValue
CREATE view Tyler_GetGenCustomAddOnRule
as
SELECT
XR_PK,
XR_IsSystemDefined,
XR_IsActive,
XR_Code,
XR_Description,
XR_SourceCode,
XR_RuleType
FROM dbo.GenCustomAddOnRule
上面两张表需要通过GenCustomAddOnValue.XV_XR_Rule进行关联
三,测试例子
获取GenCustomAddOnRule中的sourceCode(这是一个xml文本),得到其中对应的description
测试sql
declare @data xml
set @data='<sourceCode>
<rules>
<rule code="InvalidCode" enabled="true">
<details>
<codeDescriptionList>
<codeDescription code="JC" description="JOYCE" />
<codeDescription code="SW" description="SEAN" />
<codeDescription code="JLA" description="JUNO" />
<codeDescription code="GW1" description="GEENA" />
</codeDescriptionList>
</details>
</rule>
<rule code="CreateEvent" enabled="false">
<details>
<CreateEventRuleCode>Z00</CreateEventRuleCode>
</details>
</rule>
<rule code="DateTimeFormat" enabled="false">
<details>
<format>Short</format>
</details>
</rule>
<rule code="CheckEntered" enabled="false">
<details />
</rule>
</rules>
</sourceCode>'
-- 获取OP MANAGER 为 JC的description(也就是下拉列表中,右侧的信息)
select @data.value('((//rules/rule/details/codeDescriptionList/codeDescription[@code="JC"])[1]/@description)[1]','varchar(max)')
以上是关于获取自定义下拉列表,右侧信息的主要内容,如果未能解决你的问题,请参考以下文章