这个水晶报告程序被丢弃在我的腿上,我是一个崭新的品牌。我理解这个概念,但我在这里碰到了一堵墙。
还有一个类似的问题: Crystal Reports equivalent of 'WHERE'
但它和答案都针对(似乎)"总计"列,而我想只是只显示行中的一列(在这种情况下,如果" CostType"等于0)。
我有两个数据表我正在阅读以创建此报告。他们通过公共列名称(ItemKey)加入。不幸的是,在第二个表中,存在同一项的多个记录。我只想要CostType为0的项目。
这在SQL中非常简单,即使对于像我这样的初学者也是如此,但我无法弄清楚如何有效地说:"只有在CostType为0和#34时才显示项目。与Crystal Reports。
Item_Cost表(示例):
ItemKey Special Cost CostType
001 TRUE 55.00 0
002 FALSE 10.00 0
003 TRUE 20.00 1
项目表(示例):
ItemKey Description Mode
001 Whatever EE
002 Random AB
003 Unimportant GE
出现的内容:
Item Description Mode
Box Whatever EE
Square Random AB
Circle Unimportant GE
我想要展示的内容:
Item Description Mode
Box Whatever EE
Square Random AB
我希望这一切都有道理。基本上,如果这是一个SQL查询,我只是说" WHERE CostType = 0"最后,我不会得到所有其他具有不同成本类型的项目。
我应该提到这完全由Crystal Reports处理。我没有使用SQL字符串并将其传入或者其他内容。显示窗口的功能如下:
Dim PartsDemandReport As CrystalDecisions.CrystalReports.Engine.ReportDocument = New crptIndentedBomXLBom
PartsDemandReport.SetDataSource(GLOBAL_VARIABLES.GlobalBomIndented)
Dim CrystalReportViewerForm As New frmCrystalReportViewer
CrystalReportViewerForm.CrystalReportViewer1.ReportSource = PartsDemandReport
CrystalReportViewerForm.Show()
PartsDemandReport = Nothing
如果有一种方法可以简单地强制Crystal Reports添加" WHERE CostType = 0"那就太棒了。提前谢谢。
答案 0 :(得分:6)
有几种方法可以做到这一点:
CostType not equal to 0
,那么您可以直接提供select expert
作为where clause
作为水晶报告。示例:强>
转到Report ---> Selection Formula ---> Record
这个打开的公式窗口,添加到下面的行
CostType = 0
这将确保只从数据库中恢复成本类型= 0
2.如果您需要cost type <> 0
报告中的任何位置。然后为Item
,Description
和Mode
列添加以下条件
示例强>
@Item:
if cost type = 0
then <<Database Item field >>
将其放在Item列的详细部分中。
对于其他列也一样。