看起来它真的很简单(也可能是这样),但我正在尝试获取列的字符串数据然后通过计算列,用%20替换所有空格以便HTML工作流程中的链接生成的电子邮件实际上不会在第一个空格中断。
例如,我们在源代码栏中有这个:
file:/// Z:/ data /这是我们的报告.rpt
并希望在计算列中得到结论:
文件:/// Z:/data/This%20is%20our%20report.rpt
已经使用了REPLACE,并构成了一个可怕的超级嵌套REPLACE / SEARCH版本,但问题是你必须为每个潜在的空间进行嵌套,如果你不知道前面有多少,它就不会工作,或将错过一些。
有没有人遇到过这种情况,你是如何处理它的?
提前致谢!
答案 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)