2014-01-24 65 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