0

我远非专家,但我最近学到了很多关于使用 Lotus @Formula 语言的知识,并为自己创建了一些非常有用的按钮。不幸的是,我在尝试对我最近创建的一个进行最后的润色时遇到了麻烦,无论我做了多少搜索,我似乎都找不到任何可以为我指明正确方向的东西。

更具体地说,我想要做的是转发一个注释,该注释从电子邮件正文中提取一段文本并在主题行中使用它。我要转发的便条可能是备忘录或来自特定数据库的文档。当我从数据库转发文档时,我可以通过在使用@GetField转发特定字段之前获取特定字段的值来获取所需的文本。如果我只是直接从数据库中的文档转发,那么首先获取值就可以完美地工作,这很好,因为一旦我打开那个新的备忘录来转发它,那个字段就不再存在了。

问题是,如果我转发其他人的电子邮件(已经从数据库转发文档的人),我没有机会首先获得我需要的值,因为该字段已经消失了。好消息是我试图获取的字段的值列在我正在转发的备忘录的表格中。不幸的是,我不知道如何突出显示和复制该文本,以便将其粘贴到主题行中。在我简单的头脑中,我在想我只需要一种方法来“找到”我需要复制的文本之前的静态文本,向右移动一个空格,然后突出显示并复制从该点到结尾的所有内容细胞。

基本上,我需要一种从正文中查找和复制某些内容的方法,以便可以在主题行中使用它。我能做的最接近的事情是使用EditDownEditRight命令将光标移动到该位置。该方法的问题是我无法知道要向下移动的正确行数。如果我要转发原始文档,则以下类型的作品:

@Command( [EditGotoField]; "Body" ) ;
REM "The next line only works if the text is located exactly 33 lines down." ;
@Command( [EditDown]; "33" ) ;
@Command( [EditRight]; "29" ) ;
@Command( [EditDeselectAll] ) ;
REM "The next line only works if the text I need is three characters long." ;
@Command( [EditRight] ; "3" ) ;
@Command( [EditCopy] ) ;
@Command( [EditGotoField] ; "Subject" ) ;
@Command( [EditSelectAll]) ;
@Command( [EditInsertText] ; "The text I need is: " ) ;
@PostedCommand( [EditPaste] ) 

我说“有点”是因为它选择文本的部分只有在我需要的文本恰好是我在代码中指定的相同数量的字符时才有效。如果我需要的文本更长,它不会全部得到。如果它更短,光标会选择下一个单元格,然后复制一堆不必要的文本。我需要一种方法让它只选择到单元格的末尾(即好像按“Shift”+“End”)。

我想也许我可以叫一个代理来执行这个部分,但是我在搜索 LotusScript 时找不到任何有用的东西。

我还认为我转发的电子邮件可能有一些指向原始文档的链接,但我找不到任何东西。我的想法是,也许它可以找到原始文档,获取我需要的值并返回到笔记。

感谢您抽时间阅读。如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

1

建议您查看@Text 或@Abstract 以从备忘录的正文字段中获取文本,这将为您留下一个要处理的字符串,您已经提到在您想要的文本之前有一些静态文本@middle 可能是你的朋友。HTH。

嗨,迈克,@Abstract 最多可以处理 64994 个字节,这对于一封电子邮件来说应该足够了。您想要的字段实际上称为 Body,因此请尝试

@Abstract([TextOnly]; 64000; ""; "正文")

我尝试将其分配给一个变量,只是为了发现公式字符串变量限制为 1700 个字符,所以我直接在@Middle 中使用它,

@Middle(@Abstract([TextOnly]; 64000; ""; "Body"); "YourFixedText1"; "YourFixedText2"))

然后我在它周围包裹了一个@Prompt 进行测试,

@Prompt([Ok];"Test Extract"; @Middle(@Abstract([TextOnly]; 64000; ""; "Body"); ""YourFixedText1""; "YourFixedText2"))

成功提取所需内容后,使用公式设置转发笔记的主题字段。

于 2011-10-14T09:36:01.247 回答