公式字段未在水晶报告8.5中显示

时间:2015-06-04 09:00:38

标签: sql-server crystal-reports crystal-reports-8.5

我使用旧版本的水晶报告8.5,而且我在细节中显示字段时遇到问题。

This report uses 6 tables in SQL Server database:  
2 in database1:
tblRecibo, tblCanaisDistribuicao

3 in database2: 
tblPessoas, tblMoradas, tblCodPostal, tblRamos

tblRamos.CodRamo是一个int数据类型,我想在详细信息部分显示它。

@N_Apolice

left(CSTR({tblRamos.CodRamo}, "000"),3)

似乎我无法从此表中获取任何字段,但我可以在Group-Header部分中访问同一数据库的其他表中的字段(此报告使用来自2个不同数据库的表,而不是在两个数据库上重复使用的表名。)

已经按下了几次验证数据库按钮......但问题仍然存在...是否有办法强制它特别检查此表?或者特别是这个数据库?(因为有2个,它可能只是检查另一个)

我已经在SQL中测试过,如果获取数据的查询应该返回字段,那么它确实......

修改
我开始重做整个报告,显然只有当我将代码添加到另一个公式字段(使用相同数据库但其他数据表的字段)时,公式字段才会正确显示其值。

@Nome

Ucase({tblPessoas.Nome} & " " & {tblPessoas.NomeIntermedio} & " " & {tblPessoas.Apelido})

@Morada

Ucase({tblMoradas.Morada})

@CPostal

IF ISNULL({tblMoradas.LocPostal}) THEN
{tblMoradas.CPostal} & "-" & {tblMoradas.CPostalAux}
ELSE
{tblMoradas.CPostal} & "-" & {tblMoradas.CPostalAux} & " " & {tblMoradas.LocPostal}

在我看来这完全没有意义......

EDIT2
这3个字段位于Group Header部分 而另一个在细节部分......可能是问题吗?

Sections

Report

由于某种原因发生冲突的字段是标题上的@N_Apolice(详见)和@Nome,@ Morada,@ CPostal。

详细信息部分中的所有其他字段来自其他数据源并且运行良好

enter image description here

1 个答案:

答案 0 :(得分:0)

Sub Mapping()

Dim Map As Worksheet, _
    Ath As Worksheet, _
    LastAth As Long, _
    LastMap As Long, _
    CLastAth As Long, _
    x As Integer


Set Ath = Sheets("Athena Greek God")
Set Map = Sheets("Mapping")
LastMap = Map.Cells(Map.Rows.Count, "D").End(xlUp).Row
LastAth = Ath.Cells(Ath.Rows.Count, "A").End(xlUp).Row

Ath.Columns("A:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Ath.Range("A1:D1").Value = Array("EDITED", "EDITED 2", "EDITED 3", "EDITED 4")
Ath.Columns("A:D").AutoFit

With Ath.Range("A1:D" & LastAth).Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.149998474074526
    .PatternTintAndShade = 0
End With


CLastAth = Ath.Cells(1, Ath.Columns.Count).End(xlToLeft).Column

For x = CLastAth To 1 Step -1
    If Ath.Cells(1, x) <> "The Principals Book" Then
    Else
        Ath.Range("D2: D" & LastAth).Value = Ath.Range(Ath.Cells(2, x), Ath.Cells(LastAth, x)).Value
    End If
Next x

Set Ath = Nothing
Set Map = Nothing

End Sub

兄弟,我可以将它视为与你的牌桌明显的联系问题......

检查表格I can write as comment but its is becoming huge and wrote as answer tblPessoas, tblMoradas, tblCodPostal之间的关联...因为您的公式tblRamos来自表格Morada and CPostaltblMoradas来自表格Nome,最后问号字段tblPessoas来自N_Apolice,它们都属于同一个数据源......

现在主要问题是当添加3个公式然后一个详细信息没有显示...我认为是因为链接因为当你包括除tblRamos之外的其他表中的字段然后从那些表中链接将被包含在查询中,该查询阻止tblRamos中的数据不会在报告中移位.....

现在当删除3个公式并且包含来自tblRamos的字段时,这3个表不包含在查询中,这是您可以看到某些数据的原因...

您可以通过首先检查包含3个表的查询并再次删除这些表来尝试自己。如果您仍然不确定,那么在数据库上触发相同的查询并检查提取的行..

解决方案:

我建议的解决方案是首先检查链接,如果有来自其他表的tblRamos的内连接,则删除它并包括外连接到表tblRamos并检查结果并根据我应该工作。它的工作然后检查indetail数据库链接和你想要显示的数据。据我所知,这应该有效。

如果我的方法适合你,请告诉我。