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进行调用的理由是:使报表每次看起来都与预览时完全相同。换言之,它使您得以充分利用随机数,但获得的结果可以再现。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)