У меня есть вопрос, связанный с отчетами Xtra и хранимыми процедурами с параметрами.Создание XtraReports с параметрами с: (хранимые процедуры с параметрами)
Я использую XtraReports недолго, но я многому научился. Дело в том, что я не смог выполнить одну задачу правильно.
Поясню:
В моей DataSet У меня есть один SP_get_singleRecord
, который имеет 2 параметра (@ID, @TYPE) /*string,int*/
и таблица имеет 6 столбцов.
Итак, я добавляю dataset(dataset1)
, dataMember(SP_get_singleRecord)
и dataAdapter(SP_get_singleRecord_TableAdapter)
в xtraReport. Я использую мастер для установки полей на месте.
Теперь перейдите в раздел параметров на FieldList xtrareports' и добавить параметр ID
в string
и TYPE
как int
.
Тогда я иду к строке фильтра и установить параметры, как это: [ID] = ?ID And [TYPE] = ?TYPE
Теперь я хожу в WindowsForm -> print_simplebuttonEvent_OnClick
Я передаю параметры тихо так:
private void btn_print_Click(object sender, EventArgs e)
{
//convert parameters from controls
int type = Convert.ToInt32(lookUpEdit_Type.EditValue);
string id = lookUpEdit_id.EditValue.ToString();
// Create a report instance
Xtrareport report = new Xtrareport();
// Obtain a parameter, and set its value.
report.ID.Value = id;
report.TYPE.Value = type;
// Hide the Parameters UI from end-users.
report.ID.Visible=false;
report.TYPE.Visible = false;
// Show the report's print preview.
report.ShowPreview();
}
Затем появляется сообщение об ошибке: Error when trying to populate the datasource. The following exception was thrown: Procedure or function 'SP_getSingleRecord' expects parameter '@ID' which was not supplied.
В соответствии с этим параметры, которые я прошел, никогда не достигали хранимой процедуры. Я пытаюсь получить одну запись перед печатью отчета, но я не знаю, что я здесь отсутствует ...
Я попробовал еще один способ сделать это, но это предполагает изменение «SP_getSingleRecord 'для' SP_getALLRecords '(без параметров). Это возвращает около 6500+ записей, а затем отфильтровать их из стороны отчета, но это занимает 9 секунд, что не является приемлемым ... Это работает, но это не правильный путь ...
Я надеюсь, что я поняла. Надеюсь, вы можете мне помочь.
Заранее спасибо.
Альфред.
Вам не нужно передавать параметры молча, а также 'Report.DataSource = dataset1.SP_get_singleRecord' сразу после инициализации отчета. – Milen