有一个名为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个值创建每个标志吗?
我感谢您的时间和帮助。
答案 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