2019-1-17水晶报表函数大全

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
Abs (x):
Basic 语法和 Crystal 语法。
参数:x 是您希望返回绝对值的数字或货币。
返回:数字值
操作:Abs (x) 返回 x 的绝对值。
示例:
Abs(1.50)
返回 1.50。
 
Abs(-1.50)
返回 1.50。
 
Abs(10 - 7)
返回 3。
 
Abs(7 - 10)
返回 3。
 
Rem Basic 语法:
If Abs(37 - {file.FIELD}) > 1 Then
formula = "Maintenance, Temperature Check "
End If
//Crystal 语法
If Abs(37 - {file.FIELD}) > 1 Then
"需维修,请检查温度"
Else
"" ;
此示例会将试验热区的温度变化超过 ±1 摄氏度的实例标记出来。
 
Sgn (number):
Basic 语法和 Crystal 语法。
参数:number 是要求得其符号的值。
返回:返回 1、0 或 -1
操作:Sgn 返回给定数字的符号:如果 number > 0,则返回 1;如果 number 是 0,则返回 0;如果 number < 0,则返回 -1。
下列示例适用于 Basic 语法和 Crystal 语法:
Sgn (-10)
返回 -1。
 
Sgn (0)
返回 0。
 
Sgn (10)
返回 1。
 
Int (number):
Basic 语法和 Crystal 语法。
参数:number 是要将其向下舍入到最接近的整数的值。
返回:整数值
操作:Int 返回给定数字的整数部分,方法是将其向下舍入到下一个最小的整数。
下列示例适用于 Basic 语法和 Crystal 语法:
Int (123.678)
返回 123。
 
Int (-123.678)
返回 -124。
 
Int (-123.1)
返回 -124。
 
注释:此函数的使用类似 Visual Basic 的同名函数。
Fix (n)(或 Truncate (n))和 Int (n) 的结果相同,但 n 为负数时例外,此时 Fix 和 Truncate 都返回大于或等于 n 的第一个整数,而 Int 返回小于或等于 n 的第一个整数。例如,
Fix (-10.2)
Truncate (-10.2)
二者都返回 -10。
 
Int (-10.2)
返回 -11。
另请参见Fix ,Truncate 函数
 
Round:
Basic 语法和 Crystal 语法。
重载:
Round (x)
Round (x, #places)
参数:x 是要四舍五入的数字或货币。#places 是一个整数,表示 x 要四舍五入到的小数位数。
返回:数字
 
操作:如果忽略 #places 参数,则 Round 四舍五入到最接近的整数。如果小数点右边的值小于或等于 .499,则程序四舍五入到下一个最小数字。如果小数点右边的值等于或大于 .5,则程序四舍五入到下一个最大数字。
如果使用了 #places 参数,则将 x 中的值四舍五入到由 #places 指定的最接近的小数位数。将 #places 指定为 0 与不使用 #places 参数的作用相同。也可以为 #places 指定负数,该数字将四舍五入到最接近的十位、百位或千位,以此类推。
典型用法:在将值四舍五入到特定的小数位数比使用原始值更合适时,可随时使用 Round 函数。
下列示例适用于 Basic 语法和 Crystal 语法:
Round(1.23456)
返回 1。
 
Round(1.499)
返回 1。
 
Round(1.5000)
返回 2。
 
Round(2345.23456,4)
返回 2345.2346。
 
Round(2345.23456,3)
返回 2345.235。
 
Round(2345.23456,2)
返回 2345.23。
 
Round(2345.23456,0)
返回 2345。
 
Round(2345.23456,-1)
返回 2350。
 
Round(2345.23456,-2)
返回 2300。
 
Round(2345.23456,-3)
返回 2000。
 
Round(1.234499,3)
返回 1.234。
 
Round(1.234500,3)
返回 1.235。
 
Round({file.AMOUNT},1)
返回 1854.5,其中 Amount = 1854.49。
 
Round({file.AMOUNT})
返回 1854.00,其中 Amount = 1854.49。
 
Round({file.AMOUNT})
返回 1855.00,其中 Amount = 1854.51。
 
Round({file.WEIGHT} / 100)
返回 4,其中 Weight = 424。
 
Round({file.WEIGHT} / 100)
返回 5,其中 Weight = 451。
 
Round((A * B) / C)
返回 11,其中 A = 25、B = 3 和 C = 7。
 
Round(file.AMOUNT,1)
返回 1854.5,其中 Amount = 1854.51。
 
Round({file.WAGE} * {file.HOURS WORKED}, 2)
返回 $146.63,其中 Wage = $5.75、Hours worked = 25.5。
 
注释:四舍五入也可用作字段中数值的格式化选项;要知道使用字段格式化功能可能会影响值在公式中的使用。参见 ToNumber 和 到货币运算符。另请参见Truncate ,Fix,Int (number)
 
RoundUp:
Basic 语法和 Crystal 语法。
重载:
RoundUp (x)
RoundUp (x, #places)
参数:x 是要四舍五入的实数。#places 是一个整数,表示 x 要四舍五入到的小数位数。
返回:数字
操作:RoundUp 返回已向上舍入的数字。此函数将向上舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
 
RoundUp(4.1,0)
返回 5。
 
RoundUp(5.34)
返回 6。
 
RoundUp(6.36521,3)
返回 6.366。
 
RoundUp(-6.36521,3)
返回 -6.366。
 
RoundUp(50.43,-1)
返回 60。
 
注释:如果 #places 大于 0(零),则数字会向上舍入到指定的小数位数;如果 #places 为 0 或未指定,则数字会向上舍入到下一个整数;如果 #places 小于 0,则数字会向上舍入到小数点的左边。
另请参见Round
 
Truncate:
Truncate 和 Fix 是等价函数。然而,在 Crystal 语法中,Truncate 是首选,而在 Basic 语法中,Fix 是首选。
重载:
Truncate (x)
Truncate (x, #places)
参数:x 是要截断的数字或货币。#places 是一个整数,表示该值被截断后要保留多少位小数。(此参数是可选的。)
返回:数字
 
操作:Truncate(x) 通过将数在小数点处截断来返回一个小数或整数。如果 #places 参数指定,则该数字将被截断到所指定的小数位数,且该函数返回一个小数数字。如果 #places 为负数,则该数字将被四舍五入到第一个十位、百位,以此类推。
典型用法:只要报表或计算不需要小数右边的字符,就可以使用此函数。
下列示例适用于 Basic 语法和 Crystal 语法:
 
Truncate (1.23456)
返回 1。
 
Truncate (1.499)
返回 1。
 
Truncate (1.599)
返回 1。
 
Truncate (1.999)
返回 1。
 
Truncate(12346.33, 1)
返回 12346.3。
 
Truncate(12345.33, -2)
返回 12300.00。
 
如果库存有 147 个高尔夫球并且想知道可用于销售的打数,则计算过程为 147/12=12.25 12.25(截断后) = 12,因此有 12 打可用于销售。如果只按打数来销售球,则所截断的 .25 打无关紧要。
Truncate({file.BALL INVENTORY} / 12)
返回 12,其中 Ball inventory = 147 (147/12 = 12.25,12.25 截断后 = 12)。
 
Truncate({file.BALL INVENTORY} / 12)
返回 12,其中 Ball inventory = 155 (155/12 = 12.92,12.92 截断后 = 12)。
 
Truncate({file.BALL INVENTORY} / 12)
返回 13,其中 Ball inventory = 157 (157/12 = 13.08,13.08 截断后 = 13)。
 
注释:这不是一个四舍五入函数;Truncate 只删除小数点右边的所有字符;有关四舍五入的解释,参见 Round。
对于 Truncate (n) 和 Int (number),当 n(数字)为负数时 Truncate 返回大于或等于 n 的第一个整数,而 Int 返回小于或等于 n 的第一个整数,除此以外它们是同义语。例如,
Truncate (-10.2)
返回 -10。
 
Int (-10.2)
返回 -11。
截断也可作为字段中数字值的一种格式化选项。要知道使用字段格式化功能可能会影响值在公式中的使用。有关转换为数字和货币的详细信息,参见 ToNumber 和 到货币运算符。
另请参见:Int (number)
 
MRound:
Basic 语法和 Crystal 语法。
重载
MRound (x)
MRound (x, multiple)
参数:x 是要四舍五入的值。multiple 是您要将 x 值四舍五入到的倍数。
返回:数字
 
操作:MRound返回已四舍五入到指定倍数的数字。如果除法的余数大于或等于倍数值的一半,此函数将向上舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
MRound(10,3)
返回 9。
 
MRound(-10,-3)
返回 -9。
 
MRound(1.3,0.2)
返回 1.4。
 
MRound(5,-2)
返回 6。
 
MRound(-5,2)
返回 -6。
 
注释:Crystal Reports 将忽略倍数的正负号,并且函数的结果将采用第一个参数的正负号。
 
Ceiling:
Basic 语法和 Crystal 语法。
重载
Ceiling (x)
Ceiling (x, multiple)
参数:x 是要四舍五入的值。multiple 是您要将 x 值四舍五入到的倍数。
返回:数字
操作:Ceiling 返回已四舍五入到指定倍数的数字。此函数将向上舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
Ceiling(3.5,1)
返回 4。
 
Ceiling(-2.5,-2)
返回 -4。
 
Ceiling(-2.5,2)
返回 -4。
 
Ceiling(5.43,.05)
返回 5.45。
 
Ceiling(.43,-1)
返回 1。
 
注释:Crystal Reports 将忽略倍数的正负号,并且函数的结果将采用第一个参数的正负号;当远离零对值进行调整时,将始终将值向上舍入(与值的正负号无关);如果数字是 multiple 的准确倍数,则不进行四舍五入。
 
Floor:
Basic 语法和 Crystal 语法。
重载:
Floor (x)
Floor (x, multiple)
参数:x 是要四舍五入的值;multiple 是您要将 x 值四舍五入到的倍数。
返回:数字
操作:Floor 返回已四舍五入到指定倍数的数字。此函数将向下舍入(远离零)。
下列示例适用于 Basic 语法和 Crystal 语法:
Floor(3.5,1)
返回 3。
 
Floor(-2.5,-2)
返回 -2。
 
Floor(-2.5,2)
返回 -2。
 
Floor(5.43,.05)
返回 5.40。
 
Floor(.43,-1)
返回 0。
 
注释:Crystal Reports 将忽略倍数的正负号,并且函数的结果将采用第一个参数的正负号;当远离零对值进行调整时,将始终将值向下舍入(与值的正负号无关);如果数字是 multiple 的准确倍数,则不进行四舍五入。
0 不能作为 multiple 参数。否则,将导致错误。但是,Floor(0,0) 是允许的,并将返回 0。
 
Fix:
Fix 和 Truncate 是等价函数。然而,在 Basic 语法中,Fix 是首选,而在 Crystal 语法中,Truncate 是首选。
重载:
Fix (number)
Fix (number, #places)
参数:number 是要截断的数字值;它可以为正数、0 或负数;#places是一个可选数字,表示要被截断到的小数位数。若省略,则使用 0。
返回:整数值,它可以为正数、0 或负数。
操作:Fix 将一个数字截断到指定的小数位数,并将其返回。若省略 #places,则使用 0。
下列示例适用于 Basic 语法和 Crystal 语法:
Fix (123.678)
返回 123。
 
Fix (-123.678)
返回 -123。
 
Fix (123.678,1)
返回 123.6。
 
Fix (123.678,2)
返回 123.67。
 
注释:带有单个参数的 Fix 函数(即 Fix (number)),其使用类似于 Visual Basic 的同名函数;Fix (n) 和 Int (number) 除了当 n(数字)为负数时 Fix 返回大于或等于 n 的第一个整数,而 Int 返回小于或等于n的第一个整数之外,它们的作用相同。例如,
Fix (-10.2)
返回 -10。
 
Int (-10.2)
返回 -11。
 
Remainder (num, denom):
Basic 语法和 Crystal 语法。
参数:Numerator(分子)是小数值;Denominator(分母)也是小数值。
返回:小数值
操作:Remainder返回分子(被除数)除以分母(除数)后的余数。在典型的除法运算中,程序将商表示为整数(如果有的话)和最多六位小数组成的数。然而,程序在使用 Remainder时,在内部进行除法运算,然后确定整数商和余数,并仅返回余数。
 
典型用法:可以在进行换算(英尺到英里、件到罗等)时使用此函数。也可以使用它从一个数组中每隔 n-1 个项目就选出一个项目。
下列示例适用于 Basic 语法和 Crystal 语法:
Remainder(12,5)
返回 2。
 
Remainder(16,5)
返回 1。
 
Rem Basic 语法
If Remainder ({file.EXAM#}, 7) = 0 Then
formula = "*****"
End If
//Crystal 语法
 
If Remainder ({file.EXAM#}, 7) = 0 Then
"*****"
Else
""
这会每隔 7 次考试标记一次,以供第二方进行评分。
ToText(Truncate({file.DAYS}/7)) + " week(s), " + ToText(Remainder({file.DAYS},7)) + " day(s)"
返回“9 week(s), 1 day(s)”。将天数转换为周数和天数。例如,如果此字段的值为 64 天,则公式返回的值为“9 week(s), 1 day(s)”。
另请参见:模数 (x Mod y)
 
Sin (number):
Basic 语法和 Crystal 语法。
参数:用弧度表示的角度的数字值。
返回:介于 -1 和 1 之间的数字值
操作:Sin返回一个数字,指定用弧度给出的角度的正弦。以直角三角形为例,它返回指定角对边的长度除以斜边长度。
下列示例适用于 Basic 语法和 Crystal 语法:
Sin (1)
返回 0.8415(四舍五入到 4 位数字)。这是 1 弧度的正弦。
 
Sin (30 * crPi / 180)
返回 0.5。这是 30 度的正弦。在计算正弦之前,该角度乘以 crPi / 180 后转换为弧度。
 
注释:此函数的使用类似 Visual Basic 的同名函数;Sin 所返回的值的范围介于 -1 和 1 之间。
 
Cos (number):
Basic 语法和 Crystal 语法。
参数:用弧度数表示的角度的数字值。
返回:介于 -1 和 1 之间的数字值
操作:Cos返回一个数字,指定用弧度给出的角度的余弦。以直角三角形为例,它返回指定角邻边的长度除以斜边的长度。
 
下列示例适用于 Basic 语法和 Crystal 语法:
Cos (1)
返回 0.5403(四舍五入到 4 位数字)。这是 1 弧度的余弦。
 
Cos (60 * crPi / 180)
返回 0.5。这是 60 度的余弦。在计算余弦之前,该角度乘以 crPi / 180 后转换为弧度。
 
注释:此函数的使用类似 Visual Basic 的同名函数;Cos 返回的值的范围介于 -1 和 1 之间。
 
Tan (number):
Basic 语法和 Crystal 语法。
参数:用弧度表示的角度的数字值。
返回:数字值
操作:Tan返回一个数字,指定用弧度给出的角度的正切。以直角三角形为例,它返回指定角对边的长度除以与该角邻边的长度。
下列示例适用于 Basic 语法和 Crystal 语法:
Tan (1)
返回 1.5574(四舍五入到 4 位数字)。这是 1 弧度的正切。
 
Tan (45 * crPi / 180)
返回 1。这是 45 度的正切。在计算正切之前,该角度乘以 crPi / 180 后转换为弧度。
 
注释:此函数的使用类似 Visual Basic 的同名函数。
 
Atn (number):
Basic 语法和 Crystal 语法。
参数:数字值
返回:用弧度数指定的角度的数字值
操作:Atn 返回一个数字,该数字指定所给的数字参数的反正切。换言之,它返回其正切是所给数字参数的角度。
下列示例适用于 Basic 语法和 Crystal 语法:
Atn (1)
返回 0.7854 弧度的角度(四舍五入到 4 位小数)。要将此角度转换为度,乘以 180 / crPi。例如,Atn (1) * 180 / crPi 等于 45 度。
 
注释:此函数的使用类似 Visual Basic 的同名函数;Atn 返回的值的范围介于 -pi/2 和 pi/2 r弧度之间。
 
Pi:
Basic 语法和 Crystal 语法。
返回数学值 pi,它等于 3.14(如果四舍五入到 2 位小数)。
 
Sqr (number):
Basic 语法和 Crystal 语法。
参数:大于或等于 0 的数字值。
返回:数字值
操作:Sqr 返回给定数字的平方根。
下列示例适用于 Basic 语法和 Crystal 语法:
Sqr (100)
返回 10。
 
注释:此函数的使用类似 Visual Basic 的同名函数。
 
Exp (number):
Basic 语法和 Crystal 语法。
参数:指定乘幂的数字值。
返回:数字值。
操作:Exp 返回一个数字,指定 e(自然对数的底)的乘幂次方。e 的值约为 2.718282。
下列示例适用于 Basic 语法和 Crystal 语法:
Exp (1.5)
返回 e 的 1.5 次方,约为 4.48169。
 
注释:此函数的使用类似 Visual Basic 的同名函数;如果给定的数字参数约大于 705,则会出现数字溢出。
 
Log (number):
Basic 语法和 Crystal 语法。
参数:数字值
返回:数字值
操作:Log 返回一个数字,指定所给数的自然对数。自然对数是以 e 为底的对数,其中 e 约为 2.718282。
下列示例适用于 Basic 语法和 Crystal 语法:
Log (1.5)
返回 0.4055(四舍五入到 4 位数字)。
 
注释:此函数的使用类似 Visual Basic 的同名函数;当您使用以下逻辑时,此函数可计算底为任意值的对数:
LogAnyBase (x,base) = log(x)/log(base)
(x 代表您想计算对数的数字;base 代表您想使用的底。)
 
例如,对于以 10 为底的对数,您将输入以下公式文本:
log(x)/log(10)
 
Rnd:
Basic 语法和 Crystal 语法。
重载:
Rnd ()
Rnd (seed)
参数:seed (种子)是一个可选数字值参数。
返回:一个数字值。
操作:Rnd 返回一个大于或等于 0 并且小于 1 的随机数。如果 seed 等于 0,则 Rnd 返回从前一次对 Rnd 的调用中返回的随机数。如果 seed 未提供或大于 0,则 Rnd 返回内部生成的随机数序列中的下一个随机数。如果 seed 小于 0,则 Rnd 使用此 seed 值启动新的随机数序列,并返回此序列中的第一个值。
 
典型用法:在公式需要随机生成的数字(如进行统计计算或随机选择记录以对报表中的数据进行限制)时,使用该函数。
 
注释:此函数类似于 Visual Basic 的同名函数;您可以不通过指定负 seed 参数从而启用新随机数序列的方法调用 Rnd。如果这样做,程序会使用系统时钟来生成内部 seed;通过调用带负 seed 参数的 Rnd来启用新的随机数序列,然后不带参数(或带有一个正参数)对 Rnd进行调用的理由是:使报表每次看起来都与预览时完全相同。换言之,它使您得以充分利用随机数,但获得的结果可以再现。

  

posted @   IT苦行僧-QF  阅读(547)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示