对数字字段进行验证

Making a valdiation for a numeric field

这可能是个愚蠢的问题,但我一直被以下问题困扰:

所以我有字段 "svars",它是数字字段。我想要实现的是,当用户输入等于 0 的值时,它会显示提示并将值设置为“”。我知道@prompt 之后的“”不会那样做,但我不知道如何做到这一点,因为@if 中条件的动作是提示,它始终将值设置为 1如果我在提示框中按确定。有人对如何进行检查、将值设置为“”并显示提示有任何建议吗?

@If (svars=0; 
        @Prompt([OK];"Kļūda";"Kļūdas teksts");
    ""
    )

您需要考虑两个地方。首先是字段的"Input Translation"。您通常会在该领域进行更改。如果你想将 0 重置为 "" 那么你可以在翻译公式中编写以下代码:

@If( @ThisValue = 0; 
     @Do( @Prompt( [OK] ; "Kļūda";"Kļūdas teksts"); "" );
     @ThisValue );

公式显示提示,然后将字段值替换为“”(对于值 = 0),否则保留当前值。

如果你想在错误值的情况下禁止保存文档,那么你可以使用字段的 "Input Validation" 公式,并且可以这样做:

@If( @ThisValue = 0; 
     @Failure( "Kļūdas teksts" );
     @Success );

这不会重置 "wrong" 值,但不会让用户保存文档,直到他填写另一个值。

如果您的 "check" 在其他地方(在保存按钮或某种事件中),那么它看起来像这样:

@If( svars = 0; 
     @Do( @Prompt( [OK] ; "Kļūda";"Kļūdas teksts"); FIELD svars := ""  );
     "" );

这是最不安全的方法,因为用户总是可以通过使用 "Ctrl + S" 或磁盘符号

来保存文档而无需按您的按钮