将 Report Builder 中的第一个字母大写
capitalize first letter in Report Builder filed
我正在使用报表生成器编写报表,其中一个数据集的字段值是大写的我想在文本框中将此数据字段值的首字母大写。如果你能帮上忙,请告诉我。
谢谢
瑜珈
我假设您正在使用数据库中的查询通过连接对象获取数据。根据你在这里所说的,一个合理的方法是:
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])
在报告中,您可以使用 Common Text Fuction StrConv() 进行大小写以制作正确的大小写(大写的每个单词的第一个字符):
StrConv([Field].value, vbProperCase)
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/strconv-function
如果您只希望第一个字符大写(其余部分保持原样):
UCase(Left([Field].value, 1)) & Right([Field].value, Len([Field].value) - 1)
(问题标题是指 Report Builder,所以 SQL 中给出的答案可能不适合每个人的需求)
我正在使用报表生成器编写报表,其中一个数据集的字段值是大写的我想在文本框中将此数据字段值的首字母大写。如果你能帮上忙,请告诉我。
谢谢 瑜珈
我假设您正在使用数据库中的查询通过连接对象获取数据。根据你在这里所说的,一个合理的方法是:
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])
在报告中,您可以使用 Common Text Fuction StrConv() 进行大小写以制作正确的大小写(大写的每个单词的第一个字符):
StrConv([Field].value, vbProperCase)
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/strconv-function
如果您只希望第一个字符大写(其余部分保持原样):
UCase(Left([Field].value, 1)) & Right([Field].value, Len([Field].value) - 1)
(问题标题是指 Report Builder,所以 SQL 中给出的答案可能不适合每个人的需求)