2015-02-23 191 views
0

是否有报告查看器的点击事件/属性可以返回给我他们点击的内容?报告查看器的点击事件?

报表设计器被限制为:

  1. 转到报告
  2. 转到书签
  3. 转到URL

我的报告有一个字段与文件名,我想喜欢写入我的双击事件以在DoubleClick上打开包含文件夹。

我不需要帮助打开文件夹的代码,只需要获取正在双击的文件,这样我就可以打开正确的文件夹。像

private void rptvReport_DoubleClick(object sender, EventArgs e) 
{ 
    MessageBox.Show(rptvReport.**CURRENTITEM**.text); 
} 
+0

这不是'发件人'吗? – stuartd 2015-02-23 20:17:13

+0

希望是那么简单。实际上,我甚至无法看到双击事件触发。我将Messagebox更改为只显示“Hello World”,我双击报告并且没有事件触发 – Cade 2015-02-23 20:34:02

+0

您是否尝试过使用带有文件方案的链接?即file://somefolder/somefile.txt。从来没有尝试过,但值得一试,如果这是一个桌面应用程序。 – Crowcoder 2015-02-23 20:36:01

回答

0

在您的报告中一些设置文本框的行动“转到URL”,并在URL中表达它设置为:

="http://someaction?rowid="+Trim(Str(Fields!SomeIdField.Value)) 

然后在你的表单中使用的“超链接”事件报表查看器控件:

uxReportViewer.Hyperlink += uxReportViewer_Hyperlink; 

而在事件处理程序:

void uxReportViewer_Hyperlink(object sender, HyperlinkEventArgs e) 
    { 
    Uri link = new Uri(e.Hyperlink); 

    if (link.Authority == "someaction") 
    { 
     e.Cancel = true; //Cancel the event to avoid opening the browser 
     char[] sep=new char[] {'='}; 
     var param=link.Query.Split(sep); 
     string rowId=param[1]; 
     MessageBox.Show("You clicked on Id: "+rowId.ToString()); 
    } 
    } 

你可以扩展这个不同的动作和多个参数