2015-05-13 22 views
0

我正在使用報表生成器編寫報表,並且數據集的一個字段值爲大寫,我想在文本框中大寫此數據字段值的第一個字母。請讓我知道你是否可以幫忙。在報表生成器中首字母大寫提交

感謝 瑜珈

回答

1

我假設你正在使用的查詢從數據庫中通過鏈接對象來獲取你的數據。基於你在這裏說的,合理的做法是:

SELECT UPPER(LEFT([FIELD],1))+LOWER(SUBSTRING([FIELD],2,LEN([FIELD]))) 

如果你在你的數據超過一個字,你必須創建一個UDF來處理帕斯卡外殼:

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]) 
+0

感謝強尼是的,你是對的,問題是這個數值的確有空間就那麼第二個字的第一個字符也應該被資本化。比如約翰尼貝爾。 – LondonUK

+0

我編輯了我的答案以反映您的需求。希望它能完成這項工作。 –

+0

感謝的人,是的,它確實工作 – LondonUK