Asked by:
ASPX Crystal Reports next page automation

Question
-
Hello all,
First let me say I know that there are probably hundreds of postings on the net that refer to asp and CR. I have looked for about a week trying things to no avail. If you have a web page that you think will help I would be very happy to check it out, but I have google'd this subject over and over again.
I am working on a asp/C# project that will take any crystal report and display it on a web page, that part is simple enough. In this project I am looking for simplicity, something that will run possible for days/weeks on end on any type of browser or OS. I am using CR XIR2, asp.net 4.0 and VS2010. My project will display a report and refresh the data and report on a set time period. I do not have a dataset in my project. The report connects directly to the SQL server and pulls the data. I have gotten the automated page refresh working with some javascript on the asp page, but I am having trouble automating the next page display. I am looking to rotate through the pages every two minutes or so and refresh the entire report every 10 mins or so. Here is my asp page:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> <script type="text/javascript"> function timeClick() { var t = setTimeout("clickButton()", 180000); } function clickButton() { var button = document.getElementById('RefreshButton'); button.click(); timeClick(); } </script> <script type="text/javascript"> function refreshClick() { var t = setTimeout("clickButton()", 180); } function clickButton() { var button1 = document.getElementById('IconImg_CrystalReportViewer1_toptoolbar_nextPg'); button1.click(); refreshClick(); } </script> <script type="text/C#" runat="server"> public void CommandBtn_Click(object sender, CommandEventArgs e) { CrystalReportViewer1.RefreshReport(); } </script> <%--<script type="text/C#" runat="server"> public void Commandrefresh_Click(object sender, CommandEventArgs e) { CrystalReportViewer1.Navigate } </script>--%> </head> <body> <script type="text/javascript"> window.onload = timeClick; </script> <form id="form1" runat="server"> <div style="display: none;"> <asp:Button ID="RefreshButton" runat="server" onCommand="CommandBtn_Click" /> </div> <div> <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" Height="1039px" ReportSourceID="CrystalReportSource1" Width="901px" DisplayStatusbar="False" HasDrilldownTabs="False" HasToggleGroupTreeButton="False" HasToggleParameterPanelButton="False" ToolPanelView="None" /> <CR:CrystalReportSource ID="CrystalReportSource1" runat="server"> <Report FileName="CrystalReport1.rpt"> </Report> </CR:CrystalReportSource> </div> </form> </body> </html>
And here is my code behind (C#):
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Web; public partial class _Default : System.Web.UI.Page { private ReportDocument rpt; private void Page_Init(object sender, EventArgs e) { ConfigureCrystalReports(); } protected void Page_Load(object sender, EventArgs e) { } private void ConfigureCrystalReports() { rpt = new ReportDocument(); string reportPath = Server.MapPath("CrystalReport1.rpt"); rpt.Load(reportPath); ConnectionInfo connectionInfo = new ConnectionInfo(); connectionInfo.DatabaseName = "*****"; connectionInfo.UserID = "*****"; connectionInfo.Password = "*****"; SetDBLogonForReport(connectionInfo, rpt); CrystalReportViewer1.ReportSource = rpt; } private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument) { Tables tables = reportDocument.Database.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables) { TableLogOnInfo tableLogonInfo = table.LogOnInfo; tableLogonInfo.ConnectionInfo = connectionInfo; table.ApplyLogOnInfo(tableLogonInfo); } } }
Thank you in advance for any help!
- Moved by Jason Dot Wang Monday, January 21, 2013 6:06 AM This thread is about ASP.NET
Friday, January 18, 2013 8:04 PM
All replies
-
Hi gchatt,
Welcome to MSDN Forum Support.
You'll need to post it in the dedicated ASP.Net Forum http://forums.asp.net for more efficient responses, where you can contact ASP.NET experts.
Sincerely,
Jason Wang
Jason Wang [MSFT]
MSDN Community Support | Feedback to us
Monday, January 21, 2013 6:05 AM