2014-01-24 101 views
0

我是新的水晶報告,並沒有太多的編程知識。我正在尋找一個能夠將筆記分開的公式(例如:到Syd +我們想念你+從Bill & Pat)到3個不同的領域。任何幫助將不勝感激。水晶報告修剪字符串

+0

你想如何分離他們? – craig

+0

我對此感到抱歉。我正在尋找配方來保留+符號之前的內容。 示例:致Syd + 預期結果是:致Syd 感謝您的幫助,諒解和耐心。 – user3229620

+0

你想通過去除之間的符號來形成字符串嗎? – Siva

回答

0
local stringVar subject := 'To Syd+We miss you+From Bill&Pat'; 
local numberVar location := instr(subject, '+'); 
if location > 0 then 
left(subject, location) 
else 
subject; 

我已經硬編碼了要修改的字符串,但您可以用{} table.field

而且代替它,如果有一定會永遠+你可以通過刪除,如果事情簡單化。

0

請注意,Lee的回答只會讓你得到最左邊的文字。

INSTR(主題,「+」)返回+
左側的最左邊出現的位置(主題,地點)翻出字符

,如果你那麼想的「位置」數學科的一大塊跳出第二和第三位,你可以這樣做:

local stringvar subject:=「string1 + string2 + string3」;
local numberVar location1;
本地號碼變量位置2;

location1:= instr(subject,「+」);
location2:= instr(location1 + 1,subject,「+」);
/////這INSTR僅開始從LOCATION1尋找下一個最左邊的+,我會告訴下面你可以如何使用

(如果LOCATION1> 0
然後離開(主題,location1-1)
/////使用Lee的'左'命令調出第一位,我添加了minus1,以便實際的+不會顯示
else「missing first +」)
+ chrw(13)+//我在屏幕上顯示,所以我添加了一個ENTER,你可以擺脫這一行
(如果位置2> 0
/////錯誤檢查是保持健全遲早
然後

中期(主題,LOCATION1 + 1,location2-1-LOCATION1)
/////從受試者體內拉塊,起始於LOCATION1 + 1 [闖過+在位置1本身],
/////向右抓取'位置2-1位置1'字符
/////(用+ 1/-1播放幾次即可獲得想法。

/////有兩個字符分隔符嘗試一下,說:「要john12Hello12From簡」,幫助我讓我的頭直
+ CHRW(13)+ //再次,這只是我的打樣
right(subject,length(subject)-location2)
/////從主題的右側,大小'主題長度'減去位置2, /////,從最後直到打+

其他「缺少第二個+」)

+0

非常感謝你們的幫助!你們是最棒的! – user3229620