FastReport VCL程序员手册:交互式 表

在交互式 表中,可以定义对鼠标单击预览窗口中任何 表对象的反应。例如,用户可以单击数据行,从而运行包含所选行的详细数据的新 告。

任何 告都可以互动。为此,您只需要创建一个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进行处理,非常感谢!

上一篇 2021年3月12日
下一篇 2021年3月12日

相关推荐

发表回复

登录后才能评论