Come passare i parametri a Crystal Report per Visual Studio 2010? Sembra che siano ignorati
-
25-09-2019 - |
Domanda
Funzionava correttamente in Visual Studio 2008, ma da quando sono passato a Visual Studio 2010 e Crystal Reports per Visual Studio 2010, i miei parametri passati vengono ignorati.
Visualizzano nel rapporto, semplicemente ignorati quando si tratta della formula di selezione! Ecco il mio codice per la creazione del report e il passaggio dei parametri.
private void Prepare()
{
var reportDocument = new ReportDocument();
string reportPath = string.Format(
"{0}\\{1}",
Globals.FormPath,
this.FormTemplate.Filename);
reportDocument.Load(reportPath);
ParameterDiscreteValue parameter;
foreach (var control in this.FormTemplateFieldControls)
{
switch (control.FormTemplateField.DataType)
{
case FormFieldDataType.Date:
this.AddParameterForDateTime(
reportDocument,
control.FormTemplateField.Name,
(DateTime)control.EditValue);
break;
case FormFieldDataType.DateTime:
this.AddParameterForDateTime(
reportDocument,
control.FormTemplateField.Name,
(DateTime)control.EditValue);
break;
case FormFieldDataType.Time:
this.AddParameterForDateTime(
reportDocument,
control.FormTemplateField.Name,
(DateTime)control.EditValue);
break;
case FormFieldDataType.Guid:
this.AddParameterForGuid(
reportDocument,
control.FormTemplateField.Name,
(Guid)control.EditValue);
break;
default:
this.AddParameterForString(
reportDocument,
control.FormTemplateField.Name,
control.EditValue.ToString());
break;
}
}
this.SetConnectionInfo(reportDocument);
var frm = new FormViewer();
frm.Report = reportDocument;
frm.ShowDialog();
frm.Dispose();
this.Close();
}
Quando eseguo il rapporto dal designer, funziona bene. Puoi vedere che i parametri vengono passati mentre li sto visualizzando nel mio rapporto.
Per i miei rapporti che vanno dalle procedure memorizzate i parametri sembrano passare bene, sono solo quelli composti da tutte le tabelle.
Per quello che vale, ecco la mia formula di selezione:
{employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
Soluzione
Questo è stato risolto con l'ultima versione di Crystal Reports per Visual Studio 2010.
Altri suggerimenti
Quando dici "non vengono passati", cosa viene superato? Sono vuoti?
Potresti rivedere i parametri stessi e solo per i sorrisi, provare a dare loro un nome diverso, qualcosa di extra unico. Potrebbe esserci qualcosa di sciocco in corso con qualche altra impostazione del report o nel modo in cui sono definiti i parametri.