У меня проблема с привязкой xtrareport к нескольким моим таблицам в db с помощью XPO. Но у меня есть код ниже, который отлично работает:
public BindingSource GenerateDataSource(int inv_id)
{
SqlConnection selectConnection = DKConnection.Connection;
SqlDataAdapter adapter = new SqlDataAdapter(string.Format("SELECT * FROM v_inv_list_pay_status with(nolock) where inv_id={0}", inv_id), selectConnection);
DataTable dataTable = new DataTable("v_inv_list_pay_status");
adapter.Fill(dataTable);
SqlDataAdapter adapter2 = new SqlDataAdapter(string.Format("SELECT * FROM v_firma where firm_id={0}", Common._ifirm_id_current), selectConnection);
DataTable table2 = new DataTable("v_firma");
adapter2.Fill(table2);
SqlDataAdapter adapter3 = new SqlDataAdapter(string.Format("SELECT * FROM tbl_inv_payment_plan_detail with(nolock) where inv_id={0}", inv_id), selectConnection);
DataTable table3 = new DataTable("tbl_inv_payment_plan_detail");
adapter3.Fill(table3);
...
...
DataSet set = new DataSet();
set.Tables.Add(dataTable);
set.Tables.Add(table2);
set.Tables.Add(table4);
set.Tables.Add(table3);
return new BindingSource { DataSource = set };
}
private void someReport()
{
Reports.XtraReport1 _xr = new Reports.XtraReport1();
if (File.Exists(fileName))
{
_xr.LoadLayout(fileName);
_xr.DataSource = GenerateDataSource(5);
_xr.CreateDocument();
ReportDesigner _rd = new ReportDesigner();
_rd.OpenDocument(_xr);
_rd.ShowWindow(null);
}
}
Как я могу сделать это с XPO? Я могу использовать XPCollection или XPObject, но не могу присоединить другие необходимые таблицы к источнику данных xtrareport. Еще я заметил, что когда я связываю XPCollection как источник данных, в XtraReport есть все связанные таблицы, но я не могу получить данные из них в группу подробных отчетов. Может быть, я не знаю причин этого. Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо!