Передача нескольких параметров в Crystal Report - PullRequest
0 голосов
/ 28 февраля 2011

Я работаю над Visual Studio 2008 и SQL Server 2008, язык C #

Я хочу передать несколько параметров Crystal Report в ASP.NET.У меня есть два параметра @accountnumber и @customerid.Но я могу передать в отчет только один параметр, как показано в коде ниже.

CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.ServerName = "CJ-PC";
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.UserID = "sa";
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.Password = "***";
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.DatabaseName = "Online";

string accountnumber = "acc001";
string customerID = "cus001";

ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();

paramField.Name = "@account_number";
paramDiscreteValue.Value = accountnumber;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo = paramFields;

ParameterField paramField1 = new ParameterField();
ParameterFields paramFields1 = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue1 = new ParameterDiscreteValue();

paramField1.Name = "@account_number";
paramDiscreteValue1.Value = accountnumber;
paramField1.CurrentValues.Add(paramDiscreteValue1);
paramFields1.Add(paramField1);

paramField1.Name = "@customer_id";
paramDiscreteValue1.Value = customerID;
paramField1.CurrentValues.Add(paramDiscreteValue1);
paramFields1.Add(paramField1);
CrystalReportViewer1.ParameterFieldInfo = paramFields1;

Ответы [ 4 ]

1 голос
/ 04 февраля 2015

Вы должны использовать ключевое слово new перед назначением новых значений для paramField1

paramField1.Name = "@account_number";
paramDiscreteValue1.Value = accountnumber;
paramField1.CurrentValues.Add(paramDiscreteValue1);
paramFields1.Add(paramField1);

//Here is the missing code
paramField1 = new ParameterField();

paramField1.Name = "@customer_id";
paramDiscreteValue1.Value = customerID;
paramField1.CurrentValues.Add(paramDiscreteValue1);
paramFields1.Add(paramField1);
0 голосов
/ 11 февраля 2019

Вы можете передать значения различным параметрам в Crystal Reports следующим образом.

void SetParameterValues()
{
    crReport report = new crReport();
    report.SetParameterValue("parameterName1","parameterValue1");
    report.SetParameterValue("parameterName2","parameterValue2");
}
0 голосов
/ 01 марта 2011

Если приведенный выше код не поможет, следуйте приведенным ниже инструкциям:

Перейдите к CrystalReportSource properties -> Report properties -> Paratemers properties -> Add new parameter

И вот, пожалуйста.Вы должны назвать параметр как @account_number и присвоить ему ControlID

0 голосов
/ 28 февраля 2011

Это то, что я сделал в своем коде

CrystalReportViewer1.RefreshReport();

String ssCustomer = Session["ssCustomer"].ToString();
string strconstring = ConfigurationManager.ConnectionStrings["ONLINE_BANKING2_ConnectionString"].ConnectionString;
string sqlquery2;
sqlquery2 = "SELECT [account_number],[customer_id] from customer_details where customer_id = '" + ssCustomer + "'";
SqlConnection mycon2 = new SqlConnection(strconstring);
SqlCommand cmd = new SqlCommand(sqlquery2, mycon2);
mycon2.Open();
SqlDataReader myreader = cmd.ExecuteReader();
myreader.Read();
string accountnumber = myreader["account_number"].ToString();
string customerID = myreader["customer_id"].ToString();
myreader.Close();
mycon2.Close();

ParameterDiscreteValue objDiscreteValue;
ParameterField objParameterField;

//specify all the database Login details
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.ServerName = "CJ-PC";
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.UserID = "sa";
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.Password = "123";
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.DatabaseName = "online_banking2";

//Set value for first parameter
objDiscreteValue = new ParameterDiscreteValue();
objDiscreteValue.Value = accountnumber;
objParameterField = CrystalReportViewer1.ParameterFieldInfo["@account_number"];
objParameterField.CurrentValues.Add(objDiscreteValue);
CrystalReportViewer1.ParameterFieldInfo.Add(objParameterField);

objParameterField = CrystalReportViewer1.ParameterFieldInfo["@customer_id"];
objDiscreteValue = new ParameterDiscreteValue();
objDiscreteValue.Value = customerID;
objParameterField.CurrentValues.Add(objDiscreteValue);
CrystalReportViewer1.ParameterFieldInfo.Add(objParameterField);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...