我有一个长字符串(“sara james joseph NAUMAN”),它使用存储过程在VS2008(c#)中使用Crystal Reports显示。
我想知道如何在存储过程,Crystal Reports公式或.cs文件中进行转换。
答案 0 :(得分:2)
有一个名为ProperCase(str)的函数可以修复外壳。
`ProperCase("sara james joseph NAUMAN")`
借用一点Hariharan Anbazhagan的代码;如果您的字符串前后碰巧有空格,请使用Trim(str)。没有任何功能可以删除单词之间的空格,因此这段代码可以完成这项工作。
stringvar str1;
stringvar str2;
numbervar counter;
numbervar leng;
str2 := Trim(" Big Space ");
leng := len(str2);
if leng>0 then
(
for counter := 1 to leng do
(
If Not(Mid(str2, counter, 1) = " " and (Mid(str2, counter+1, 1)) = " ") Then
(
str1:=str1 + Mid(str2, counter, 1)
)
);
str1
)
答案 1 :(得分:1)
自定义公式Format()
:
// Format()
Function (Stringvar value, Optional Stringvar delimiter:=",")
// create an array of formetted names (and blanks)
// "sara james joseph NAUMAN" => "Sara James Joseph Nauman"
Local Stringvar Array temp:=Split( ProperCase(value), " ");
Local Stringvar Array values;
Local Numbervar i;
// remove empty array positions
For i:= 1 To Ubound(temp) Do (
If temp[i]<>"" Then (
Redim Preserve values[Ubound(values)+1];
values[Ubound(values)]:=temp[i]
)
);
// delimited list
Join(values, delimiter);
在公式中引用它:
// returns "Sara,James,Joseph,Nauman"
Format("sara james joseph NAUMAN")
答案 2 :(得分:0)
在VB.net中,等价物是:
str1 = StrConv(str1, vbProperCase)
这只是一个FYI,以防其他人在VB.net中寻找这个。