提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2021-04-15 11:45:07.813|阅读 128 次
概述:本文详细介绍了如何在交互式报表中,定义对鼠标单击预览窗口中任何报表对象的反应。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的报告和文档创建VCL库。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。
近日,FastReport VCL更新至v6.9,在新版本中,在PDF导出中增加了对以下对象的交互式表单支持:文本,复选框和图片。能够通过InteractiveFormsFontSubset属性将所需的字形仅包含在交互式形式中。同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)
在交互式报表中,可以定义对鼠标单击预览窗口中任何报表对象的反应。例如,用户可以单击数据行,从而运行包含所选行的详细数据的新报告。
任何报告都可以互动。为此,您只需要创建一个TfrxReport.OnClickObject事件处理程序。以下是此处理程序的代码示例:
Pascal:
procedure TForm1.frxReport1ClickObject(Page: TfrxPage; View: TfrxView;
Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);
begin
if View.Name = 'Memo1' then
ShowMessage('Memo1 contents:' + #13#10 + TfrxMemoView(View).Text);
if View.Name = 'Memo2' then
begin
TfrxMemoView(View).Text := InputBox('Edit', 'Edit Memo2 text:', TfrxMemoView(View).Text);
Modified := True;
end;
end;
C ++:
void __fastcall TForm1::frxReport1ClickObject(TfrxView *Sender,
TMouseButton Button, TShiftState Shift, bool &Modified)
{
TfrxMemoView * Memo;
if(Memo = dynamic_cast <TfrxMemoView *> (Sender))
{
if(Memo->Name == "Memo1")
ShowMessage("Memo1 contents:\n\r" + Memo->Text);
if(Memo->Name == "Memo2")
{
Memo->Text = InputBox("Edit", "Edit Memo2 text:", Memo->Text);
Modified = true;
}
}
}
在OnClickObject处理程序中,您可以执行以下操作:
同样,可以为点击定义不同的反应。例如,它可以运行新报告。有必要注意以下几点。一个TfrxReport组件只能在预览窗口中显示一个报告。这就是为什么应该在单独的TfrxReport对象中或在同一对象中运行报表,但是必须删除当前报表的原因。
为了向最终用户提供有关可点击对象的提示,我们可以在鼠标光标经过预览窗口中的可点击对象时对其进行修改。为此,请在报表设计器中选择所需的对象,并将其cursor属性设置为crDefault以外的其他值。
另一个细节涉及定义可点击对象。在简单的报表中,可以在对象的名称或其内容中定义它。但是,这并不总是在更复杂的情况下执行。例如,应在选定的数据行中创建详细的报告。用户单击内容为“ 12”的«Memo1»对象。该对象指的是什么数据线?这就是为什么您应该知道主键,它清楚地标识了这一行的原因。FastReport可以为每个报表的对象分配一个字符串,其中包含任何数据(在本例中为主键的数据)。此字符串存储在TagStr属性中。
让我们通过一个报告示例来说明此过程,该示例包含在FastReportDemo.exe-“简单列表”演示中。这是公司的客户列表,其中包含诸如“客户名称”,“地址”,“联系人”等数据。数据源是DBDEMOS演示数据库中的“ Customer.db”表。该表具有一个主键,即«CustNo»字段,该字段未在报告中显示。我们的任务是通过单击完成的报告中的任何对象来确定其引用的记录,这意味着获取主键的值。为此,只需TagStr在“主数据”区域中的所有对象的属性中输入以下值:
[Customers."CustNo"]
在报表的构建过程中,TagStr属性的内容的计算方法与文本对象的内容计算方法相同;这意味着将用变量的值代替所有变量。在这种特殊情况下,变量是括在方括号中的变量。这就是为什么TagStr在创建报表后,“ 1005”,“ 2112”等类型的行将包含在主数据上的对象的属性中的原因。从字符串到整数的简单转换将为我们提供主键的值,通过它可以找到所需的记录。
如果主键是复合键(即它包含多个字段),则TagStr属性的内容可以如下:
[Table1."Field1"];[Table1."Field2"]
构造报告后,该TagStr属性包含“ 1000; 1”类型的值,从中获取键的值也不难。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢