2015-02-23 93 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()); 
    } 
    } 

你可以擴展這個不同的動作和多個參數