等待SSRS报告完成加载

本文关键字:加载 报告 SSRS 等待 | 更新日期: 2023-09-27 17:50:28

我正在使用WatiN打开SSRS报告。最初,当报告被打开时,它显示消息"报告正在生成"。
我想等到报告出来再说。

我使用了WaitForComplete,但它永远不会返回。

  1. 如果报告生成,程序应该继续。
  2. 显示报告生成失败的错误。

编辑1

//create IE window
WatiN.Core.IE window = new WatiN.Core.IE();
window.ShowWindow(WatiN.Core.Native.Windows.NativeMethods.WindowShowStyle.ShowMaximized);
//go to the URL
window.GoTo("http://10.205.10.173");
//fill details for login
window.TextField(Find.ByName("User")).TypeText("bcadmin");
window.TextField(Find.ByName("Password")).TypeText("Test123!");
window.SelectList(Find.ByName("Application")).SelectByValue("appBCCIFrys");
window.Button(Find.ByName("dbbSystemLogin")).Click();
//go to Activity Re-cap Report
window.Span(Find.ByText("Reports")).Click();
window.Span(Find.ByText("Activity Re-cap Report")).Click();
//fill details for it
window.SelectList(Find.ByName("DbbDataCtrl_PnlARecapReportingdeARecapReportingRecordType_")).SelectByValue("00");
window.SelectList(Find.ByName("DbbDataCtrl_PnlARecapReportingdeARecapReportingSection_")).SelectByValue("00");
//press next
window.Image(Find.ByAlt("Next")).Click();
//change checkbox to option 2
window.RadioButton(Find.ByValue("1")).Checked = true;
//fill date
window.TextField(Find.ByName("DbbDataCtrl_PnlARecapReporting8NextdeARecapReportingIndividualDate_")).TypeText("12/12/2012");
//press create report
window.Image(Find.ByAlt("Create Report")).Click();
//Thread.Sleep(60000);
//connect to the new page opened
IE report = IE.AttachToNoWait<IE>(Find.ByTitle("New Activity Recap"), 200);
**//HERE I WANT TO WAIT TILL THE REPORT IS LOADED AND FETCH VALUES
//IF IT DOES NOT LOAD (or throws any error) WITHIN 2 MINS, MOVE FOWWARD**
//logout
window.Span(Find.ByText("Logout")).Click();
window.Close();
report.Close();

等待SSRS报告完成加载

赞美上帝!我花了好几天才弄明白!

我试图访问"内部html",直到"报告生成…"存在。然而,以我有限的Watin知识,我无法做到这一点。让我们继续讨论解决方案吧!

它终于击中了我,看看我是否可以捕捉何时"报告正在生成…"从屏幕上删除。但是,由于它从未从html中删除,所以我转而使用了这个漂亮的小检查。

while (reportViewer.Span("athenaReportViewer_ReportsViewer_ctl03").Style.Display.ToString() != "none")
{
   Console.WriteLine("This enabled...");
}
Console.WriteLine("DISABLED!!!");

所以我们检查样式属性"Display"的值为"none"。XD