2013-02-14 2 views
2

Я пытаюсь передать параметр в свой отчет. Я пробовал разные способы, но каждый раз, когда он подсказывает мне значение параметра. Я читал тонны подобных проблем, но ничего не работало для меня.Параметры отчета Crystal Report не работают AGAIN

P_REQUEST_ID - это поле параметра статического числа, используемое для фильтрации данных в отчете.

Вот мой код:

// creating report 
var reportDocument = new ReportDocument(); 
reportDocument.Load("ReportRequestPrice.rpt"); 

// creating report form 
var dialog = new FormReport(); 

// not working 
var paramFields = new ParameterFields(); 
var paramField = new ParameterField(); 
var paramDiscreteValue = new ParameterDiscreteValue(); 
paramField.Name = "P_REQUEST_ID"; 
paramDiscreteValue.Value = 1; 
// not working 
// paramDiscreteValue.Value = "1"; 
paramField.CurrentValues.Add(paramDiscreteValue); 
paramFields.Add(paramField); 
dialog.reportViewer.ParameterFieldInfo = paramFields; 

/* 
// not working 
var param = new ParameterDiscreteValue(); 
param.Value = 1; 
reportDocument.ParameterFields["P_REQUEST_ID"].CurrentValues.Add(param); 
// not working 
//reportDocument.ParameterFields[0].CurrentValues.Add(param); 
*/ 

// setting datasource 
reportDocument.SetDataSource(printshopDS); 
reportDocument.Subreports[0].SetDataSource(printshopDS); 

dialog.reportViewer.ReportSource = reportDocument;    

dialog.ShowDialog(this); 
+2

Заявление «не работает» не помогает. –

+0

Что вы прочитали, почему это не сработало, вы получили сообщения об ошибках и т. Д.? –

+1

Я как раз зафиксировал проблему случайно. Средство просмотра отчетов Crystal имеет свойство ReuseParameterValuesOnRefresh, которое было False. Настройка его на рабочие параметры True. Я предполагаю, что где-то в кристальном обновлении кода вызывается, потому что я попытался вручную обновить отчет и параметры настройки во всех возможных местах без результата. PS нет сообщений об ошибках. как я писал, отчет запрашивал значение параметра. – karasi

ответ

1

Проблема может быть воспроизведена с Crystal Reports для Visual Studio 2005. Обойти исправление установить ReportSource свойство CrystalReportViewer первым, то вы установите значения параметров через свойство ParameterFieldInfo. Таким образом, ваш код должен быть:

// creating report 
var reportDocument = new ReportDocument(); 
reportDocument.Load("ReportRequestPrice.rpt"); 

// creating report form 
var dialog = new FormReport(); 

dialog.reportViewer.ReportSource = reportDocument;    

// not working 
var paramFields = new ParameterFields(); 
var paramField = new ParameterField(); 
var paramDiscreteValue = new ParameterDiscreteValue(); 
paramField.Name = "P_REQUEST_ID"; 
paramDiscreteValue.Value = 1; 
// not working 
// paramDiscreteValue.Value = "1"; 
paramField.CurrentValues.Add(paramDiscreteValue); 
paramFields.Add(paramField); 
dialog.reportViewer.ParameterFieldInfo = paramFields; 


// setting datasource 
reportDocument.SetDataSource(printshopDS); 
reportDocument.Subreports[0].SetDataSource(printshopDS); 


dialog.ShowDialog(this); 
Смежные вопросы