Sharepoint:计算列替换所有空格

时间:2009-03-31 18:58:54

标签: sharepoint formatting sharepoint-2007 calculated-columns

看起来它真的很简单(也可能是这样),但我正在尝试获取列的字符串数据然后通过计算列,用%20替换所有空格以便HTML工作流程中的链接生成的电子邮件实际上不会在第一个空格中断。

例如,我们在源代码栏中有这个:

file:/// Z:/ data /这是我们的报告.rpt

并希望在计算列中得到结论:

文件:/// Z:/data/This%20is%20our%20report.rpt

已经使用了REPLACE,并构成了一个可怕的超级嵌套REPLACE / SEARCH版本,但问题是你必须为每个潜在的空间进行嵌套,如果你不知道前面有多少,它就不会工作,或将错过一些。

有没有人遇到过这种情况,你是如何处理它的?

提前致谢!

4 个答案:

答案 0 :(得分:4)

据我所知,没有使用计算列语法的通用解决方案。这种情况的标准解决方案是使用ItemAdded(/ ItemUpdated)事件并从代码初始化字段值。

答案 1 :(得分:0)

我能够通过使用一系列计算列来解决我的问题。

在第一个计算列(C1)中,我输入了一个公式来删除第一个空格,如下所示**: = IF(ISNUMBER(找到("",[标题])),REPLACE([Title],FIND("",[Title]),1," %20&#34),[标题])

在我使用的第二个计算列(C2)中: = IF(ISNUMBER(找到("",[C1])),REPLACE([C1],FIND("",[C1]),1," %20"),[C1])

在我的情况下,我想编码最多四个空格,所以我以相同的方式使用了3个计算列(C1,C2,C3)并获得了所需的结果。

这不如使用单个计算列有效,但如果SUBSTITUTE在SharePoint环境中不起作用,并且您无法使用事件处理程序或工作流,则它可能提供可行的替代方法。

**我实际上使用的是一个稍微不同的公式,但它是在我目前无法访问的工作机器上,所以我只是从类似的S.O.抓住了这个公式。题。任何用"%20"替换第一次出现的空格的公式将起作用,诀窍是a)确保公式返回原始字符串,如果它没有更多的空格,并且b)测试,测试,测试。创建列表视图,其中包含您要编码的字段以及计算字段,并查看是否获得了所需的结果。

答案 2 :(得分:0)

  

这样工作流程中生成的电子邮件中的HTML链接实际上不会在第一个空格中断。

如果将您的链接用引号

括起来,浏览器就会执行此操作

如果您将链接用引号括起来,它会在第一个空格处切断

在SharePoint公式中,它将是:

="""file:///Z:/data/This is our report.rpt"""

因为两个引号是SP转义表示法输出引用

答案 3 :(得分:0)

您可以使用以下公式(对于我来说,开始修剪为1,为4):

=IF(ISBLANK([EUR Amount]),"",(TRIM(MID([EUR Amount],4,2))&TRIM(MID([EUR Amount],6,2))&TRIM(MID([EUR Amount],8,2))&TRIM(MID([EUR Amount],10,2))&TRIM(MID([EUR Amount],12,2))&TRIM(MID([EUR Amount],14,2)))*1)