我正在使用报表生成器写一个报表,数据集的一个存档值是大写的,我想在文本框中把这个数据字段值的第一个字母大写。请让我知道,如果你能帮助。
谢谢Yogi
我假设你是使用数据库的查询,通过连接对象来获取数据。根据你在这里所说的,一个合理的方法是。
SELECT UPPER(LEFT([FIELD],1))+LOWER(SUBSTRING([FIELD],2,LEN([FIELD])))
如果你的数据里有不止一个词 你就必须创建一个UDF来处理pascal的外壳
CREATE FUNCTION [dbo].[pCase]
(
@strIn VARCHAR(255)
)
RETURNS VARCHAR(255)
AS
BEGIN
IF @strIn IS NULL
RETURN NULL
DECLARE
@strOut VARCHAR(255),
@i INT,
@Up BIT,
@c VARCHAR(2)
SELECT
@strOut = '',
@i = 0,
@Up = 1
WHILE @i <= DATALENGTH(@strIn)
BEGIN
SET @c = SUBSTRING(@strIn,@i,1)
IF @c IN (' ','-','''')
BEGIN
SET @strOut = @strOut + @c
SET @Up = 1
END
ELSE
BEGIN
IF @up = 1
SET @c = UPPER(@c)
ELSE
SET @c = LOWER(@c)
SET @strOut = @strOut + @c
SET @Up = 0
END
SET @i = @i + 1
END
RETURN @strOut
END
然后利用这样的函数
SELECT DBO.PCASE([FIELD])
在报告中,你可以用通用文本函数StrConv()来进行编码,以使其成为合适的编码(每个单词的第一个字符为大写)。
StrConv([Field].value, vbProperCase)
https:/docs.microsoft.comen-usofficevbalanguagereferenceuser-interface-helpstrconv-function。
如果你只想让第一个字符大写(其他的就不要了)。
UCase(Left([Field].value, 1)) & Right([Field].value, Len([Field].value) - 1)
(问题的标题是指Report Builder, 所以在SQL中给出的答案不一定适合所有人的需求)