Crystal Reports - 如何动态更改图像大小

问题描述 投票:0回答:2

我在 Crystal Reports 中有一个自定义图像(我以文本形式发送 URL 并在图像属性中使用它),它显示得很好。问题是,图像可以是两种尺寸之一。好处是,我通过发送到 Crystal Reports 的参数知道将显示哪种类型的图像。

因此,我将

URL: "www.x.com", Type: "A"
作为参数发送。我唯一的问题是,既然在 Cystal Reports 中我知道图像的类型,因此知道它应该具有的大小,我该如何更改图像的大小?

我想我可以制作两个不同的报告,除了特定图像的大小之外,完全相同,但是有没有办法在 Crystal Reports 本身内动态更改其大小?

crystal-reports
2个回答
0
投票

选项 1:使用两个部分(分割当前部分)。仅显示/隐藏其中之一。

选项 2:此处列出的至少一个第 3 方 Crystal Reports 用户函数库 (UFL) 提供即时调整图像大小的功能。

因此,在图形位置属性中,您将使用 UFL a) 将图像下载到本地硬盘驱动器,b) 调整其大小,以及 c) 获取调整大小的图像。

UFL 方法的优点是它还提供其他有用的选项,例如图像裁剪。


0
投票

在 Crystal 中,如果右键单击图像并选择“设置对象格式”,您将看到一个选项“可以增长”。这会自动将图像大小调整为图像的实际大小,如果太大,可能会扭曲您的报告。选择“图片”选项卡,您将看到缩放宽度和高度属性,这将解决此问题。但是,这些无法在运行时设置,这会导致您的问题。

解决方案:

静态图像:

如果您知道将有 2 个图像,只需创建 2 个不同的部分,并将第一个图像放在第 1 部分中,将第二个图像放在第 2 部分中,根据需要缩放每个图像,然后根据参数抑制任一部分以仅显示您想要的图像想要显示(在该部分的部分专家中使用抑制旁边的 x-2 按钮选项)。 Turo 在上面的评论中提到了这一点。

动态图片:

如果你想在运行时改变图片(例如每个客户端都有自己的标志),你需要在运行时设置图片。您可以按如下方式执行此操作:

  1. 创建参数“logoLocation” - 例如字符串。
  2. 在报告顶部为徽标创建一个部分,并在该部分中插入图片。您可以将“Can Grow”设置为 true,或者确保传递的图像始终具有正确的尺寸(在这种情况下,转弯可以增长)。
  3. 右键单击图片,设置对象格式,导航至图片选项卡。单击图形位置旁边的 x-2 按钮并将其设置为您的参数。 注意:您不能使用公式,它会插入公式值而不是在运行时动态读取公式值。
  4. 从您的应用程序代码中将参数设置为图像的文件路径“C:\Images\MyImage.bmp”。

现在,正如前面提到的,您无法在运行时设置缩放比例。因此,您只有 2 个选择 - 留下可以继续生长,并确保图像大小合理,或者在加载之前在图像编辑器中完美地将图像创建为适当的大小。我建议后者。

最后,我建议设置一个公式来抑制包含图像的部分。如果参数为“”(空白 - 不需要徽标)或页码 > 1,则抑制

希望这有帮助。祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.