我有一个水晶报告,其中包含绝对引用的文本文件列表。每个正文行中都引用了一个文本文件。
e.g。
line1 c:\file1.txt
line2 c:\file2.txt
有没有办法在Crystal中显示这些文件的内容?
即。我希望每个水晶体线显示引用文本文件中的文本。
我正在使用Crystal报表11和非标准数据库连接器(dataflex)。
答案 0 :(得分:4)
您需要设置文件dsn(在XP中位于控制面板/管理工具/数据源(ODBC)下),然后将文件dsn(Microsoft文本驱动程序)用作数据源作为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提取的报表页脚中。此选项不会整理文本,但您仍然可以在同一报告中使用它。
希望这会有所帮助。
答案 1 :(得分:1)
这比你想象的要容易。我在写这篇文章之前就自己设置了一个,以确保我给你正确的步骤。使用CR版本XI和.txt文件,我按照以下步骤操作:
答案 2 :(得分:0)
我想如果你有一个函数将文件名作为参数并返回该文件的内容 - 你可以在Crystal Report公式中使用该函数。
我对目前的CR不熟悉,自从我上次使用它已经好几年了(我上次使用的是版本8)。在我使用的版本中,没有内置这样的功能。那时你需要做的是创建一个包含你需要的功能的UFL(用户函数库)。如果我没记错的话,你必须使用COM来做到这一点。
在这个时代,我猜你可以使用其他一些机制扩展CR,也许是编写.NET代码?
我建议您在CR文档中搜索UFL这个词。
答案 3 :(得分:0)
另一个建议是:
答案 4 :(得分:0)
您可以设置文件dsn。但这是针对表格文件数据,而不是文本。
这些文字文件有多大?您想显示每个文件的全部内容吗?
从水晶中动态读取文件可能没有简单的方法。您很可能必须将数据集推送到包含文件内容的报告。