FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何在报表控件 FastReport VCL中,制作带有产品成分的价格标签

来源:   发布时间:2023-09-27   浏览:次

当打印标签、价格标签和其他尺寸有限的格式时,此类报告的设计方法受到限制,这是一个挑战。在这种情况下,文本对象只能增长到一定的大小,并且不可能将文本分割或迁移到另一个页面。我们如何才能在不删除信息的情况下将产品成分和其他数据放在单个标签上?答案很简单——减少内容!

    FastReport.VCL下载

从2023.3版本开始,我们在报表引擎FastReport VCL中添加了另一个强大的工具——通过缩放内容来减少“文本”对象中的文本。

让我们看一个带有产品成分的价格标签的简单示例。这种价格标签是使用标签打印机打印在准备好的纸张上,因此打印文本的数量存在物理限制。但作文可以从 3 个字到几十个字不等。

为了创建这样的报告,我们将使用创建多列报告的功能。您可以在用户手册中找到如何创建此类报告。让我们以创建一个包含两列的简单报告为例,如下图所示。我们不会深入研究如何创建报告,而是将重点放在必要的功能上。

设计器中的报告模板

让我们运行该建筑物的报告。

构建报告

结果,预览显示该表格包含由几十个单词组成的产品,并且它不适合当前字体大小的价格标签。解决这种情况的方法显然是减小字体大小。

让我们返回到报表设计器,选择对象和不适合边框的文本,然后打开对象检查器。

对象检查器中的属性

我们需要的功能由ContentScaleOptions属性集控制。

自动缩放— 默认情况下禁用,该属性设置自动文本缩放模式。

casStatic 模式允许缩放文本,直到它适合容器或达到约束的极限(Constraints.MaxStepValueConstraints.MinStepValue 属性)。

casStatic模式非常适合在带有价格标签的报告中使用,让我们将其打开并运行报告以进行构建。

构建报告

根据生成的报告,您可以看到文本不仅被缩放,而且还增大了大小。这可以让你装满一个大容器。这对于某些报告可能有用,但在本例中则没有必要。让我们返回到报表设计器并禁用ContentScaleOptions.ScaleType属性的cstGrow标志。让我们运行该建筑物的报告。 、

构建报告

现在,如果文本不适合对象,FastReport VCL 会打印价格标签并缩小字体大小。我们仅通过切换两个属性就达到了预期的结果。

带标签的示例是最常见的示例之一,但有时需要将带有不断增长的对象的带不间断地放置在页面上。如果在这样的带上有多个带有文本的对象,我们可以牺牲其中一些对象的字体大小并压缩整个容器。让我们使用一个带有随机数据的简单示例来看看它是如何工作的(您可以在此处下载模板)。

设计器中的报告模板

在此示例中,每个文本对象输出大段文本,从而拉伸和移动底层对象。使用演示数据运行报告后,报告将类似于屏幕截图。

构建报告

正如您所看到的,如果有大量文本,则该区域将分为两页(在我们的例子中,对象中有一个中断)。如果我们需要将数据放在一页上怎么办?设置为casStatic 的自动缩放模式不适合这种情况,因为对象具有在报告生成期间计算的动态高度。此外,拉伸的物体会取代下面的物体。对于这种情况,FastReport VCL有另一种对象缩放模式,通过将AutoScale设置为casDynamic属性来启用。

我们将MainText对象的AutoScale属性设置为casDynamic ,看看报表渲染结果。

构建报告

MainText对象的大小减小,整个区域适合一页。但是,如果您需要跨多个对象按比例压缩文本怎么办?

让我们将BottomText对象的AutoScale属性设置为casDynamic并查看报告构建结果。

构建报告

结果,两个对象都减小了字体大小,直到带完全适合页面。

FastReport VCL允许您控制对象压缩。每次传递对象的周期都会将对象中的字体减小给定的步长,该步长是在ContentScaleOptions.StepValue属性中为对象设置的。这将一直持续到区域适合页面或达到极限约束(Constraints.MaxStepValueConstraints.MinStepValue属性)。

此外,每个对象只能在传递对象的给定迭代中进行处理。如果您希望前两次缩减迭代仅处理BottomText对象,只需设置ContentScaleOptions属性即可。对于Constraints.MinIterationValue方法,将值 3 分配给MainText对象(它将跳过前两次迭代)。呈现报告后,它将具有以下外观。

构建报告

正如您所看到的,在前两次迭代中,我们的报表引擎仅压缩了BottomText对象,因此,其内容的比例较小。从视觉上看,迭代可以表示如下。

构建报告

这种缩放内容(或文本)的迭代方法允许报告引擎确定要压缩的对象的优先级以及以什么顺序来实现最佳结果。

这种方法会对大量对象的报告生成速度产生负面影响。因此,可以通过设置TfrxReport.EngineOptions.ContentScaleMaxIterations属性(默认为 10)在报表引擎级别限制迭代次数。

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3583.html

联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


扫码咨询
电话咨询
023-68661681
返回
顶部