Lotus Notes:如何使@MailSend只运行一次

时间:2014-02-25 06:25:51

标签: lotus-notes lotus-formula

有一个名为Sum的计算数字字段。正如其名称所示,它基本上是百分比,每次用户完成其他字段时都会更改。最初,它是100(%)。

我创建了一个配置区域,其中有一个包含2列的视图:

         Minimum value | Names
-------------------------------------
            60          Name1, Name2
-------------------------------------
            30          Name3
-------------------------------------
            15          Name5

所以,当Sum <= 60时,它应该证明名称:Name1, Name2(但只有一次)。此外,当Sum达到低于30 =&gt;的立即值时Name3的通知(仅一次),最后当数字字段Sum达到低于15 =&gt;的立即值时在配置区域中修复的另一个Name5的通知,也只有一次。 (我想@MailSend只有一次的原因是,当{,1}} =&gt;时,前两个@MailSend不再被执行,因为它们在Sum=20时被运行了例如,在第一种情况下,Sum和各自的=59.61)。

我做过的尝试:

我尝试用=29.14创建一些计算字段(隐藏,作为标志)。当第一个通知发出时,只需验证标记值是否为default value = 0,然后将值更改为0。但是,如果管理员在配置区域中创建了1的10个最小值,那么我应该为这10个值创建每个标志吗?

我感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:1)

从视图的第一列获取所有Sum值,并为每个条目发送邮件,如果邮件尚未发送,则小于或等于字段Sum。这是一个未经测试的样本公式代码,只是为了了解它是如何工作的:

_SumViewList := @DbColumn(...; 1);
@Transform(_SumViewList; "_SumView";
    @If(Sum <= _SumView & !(MailSentFor = @Text(_SumView));
            @Do(    @MailSend(@DbLookup(...; _SumView; 2); ...);
                    FIELD MailSentFor := @Trim(MailSentFor : @Text(_SumView)));
            ""))

答案 1 :(得分:0)

检查newminimum是否在范围内,然后检查oldminimum是否超出范围

perphaps数组帮助你

dim minimum(3) as integer
dim sendTo(3) as string
dim x as integer

minimum(0) = 0
minimum(1) = 10
minimum(2) = 30
minimum(3) = 70

sendTo(0) = "nameA"
sendTo(1) = "nameB"
sendTo(2) = "nameC"
sendTo(3) = "nameD"

x=0

newminimum = oldminimum + newvalue
do until x=UBound(minimum)
    if newminimum >= minimum(x) and newminimum >= minimum(x+1) 
         if oldminimum < minimum(x) then
                'send mail to Usergroup sendTo(x)
            end if
    end if
    x=x+1
loop