是否有任何伪随机数生成器很容易与心算,心算和手指计数.显然,这限制了相当简单的数学 - 它需要具有平均数学能力的人才能做到,或者可能是程序员的平均能力,而不是数学天才.
我发现最简单的是中间方法,但不仅知道它是一个不好的随机源,它看起来仍然太复杂,没有铅笔和纸.
如果唯一的方法是限制范围,也许它只能输出8位数,那很好.我怀疑其中一个标准的PRNG算法在8位版本中足够简单,但我不知道如何将它们从32位版本简化为8位版本.(我查看的所有内容取决于特殊选择的种子数,这些种子数根据您使用的位数而有所不同,通常只给出32位和64位示例.)
某些Crystal Reports功能无法在同一报表中组合,例如SQL命令对象和服务器端分组.但是,据我所知,内置帮助似乎没有清楚地记录这些冲突.例如,检查其中任何一个功能的帮助页面并未提及它与另一个功能不兼容.我希望能够在我决定使用新功能时能够找到这些冲突,而不是在我去使用其他功能并且该选项显示为灰色时.有没有记录这些冲突的地方?
我特别使用Crystal Reports XI.如果冲突列表记录了每个功能的可用范围和冲突的版本范围,则奖励积分.
我现在还检查了发行说明(安装光盘上的release.pdf),它对这个问题没有任何答案.
我在页眉中有一个公式@InitVars,其中包含以下内容和类似的行:
shared numbervar runWaste:=0;
Run Code Online (Sandbox Code Playgroud)
在详细信息v中,我有一个子报告,其中包含一个公式@SetRunWaste:
shared numbervar runWaste;
if (OnFirstRecord) then
(
if not(isnull({x.x-or})) and
not(isnull({x.y-override})) and {x.y-override} = true then
runWaste:={x.x-or}
else
runWaste:= {x.x}
);
runWaste
Run Code Online (Sandbox Code Playgroud)
我可以看到子报告中该公式的输出是18.00.
但是,在另一个子报告,详细信息az和详细信息w(作为测试)的主报告中,我都有以下公式@test:
shared numbervar runWaste;
runWaste;
Run Code Online (Sandbox Code Playgroud)
在这两个地方,它显示为0.00.
为什么它显示0不是18?
我正在使用Crystal Reports版本11.0.0.895.
我想要做的是对表的外连接,我在其中根据匹配常量从连接表中排除记录,但是保留主表中的记录.例如:
SELECT a.id, a.other, b.baz
FROM a
LEFT OUTER JOIN b
ON a.id = b.id
AND b.bar = 'foo'
Run Code Online (Sandbox Code Playgroud)
预期成绩:
id other baz -- ---------- ------- 1 Has foo Include 2 Has none (null) 3 Has foobar (null)
将它置于过滤条件下,我无法得到相同的结果.如果我使用以下内容:
SELECT a.id, a.other, b.baz
FROM a
LEFT OUTER JOIN b
ON a.id = b.id
WHERE (b.bar IS NULL OR b.bar = 'foo')
Run Code Online (Sandbox Code Playgroud)
我得到这些不正确的结果:
id other baz -- -------- ------- 1 Has foo Include 2 Has none (null)
如果它排除了恰好与B记录匹配的A记录,其中bar ='foobar'.我不希望这样,我希望A出现,但在这种情况下B为空.
表B将有多个需要排除的记录,所以我不认为我可以在Crystal端过滤这个,而不会进行大量的处理以避免来自表A的重复记录的问题.
我不能使用SQL命令对象,因为我们运行报告的第三方应用程序似乎阻塞了SQL命令对象. …