2014-12-31 24 views
0

我有一个水晶报表与数据库命令:不能重新映射域 - 地图领域的窗口缺少新表

CR Database Expert

的命令有可以被删除,从表中读取连接子句在数据库中,因为它表示静态数据。我这个表(称为_System)添加到数据库专家:

New table added

现在我编辑的命令删除加入并引用此表的列。因为这取决于这些列报告字段不再映射,这将导致出现映射字段窗口:

CR map fields

...不具备的新表中它。如果我取消了这个,我就回到原来的地方。如果我在没有映射的情况下点击“确定”,报告中所有未映射的字段都将被删除(可以说......我不期待这个> :()

我试过在命令和新表格之间添加链接,爽口报告参数,但这些都没有影响。

一种解决方法是手动替换报表中的每个领域,但这种劳动强度非常大。


这是命令的轮廓之前:

SELECT ACT.Account_Code, ACT.Company, ACT.FName, --etc 
     STM.CompanyName AS 'DLRName', STM.Address_1 AS 'DLRAddress', STM.City AS 'DlrCity' --etc 
FROM Accounts AS ACT 
    JOIN _System AS STM ON 1 = 1 
GROUP BY ACT.Account_Code, ACT.Company, ACT.FName, --etc 
     STM.CompanyName, STM.Address_1, STM.City --etc 

而经过:

SELECT ACT.Account_Code, ACT.Company, ACT.FName, --etc 
FROM Accounts AS ACT 
GROUP BY ACT.Account_Code, ACT.Company, ACT.FName --etc 

我已删除的_System表JOIN,和所有引用的列。

回答

1

它似乎不会将您的_system表识别为新来源。

我想:

1)留下您的命令对象SQL不变&获取问题制定出与_System表,然后

2)确保您能够建立命令对象之间的连接字段和_System表字段,最后是

3)然后重新映射字段。

第二步我怀疑是问题的根源,因为您的连接条件是“ON 1 = 1”,我认为这意味着您可能在两个表中都没有公共密钥字段。

请注意,您的原始命令SQL选择STM.Companyname AS'DLRName'。

因此,水晶现在知道一个叫DLRName场的,但不知道一个叫公司名称字段的,因此它不能使DLRName之间的关联在旧的源代码,并在公司名称新中源...

与从命令对象移动到附加表中的其余字段类似。如果没有名称匹配存在... Crystal不能建立连接。然而...它会列出报告中的所有不匹配字段以及识别数据源中所有未使用的字段,并允许您自己指定匹配项。

但它不......它告诉我,尝试附加/打开_System表时出现了问题。因此,您需要先解决问题,然后再进行现场调整。

如果这不能让你通过...然后显示一些示例数据,所以我可以看到这两个表是如何相关的(确保有一些例子存在哪里有两个表中的行匹配)。

+0

这两个表完全没有关系,这就是为什么我将_System带出连接。不幸的是,没有共同的关键字段。我尝试在命令中的aliased _System列与表中的实际列之间添加链接,但这不适用于地图字段窗口。 它似乎承认_System作为一个新的来源,因为关闭数据库专家给出“多个数据源或存储过程已用于此报告”的警告。 – Aaroninus

+0

好的...我错过了这里的大图。在那里使用_System表的目的是什么?它为你做了什么?当您运行报告的原始版本时,这些字段是否已填充? –

+0

_System表包含用于填充报告标题的静态信息([请参阅示例1](http://kenhamady.com/cru/archives/716))。我试图将它从命令中分离出来,而不必手动重新添加所有报告对象。 – Aaroninus