【问题标题】:String Length in FastReportsFastReports 中的字符串长度
【发布时间】:2012-07-18 07:34:11
【问题描述】:

我正在从 Ms-Sql 数据库中提取数据。但在将它们打印到我的报告中之前,我想检查组件 frMaster."column1" 和 frMaster."column2" 的长度。我怎样才能做到这一点? Column1 和 Column2 是字符串。如果我的字符串长度超过 10 个字符,我的备忘录必须增加它们的高度,如果不是,它们保持不变。此代码无效,备忘录保持不变。我试图做这样的事情,但它在打印事件之前不起作用:

    if (Length(<frMaster."column1">) > 10)  or (Length(<frMaster."column2">) > 10)                          
   then 
           begin 
                   Memo34.Height:= 0.7;
                   Memo33.Height:= Memo33.Height + 0.35;
                   Memo20.Top := Memo20.Top + 0.35;
                   Memo21.Top := Memo21.Top + 0.35;
                   Memo35.Top := Memo35.Top + 0.35;
                   Memo36.Top := Memo36.Top + 0.35;
                   Memo22.Top := Memo22.Top + 0.35;
                   Memo39.Top := Memo39.Top + 0.35;                           

           end;

【问题讨论】:

  • -1 “它不起作用”没有传达任何有用的信息。要精确。仔细详细地解释您的代码以何种方式失败。包括您希望看到的内容和实际看到的内容的详细信息。
  • 如果我的字符串长度超过 10 个字符,我的备忘录必须增加它们的高度,如果没有,它们保持不变。此代码无效,备忘录保持不变
  • 请不要在评论中添加这些详细信息。单击编辑按钮并改进问题。
  • @user1533838 已经有一段时间没有使用 FR 了,但是 IIRC 在您添加到报告中的组件上有一些不错的属性,您可能想检查一下,还有很多活动。

标签: string delphi


【解决方案1】:

您可以使用数据树中可用的长度函数或作为包含在代码中的函数:

您可以像在 Delphi 中一样通过覆盖备忘录的事件处理程序来使用它:

啊!我懂了。你用了它,但它没有用。对!好像我以前也有过这种情况。我想我可能做了一些事情,比如让备忘录只打印文本,然后可能是文本的长度,然后可能将事件移动到数据带,然后可能确保数据带的属性 Stretched 设置为 True 并制作确保备忘录的属性 StretchMode 设置为 smActualHeight 或 smMaxHeight。

【讨论】:

  • Thahks,我已经建立了解决方案。我已将属性 StretchedMode 设置为您所说的其中之一,但问题仍然出现。我找到了另一种方法。我刚刚添加了一份备忘录,将 Visible 属性设置为 false,并具有我想要的大小。如果我的字符串长度超过 10,我隐藏第一个备忘录,另一个备忘录我将 Visible 属性设置为 true 并将值分配给我的备忘录。这东西效果更好!
猜你喜欢
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多