0

我正在使用 List() 检索一个数字字段,随后我通过文本字段内的合并变量将其显示在报表视图上。显示的数据是在特定日期从事特定工作的员工列表,以及他们在各种分类(正常、加班、不计费、不计费加班等)下工作的小时数。小时都是从另一个表中提取的计算字段,但它们需要以数字形式存储。

每列都有自己的文本字段:

| <<$$Name>> | <<$$normalHours>> | <<$$otHours>> | ...

提供输出,例如:

Jim Jones           8      2
Ralph Ryder      4.25      0
Foo McBar          10    2.5

字段高度需要是动态的,因为可能会显示 1 到 10 名左右的员工。

问题是我想始终显示带两位小数的小时字段:

Jim Jones         8.00      2.00
Ralph Ryder       4.25      0.00
Foo McBar        10.00      2.50

这通常通过 Inspector -> Data 对于单值字段来说是微不足道的,也许它仍然是微不足道的——但我只是没有看到它。

我尝试在填充字段时使用 SetPrecision(hours ; 2),并且在创建我的列表变量时(尽管我认为它实际上不会起作用):

$$normalHours = SetPrecision(List(laborTable::normalHours);2)

在这两种情况下,我仍然看到整数的纯整数输出,并且在任何情况下都没有尾随零。

如果我能提供任何可能有帮助的进一步信息,请告诉我。

4

2 回答 2

0

也许你能用一个门户代替它吗?

如果没有,请尝试在合并文本字段本身上设置格式。它也可以有格式;每种数据类型只有一个变体,但在您的情况下应该足够了。

于 2013-07-18T05:29:50.140 回答
0

您可以尝试几件事:

自动输入计算替换现有值

您可以将 normalHours 字段更改为自动输入计算,取消选中“不替换现有值”,并将计算设置为以下内容:

Let ( [
    whole = Int ( Self ) ;
    remainder = Abs ( Self ) - Abs ( whole )
] ;
    Case ( remainder = 0 ;
        whole & ".00" ;
        Self )
)

这会将“.00”附加到您字段中的任何整数。这应该稍后通过您的 List() 函数来实现。

新的计算字段

或者,如果您不想自动修改现有数字,您可以使用非常相似的计算创建一个新的计算字段:

Let ( [
    whole = Int ( normalHours ) ;
    remainder = Abs ( normalHours ) - Abs ( whole )
] ;
    Case ( remainder = 0 ;
        whole & ".00" ;
        normalHours )
)

然后您将在 List 函数中使用该计算字段,而不是您的 normalHours 字段。

对于更复杂的字段格式,您还可以使用这样的自定义函数:http ://www.briandunning.com/cf/945

于 2013-07-18T04:15:57.347 回答