【问题标题】:Delphi-FastReport VCL 5 Conditional highlightingDelphi-FastReport VCL 5 条件高亮
【发布时间】:2017-08-12 18:13:23
【问题描述】:

我已阅读 this manual 并关注它,但 highlighting 不起作用。

我有什么?

  • 创建新的 VCL 应用程序。

  • 在表单中删除 TEditTButton 组件(以传递值)。

  • 在表单上添加TfrxReport

  • 在设计模式下打开报表。

  • 在报告页面中添加ReportTile 乐队。

  • TfrxMemoView 放入报告标题栏。

  • 添加条件:

     1- Value <= 0 -> Red color
     2- Value > 0 -> Green color
    

即使值为&gt;0&lt;=0,备忘录的填充颜色仍为Black

问题:

为什么这个条件不起作用?以及如何使条件起作用?

更新:

该值被传递给TfrxMemoView 组件:

procedure TForm1.Button1Click(Sender: TObject);
Var Mem : TfrxMemoView;
begin
Mem := frxReport1.FindObject('Memo1') as TfrxMemoView;
Mem.Text := Edit1.Text;
frxReport1.ShowReport();
end;

【问题讨论】:

  • 您的TfrxMemoView 对象是否有数字Value?您的屏幕截图上似乎是空的。
  • @Victoria 我将值从TEdit 组件发送到TfrxMemoView 组件,将更新问题。
  • 不要手动设置 FastReport,但不应该是应该设置的 Value 属性(不是 Text)吗?如果是这样,它应该是变量数据类型,可能期望该表达式的整数数据类型而不是文本,所以也许你需要写Mem.Value := StrToInt(Edit1.Text);
  • @Victoria 如你所见,我在手册中找到的内容。
  • 我在那里看不到 Delphi 代码示例。只有那些荧光笔条件的表达式示例。

标签: delphi delphi-10-seattle fastreport


【解决方案1】:

没有应用任何规则,因为 Value 属性仍然是 NULL。要从 Delphi 代码中分配一个常量值,您可以编写一个常量表达式,例如:

procedure TForm1.Button1Click(Sender: TObject);
var
  Memo: TfrxMemoView;
begin
  Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
  Memo.Text := Format('[%s]', [Edit1.Text]);
  frxReport1.ShowReport;
end;

在上面的代码中,我省略了检查是否找到控件。而且,您需要小心输入文本。它只接受格式为不会在小数分隔符中与 ExpressionDelimiters 属性中定义的分隔符冲突的浮点值。

或者也简单地设置 Value 属性:

procedure TForm1.Button1Click(Sender: TObject);
var
  Memo: TfrxMemoView;
begin
  Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
  Memo.Text := Edit1.Text;
  Memo.Value := StrToFloat(Edit1.Text);
  frxReport1.ShowReport;
end;

在这一项中,检查是否找到控件也丢失了。并且在那里不需要转换为浮点数。 Value 可以只是一个可转换为 float 的字符串。

【讨论】:

  • 或使用Memo.Text := '[' + StrToInt(Edit1.Text) + ']';
  • @gpi 真的吗?将Integer 分配给WideString?没门。我的你的意思是Memo.Text := '[' + Edit1.Text + ']';,这是真的。
  • 是的,我的意思是Memo.Text := '[' + Edit1.Text + ']'
  • @gpi,是的,写表达式其实也不错。您只需要小心小数与表达式分隔符。已更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多