如果数据碰巧超过8个字符,我写了一个公式来截断Crystal报表中的数据。例如,123456789
变为*23456789
数字查看时截断数据;在导出时包含所有数据
现在我需要以某种方式保存导出时的原始数据。因此,Crystal Report Viewer应截断为8个字符,但在导出时,无论大小如何,都应显示完整数据。
看起来唯一的方法是使用额外的导出按钮和参数来切换截断行为 - 不幸的是这是不可能的。我还能如何实现这种行为?
如果数据碰巧超过8个字符,我写了一个公式来截断Crystal报表中的数据。例如,123456789
变为*23456789
数字查看时截断数据;在导出时包含所有数据
现在我需要以某种方式保存导出时的原始数据。因此,Crystal Report Viewer应截断为8个字符,但在导出时,无论大小如何,都应显示完整数据。
看起来唯一的方法是使用额外的导出按钮和参数来切换截断行为 - 不幸的是这是不可能的。我还能如何实现这种行为?
有一种称为显示的格式公式。
右键单击数据,然后在第一页上格式化对象,您将看到“显示字符串”。
在那里使用您的公式编辑数据的显示。
请注意,这将在水晶报表查看器,pdf导出和非数据excel导出中编辑报表的显示。
CSV和数据只有excel导出将与全部数据一起导出。
你的问题归结为“水晶报表是否可以检测到它是否正在导出?” - 据我所知,它不能这样做。
也就是说,您可以通过添加额外的参数来达到相同的效果。在你的情况下,你需要的只是一个布尔值,我们称之为Truncate
。然后使用Truncate
来确定您的公式是否运行。想要导出时关闭它,当您只想查看时打开它。
If {?Truncate} = 0 Then
// Your formula here
Else
// Unformulated field
如果你走这条路线,你不需要使用完全独立的按钮。只需添加Truncate
以及其他参数。
我发现了一个格式公式“显示”。使用我的公式就可以显示*号码,而仅导出数据格式(即仅用于csv,excel数据)将显示完整的数字。谢谢你的提示! – gmoney
只是要说清楚,你的意思是说你不能添加额外的参数?或者你不能添加额外的按钮? – 4444
不能添加额外的按钮。根据我的研究,似乎是唯一的方法来发现报告是否“导出” – gmoney