繁体   English   中英

Delphi-FastReport VCL 5条件突出显示

[英]Delphi-FastReport VCL 5 Conditional highlighting

我已经阅读并遵循了该手册 ,但是highlighting无效。

我有的?

  • 创建新的VCL应用程序。

  • 将窗体中的TEditTButton组件拖放(传递值)。

  • TfrxReport上放置一个TfrxReport

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

  • 在报告页面中放置一个ReportTile带。

  • TfrxMemoView放到ReportTitle区域中。

  • 添加条件:

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

备注的填充颜色即使值>0<=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;

由于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;

在这一步中,还检查是否找到了控件。 并且在那里不必转换为float。 可以只是可转换为浮点数的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM