1. Используйте собрания просмотра для объединения нескольких ассоциаций таблиц
. 2. Фильтруйте данные с помощью операторов Sql
. 3. Установите связь с главной-подчиненной таблицей.
4. Обратите внимание, что при вставке подотчета в таблицу CrystalReport1 обязательно добавляйте связанные поля таблицу master-slave Настройте, иначе будут проблемы.
Основной код такой:
/// <summary>.
/// Привязываем CrystalReport
/// </сводка>
/// <param name="strS">sql</param>
частная пустота bdReport (строка strS)
{
oCR = новый CrystalReport1();
SqlConnection cnn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"]);
SqlDataAdapter cmd1 = new SqlDataAdapter(strS,cnn);
//Создаем и заполняем DataSet2
ds = new DataSet2();
cmd1.Fill(ds,"meeting");
// SqlDataAdapter cmd2 = new SqlDataAdapter("выберите * из реального плана, где rplanid in (выберите 10 000 лучших планов из ("+sqlStr+") в порядке по planid)", cnn);
SqlDataAdapter cmd2 = новый SqlDataAdapter (SqlIsOper, cnn);
cmd2.Fill(ds,"realplan");
//Создаем связь между таблицами «Авторы» и «Названия».
ds.Relations.Add("МО",
ds.Tables["встреча"].Columns["планид"],
ds.Tables["realplan"].Columns["rplanid"]);
//привязка reportViewer
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
//Закрываем соединение.
cnn.Закрыть();
}