[英]Delphi-FastReport VCL 5 Conditional highlighting
我已经阅读并遵循了该手册 ,但是highlighting
无效。
我有的?
创建新的VCL应用程序。
将窗体中的TEdit
和TButton
组件拖放(传递值)。
在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.