@ZmeuSnake

Как вывести содержимое DataTable в ReportViewer?

Пока что есть вот такой код:
DataTable dt = new DataTable();
            dt.TableName = "DataTable1";
            string str = "OrderDetails " + Convert.ToString(onumber);
            SqlDataAdapter adapter = new SqlDataAdapter(str, Data.connectionString);
            SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adapter);
            adapter.Fill(dt);

            DataSet ds = new DataSet();
            ds.Tables.Add(dt);

            reportViewer1.Visible = true;
            reportViewer1.LocalReport.DataSources.Clear();
            ReportDataSource reportInfo = new ReportDataSource("DataTable1", dt);
            reportInfo.Value = ds.Tables[0];

            reportViewer1.LocalReport.DataSources.Add(reportInfo);
            reportViewer1.Refresh();

Код выполняется без ошибок, но окно reportViewer пустое. Как я понял, reportViewer'у для работы нужно создать отчет. Добавляем в проект, пусть он будет report.rdlc. Этот отчет подключается к reportViewer и просит указать набор данных через свой визуальный конструктор. Если добавляешь в report.rdlc таблицу, сразу просит создать набор данных. Начинаешь работать с конструктором, там поэтапно создается что-то вроде строки подключения и выбора таблиц, которые нужны в отчете. Но у меня в коде уже есть набор данных с нужной мне уже обработанной таблицей, а строки подключения меняются в зависимости от логина например, адреса сервера и т.д. Отчет находится в проекте как отдельный файл report.rdlc, как к нему обратиться в коде, чтобы назначить набор данных я не понимаю.
А может я вообще всё делаю не так.

Как мне всё таки выгрузить мою таблицу в reportViewer1?
  • Вопрос задан
  • 1973 просмотра
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
У вас проблема только с заменой источника данных? Тогда на мой взгляд у вас проблемы нет - вы ее сами себе создали. Отчеты умеют строится на типовом источнике данных на основе входящих параметров. И примерно так вам и следует сделать. На основе подсунутого в мастере источника данных генерится простенький шаблон с таблицей исходя из соображений что это все что будет в отчете. Источник данных остается все время тем-же, а вот параметры для формирования отчета уже разнятся.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@WinnerIT
Программист и фотограф-любитель
Что-то мне подсказывает, что таблица тоже пустая.
string str = "OrderDetails " + Convert.ToString(onumber);

Если я правильно помню, то в переменной str должен стоять полный текст sql запроса.

Пример, как использовать reportView:
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы