在交互式 表中,可以定义对鼠标单击预览窗口中任何 表对象的反应。例如,用户可以单击数据行,从而运行包含所选行的详细数据的新 告。
任何 告都可以互动。为此,您只需要创建一个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:nr" + Memo->Text); if(Memo->Name == "Memo2") { Memo->Text = InputBox("Edit", "Edit Memo2 text:", Memo->Text); Modified = true; } }}
在OnClickObject处理程序中,您可以执行以下操作:
- 修改传递给处理程序的对象或页面的内容(因此,应指定“ Modified”标志,以便将修改内容考虑在内);
- 调用TfrxReport.PrepareReport用于重建/重建 告的方法。
在此示例中,单击名称为“ Memo1”的对象将显示一条包含该对象内容的消息。单击《备忘录2》时,会显示一个对话框,可以在此修改该对象的内容。将odified记设置为rue以保留和显示更改。
同样,可以为点击定义不同的反应。例如,它可以运行新 告。有必要注意以下几点。一个TfrxReport组件只能在预览窗口中显示一个 告。这就是为什么应该在单独的TfrxReport对象中或在同一对象中运行 表,但是必须删除当前 表的原因。
为了向最终用户提供有关可点击对象的提示,我们可以在鼠标光标经过预览窗口中的可点击对象时对其进行修改。为此,请在 表设计器中选择所需的对象,并将其cursor属性设置为crDefault以外的其他值。
另一个细节涉及定义可点击对象。在简单的 表中,可以在对象的名称或其内容中定义它。但是,这并不总是在更复杂的情况下执行。例如,应在选定的数据行中创建详细的 告。用户单击内容为“ 12”的emo1象。该对象指的是什么数据线就是为什么您应该知道主键,它清楚地标识了这一行的原因。FastReport可以为每个 表的对象分配一个字符串,其中包含任何数据(在本例中为主键的数据)。此字符串存储在TagStr属性中。
让我们通过一个 告示例来说明此过程,该示例包含在FastReportDemo.exe-“简单列表”演示中。这是公司的客户列表,其中包含诸如“客户名称”,“地址”,“联系人”等数据。数据源是DBDEMOS演示数据库中的“ Customer.db”表。该表具有一个主键,即ustNo段,该字段未在 告中显示。我们的任务是通过单击完成的 告中的任何对象来确定其引用的记录,这意味着获取主键的值。为此,只需TagStr在“主数据”区域中的所有对象的属性中输入以下值:
[Customers."CustNo"]
在 表的构建过程中,TagStr属性的内容的计算方法与文本对象的内容计算方法相同;这意味着将用变量的值代替所有变量。在这种特殊情况下,变量是括在方括 中的变量。这就是为什么TagStr在创建 表后,“ 1005”,“ 2112”等类型的行将包含在主数据上的对象的属性中的原因。从字符串到整数的简单转换将为我们提供主键的值,通过它可以找到所需的记录。
如果主键是复合键(即它包含多个字段),则TagStr属性的内容可以如下:
[Table1."Field1"];[Table1."Field2"]
构造 告后,该TagStr属性包含“ 1000; 1”类型的值,从中获取键的值也不难。
还想要更多吗可以点击阅读【FastReport 表2020最新资源盘点】,查找需要的教程资源。让人兴奋的是FastReport .NET正在 火热销售中!在线订购惠享超低折扣。>>查看价格详情
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!