我有一个水晶报表,其中包含一系列绝对引用的文本文件。每个正文行中都引用了一个文本文件。
例如:
line1 c:\file1.txt
line2 c:\file2.txt
有没有办法在Crystal中显示这些文件的内容?
例如,我希望每个水晶体行都显示来自参考文本文件的文本。
我正在使用Crystal Reports 11与非标准数据库连接器(dataflex)。
我有一个水晶报表,其中包含一系列绝对引用的文本文件。每个正文行中都引用了一个文本文件。
例如:
line1 c:\file1.txt
line2 c:\file2.txt
您需要设置一个文件DSN(在XP中,它位于控制面板/管理工具/数据源(ODBC)下),然后使用文件DSN(Microsoft Text Driver)作为ODBC(RDO)连接的数据源。
我在我的计算机上按照以下方式设置了此测试场景:
**File 1**
column1
1row1
1row2
1row3
**File 2**
column1
2row1
2row2
2row3
我设置了文件dsn指向C盘,在数据源屏幕上,我将file1.txt和file2.txt添加到选定的表中。然后最简单的方法是清除表格的链接,以便它提取每一行。它会警告你有多个起始点。我通常不建议这样做,但在这种情况下可以工作,并且由于它不是从数据库报告,所以可能并不是世界末日。如果您忽略起始点消息,然后将字段添加到报告中,运行时您应该会得到以下输出:
1row1 2row1
1row1 2row2
1row1 2row3
1row2 2row1
1row2 2row2
1row2 2row3
1row3 2row1
1row3 2row2
1row3 2row3
通过这种方式,您可以更改分组以获得所需的输出。
您也可以使用相同的连接来连接子报表,而不是让主报表从file1.txt中提取信息,然后在报表页脚中放置一个从file2.txt中提取信息的子报表。这种选项不会对文本进行汇总,但您仍将在同一报表中拥有它。
希望这能对您有所帮助。
这比你想象的要容易。在我写这篇文章之前,我自己就设置了一个来确保我给出了正确的步骤。使用CR版本XI和一个.txt文件,我按照以下步骤进行:
我猜如果你有一个以文件名为参数并返回该文件内容的函数,你可以在Crystal Report公式中使用该函数。
我对当前的CR不太熟悉,距离我上一次使用它已经过去好几年了(我上一次使用的是第8版)。在我使用的版本中,这样的函数并没有内置。那时候,你需要做的是创建一个包含所需函数的UFL(用户函数库)。如果我没记错的话,你需要使用COM来完成此操作。
现今,我猜你可以使用其他机制扩展CR,比如编写.NET代码?
我建议你在CR文档中搜索UFL这个术语。
另一个建议: