[英]Crystal reports syntax error
我尝试使用Crystal Reports for dot net制作一个简单的报告。 但是它每次都返回错误的值“ 5”。 正确的值为“ 3”。 这是我的结果。
Desktop
Desktop
Laptop
Laptop
Laptop
Total Laptop 5
下面是我使用的代码。
Local numberVar cnt := 0:
Local stringVar stv := {Table_1.Property};
Local numberVar strLen := Count({Table_1.Property});
Local numberVar i;
For i := 1 to strLen do
(
If stv = “Laptop”
Then cnt := cnt + 1
Else cnt := cnt + 0
);
cnt;
该代码在哪里出错? 谢谢:)
假设记录打印在详细信息部分中,并且总计公式位于页脚部分,您将得到错误的结果,因为在for
循环中,由于页脚在在详细信息部分之后呈现。
作为解决方案,您可以使用以下方法之一:
用2个公式求解。
创建一个名为ItemCountDetails的公式,并添加以下代码。
WhilePrintingRecords; Shared NumberVar Cnt; if RecordNumber = 1 then Cnt:= 0; if {Table_1.Property} = "Laptop" then Cnt:= Cnt + 1;
将公式字段拖放到详细信息部分的某个位置(将在其中打印记录),然后通过右键单击字段->格式对象->通用选项卡->并选中抑制复选框来抑制它。
创建另一个名为ItemCountFooter的公式,并添加以下代码。
Shared NumberVar Cnt;
将新的公式字段拖放到页脚部分。
摘要和分组的解决方案。
右键单击“表_1。属性的计数”字段->设置对象格式->通用选项卡->单击抑制复选框右侧的x + 2按钮,并在其中添加以下代码
if GroupName({Table_1.Property}) <> "Laptop" then true else false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.