I am working on an application, which comes from several migrations. It started in Visual Studio 2010 and Crystal Report 9 and is now in Visual 2013.
The latest version of the code was lost and I am recovering a backup.
I installed in my local PC Crystal version 13.0.26 for 32 and 64 bits, where I can edit the reports from both Visual Studio 12 and 13, and also run the reports from designer.
this is what I installed
All reports are simple, and receive a parameter to perform a Select to the database. The paremeter is called @ID
The problem I have is that, when I run it from both Visual give me the message 'Missing Parameter Values.'
First I thought it was a problem with the version in which the reports were created, but I created a new report and the same thing happens. Even the reports created in this version of Crystal do not receive the parameters.
I think the problem is how the parameters are passed. I think the way to pass it was changed from version 9 to 13. This is what I have configured in Web.Config and on the page that calls it.
<assemblies>
<add assembly="CrystalDecisions.Web, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</assemblies>
this is my aspx.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="REPVisitasDiariasTecnicos.aspx.cs" Inherits="REPVisitasDiariasTecnicos" %>
<%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<div>
<table style="width: 100%">
<tr>
<td>
<CR:CrystalReportViewer ID="CrystalReportViewer" runat="server"
AutoDataBind="true"
EnableDatabaseLogonPrompt="False" EnableParameterPrompt="False"
ToolPanelView="None" HasToggleGroupTreeButton="False" HasToggleParameterPanelButton="False"
DisplayStatusbar="False" HasCrystalLogo="False" HasDrilldownTabs="False"
HasDrillUpButton="False" HasGotoPageButton="False" HasZoomFactorList="False"
/>
</td>
</tr>
</table>
</div>
<br />
</asp:Content>
and this is my code behind.
private void ConfigureCrystalReports()
{
oReport = new ReportDocument();
string reportPath;
reportPath = Server.MapPath(@"report.rpt");
oReport.FileName = reportPath;
// establish the connection
string _connectionString = ConfigurationManager.ConnectionStrings["WEB"].ConnectionString;
System.Data.SqlClient.SqlConnectionStringBuilder SConn = new System.Data.SqlClient.SqlConnectionStringBuilder(_connectionString);
// establish the connection with the report
ConnectionInfo connectionInfo = new ConnectionInfo() { ServerName = SConn.DataSource, DatabaseName = SConn.InitialCatalog, UserID = SConn.UserID, Password = SConn.Password };
CrystalReportViewer.ReportSource = oReport;
foreach (CrystalDecisions.CrystalReports.Engine.Table t in oReport.Database.Tables)
{
TableLogOnInfo boTableLogOnInfo = t.LogOnInfo;
boTableLogOnInfo.ConnectionInfo = connectionInfo;
t.ApplyLogOnInfo(boTableLogOnInfo);
}
ArrayList arrayList = new ArrayList();
//Add the parameter to a Lisst
arrayList.Add(31302);
ParameterFields parameterFields= CrystalReportViewer.ParameterFieldInfo;
SetCurrentValuesForParameterField(parameterFields, arrayList);
}
private static void SetCurrentValuesForParameterField(ParameterFields parameterFields, ArrayList arrayList)
{
ParameterValues currentParameterValues = new ParameterValues();
int i = 0;
foreach (object submittedValue in arrayList)
{
ParameterDiscreteValue paramValor = new ParameterDiscreteValue();
ParameterField param = parameterFields[i];
paramValor.Value = submittedValue.ToString();
param.CurrentValues.Add(paramValor);
i++;
}
}
I read a lot in this blogs, I have no subreports, no linked values.. Just the ID.
I know there are many things to take into account when changing versions.
I can't think of anything else I can set.
Any idea what I am doing wrong?
Thanks