- Я пишу метод, который (в конечном счете) принять в качестве входных System.Data.DataTable и сделать его как (простой, табличный) Отчет SSRS в Winform с помощью Microsoft ReportViewer Control (http://www.gotreportviewer.com/)
- Для этого мне нужно (1) динамически создавать RDL-файл на основе DataTable (2), загружать RDL в ReportViewerControl (3) свяжите ReportViewerControl с этим DataTable
ВОПРОСЫ
- В идеале я просто хотел бы ссылку на образец, который сделал все вышеперечисленное, - я искал, но не смог его найти.
- В противном случае мне нужна помощь, особенно с # 1 и # 3 выше.
- Для # 1 - Есть ли простой способ генерации RDL-файла динамически во время выполнения? (Я уже начинаю писать код, чтобы исправить правильный XML, но повторное использование чего-то будет такое же меня некоторое время)
- За # 3 - Мне непонятно, как связать ReportViewerControl с DataTable у меня локально. Большинство примеров, которые я нашел, предполагают, что элемент управления ReportViewer будет извлекать данные, которые находятся на удаленном SQL-сервере (что следует ожидать), вместо того, чтобы получать его из локального DataTable.
КОНТЕКСТ
- Я только недавно, начиная работать с контролем ReportViewer - я нашел образцы прибегая к помощи - но никто, кажется, не охватывают весь СЦЕНАРИЙ
- Я не знаю, схемы из DataTable раньше времени. Схема DataTable даже не будет постоянной во время вызовов моего метода, который будет отображать его.
- Я не могу использовать другой элемент управления отчетами - я должен использовать элемент управления ReportViewer. Если вы знаете о других средствах управления отчетами, которые делают эту задачу легкой, пожалуйста, дайте мне знать. Даже если это не решит мою текущую проблему, это полезно позже.
- Лицо, просматривающее этот отчет, является конечным пользователем и не имеет каких-либо прав на публикацию RDL на сервере SSRS
- DataTable уже будет сортироваться, фильтроваться и т. Д. Все типы будут просто значениями строк, ints, doubleles и date. DataTable будет иметь разумный размер - 1-30 столбцов и имеет от 100 до 5000 строк. DataTable также создается локально (иногда вручную построенный по коду) и не извлекает данные из некоторого удаленного источника данных.
- Данные всегда будут отображаться как простая таблица (без диаграмм и т. Д.). Позже мне может понадобиться добавить группу
- Я не могу переключиться на использование HTML, XAML и т. Д., Чтобы отобразить отчет. В ReportViewer есть функции, которые в конечном итоге я буду использовать, что HTML, XAML и т. Д. Не имеют.
ОБНОВЛЕНИЕ 2010/01/15
Начиная с ответом Джона ниже я смог добиться того, что мне было нужно. Как он упоминает, часть difficut изучает XML-схему RDL и знает, какие элементы RDL писать для достижения желаемого типа отчета.Динамически визуализации DataTable в Winform с помощью SSRS ReportViewer управления