fidman
asked on
Crystal Rerports in VB.net requesting login data to server when Dataset is the report source
I have created a crystal report which will report from a dataset. The data adapter reports a view from and SQL server DB. I have filled the dataset at the InitializeComponent() part of my vb.net code using SqlDataAdapter1.Fill(DataS et11). When I run my vb.net program I am prompted for parameter values for the report and then I am presented with the Database login screen requested server , DB , loging , password , etc. I should n't be getting the login screen as my report is based on a dataset which has its own sqlconnection information. Can someone please give me some guidence on how to get past this database login screen?
Because you have not set the login info and parameter, reports asks for it. This code here is how i set my login and param info runtime in C#
Regards
Emre
for db login piece
private void setlogoninfo(CrystalDecisi ons.Crysta lReports.E ngine.Repo rtDocument myreport)
{
CrystalDecisions.Shared.Ta bleLogOnIn fo MyLogonInfo;
foreach(CrystalDecisions.C rystalRepo rts.Engine .Table MyTable in myreport.Database.Tables)
{
MyLogonInfo = MyTable.LogOnInfo;
if (MyTable.Name == "")
{
MyLogonInfo.ConnectionInfo .UserID = this._username;
MyLogonInfo.ConnectionInfo .Password = this._password;
MyLogonInfo.ConnectionInfo .ServerNam e = this._servername;
MyLogonInfo.ConnectionInfo .DatabaseN ame = this._databasename ;
}
else
{
MyLogonInfo.ConnectionInfo .UserID = this._username;
MyLogonInfo.ConnectionInfo .Password = this._password;
MyLogonInfo.ConnectionInfo .ServerNam e = this._servername;
MyLogonInfo.ConnectionInfo .DatabaseN ame = this._databasename ;
}
MyTable.ApplyLogOnInfo(MyL ogonInfo);
MyTable.Location = MyTable.Location.Substring (MyTable.L ocation.La stIndexOf( ".")+1);
}
}
for parameter piece
private CrystalDecisions.CrystalRe ports.Engi ne.Paramet erFieldDef inition SetReportParameters(Crysta lDecisions .CrystalRe ports.Engi ne.ReportD ocument MyReport)
{
//sets the parameter values for main report and sub reports if any
CrystalDecisions.CrystalRe ports.Engi ne.Paramet erFieldDef inition ParameterFieldDefinition;
CrystalDecisions.Shared.Pa rameterDis creteValue ParameterDiscreteValue;
CrystalDecisions.Shared.Pa rameterVal ues ParameterValues;
int paramcount;
paramcount = this.MyParameterValues.Cou nt;
ParameterFieldDefinition = null;
string ConversionVariable;
ConversionVariable = null;
for (int i = 0; i != paramcount; i++)//have to put paramcount otherwise hard code it .works
{
ConversionVariable = Convert.ToString(MyReport. DataDefini tion.Param eterFields [i].Parame terType);
if (ConversionVariable == "StoreProcedureParameter")
{
ParameterFieldDefinition = MyReport.DataDefinition.Pa rameterFie lds[i];
ParameterValues = new CrystalDecisions.Shared.Pa rameterVal ues();
ParameterDiscreteValue = new CrystalDecisions.Shared.Pa rameterDis creteValue ();
ParameterDiscreteValue.Val ue = this.MyParameterValues[i];
ParameterValues.Add(Parame terDiscret eValue);
ParameterFieldDefinition.C urrentValu es.Clear() ;
ParameterFieldDefinition.D efaultValu es.Clear() ;
ParameterFieldDefinition.A pplyCurren tValues(Pa rameterVal ues);
}
}
return ParameterFieldDefinition;
}
Regards
Emre
for db login piece
private void setlogoninfo(CrystalDecisi
{
CrystalDecisions.Shared.Ta
foreach(CrystalDecisions.C
{
MyLogonInfo = MyTable.LogOnInfo;
if (MyTable.Name == "")
{
MyLogonInfo.ConnectionInfo
MyLogonInfo.ConnectionInfo
MyLogonInfo.ConnectionInfo
MyLogonInfo.ConnectionInfo
}
else
{
MyLogonInfo.ConnectionInfo
MyLogonInfo.ConnectionInfo
MyLogonInfo.ConnectionInfo
MyLogonInfo.ConnectionInfo
}
MyTable.ApplyLogOnInfo(MyL
MyTable.Location = MyTable.Location.Substring
}
}
for parameter piece
private CrystalDecisions.CrystalRe
{
//sets the parameter values for main report and sub reports if any
CrystalDecisions.CrystalRe
CrystalDecisions.Shared.Pa
CrystalDecisions.Shared.Pa
int paramcount;
paramcount = this.MyParameterValues.Cou
ParameterFieldDefinition = null;
string ConversionVariable;
ConversionVariable = null;
for (int i = 0; i != paramcount; i++)//have to put paramcount otherwise hard code it .works
{
ConversionVariable = Convert.ToString(MyReport.
if (ConversionVariable == "StoreProcedureParameter")
{
ParameterFieldDefinition = MyReport.DataDefinition.Pa
ParameterValues = new CrystalDecisions.Shared.Pa
ParameterDiscreteValue = new CrystalDecisions.Shared.Pa
ParameterDiscreteValue.Val
ParameterValues.Add(Parame
ParameterFieldDefinition.C
ParameterFieldDefinition.D
ParameterFieldDefinition.A
}
}
return ParameterFieldDefinition;
}
make sure you have the crdb_adoplus.dll on the target machine (in the same location as on developmen computer)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Did this get resolved? I have the same problem
Have you ever set db logon with ReportDocumentClient(use Report Application Server)? I want to change server name but i can't.Can you help me?
mlmcc