Добавление столбца в DataSet (xsd) для отчета Crystal - PullRequest
4 голосов
/ 06 марта 2012

Я работаю над отчетом и мне нужно добавить столбец в один из моих наборов данных и в файл RPT, но когда я пытаюсь изменить набор данных, я получаю сообщение об ошибке, что указанная таблица не существует.Когда я смотрю в коде, кажется, что изначально для этой цели использовалась таблица, но этот подход был заброшен, и теперь вместо этого это делается с помощью DataSet в коде, который прикреплен к отчету.

Моя проблема в том, что мне нужно добавить этот новый столбец в отчет, и я не могу получить представление о данных таким образом, чтобы я мог перетащить свое новое поле в отчет, потому что я могуне нашел нужного фрагмента DataSet, потому что он не существует, как это было раньше, и теперь DataSet в коде занимает его место.

Любой, кто сможет указать мне правильное направление, какделать эту работу?

ОБНОВЛЕНИЕ: Примерно так мой набор данных попадает в отчет Crystal Report

private Sub ShowReport()
    Dim dsStatsForPlanned As DataSet = Nothing
    dsStatsForPlanned = DirectCast(Session(CreateSessionKey()), DataSet)
    plannedProductRpt.SetDataSource(dsStatsForPlanned)
End Sub

Я добавил дополнительное поле, которое мне нужнов DataSet, который приходит из Session, но я пытаюсь использовать Designer, чтобы добавить это дополнительное поле в отчет, и когда я пытаюсь обновить или изменить источник данных, Designer сообщает мне, что таблица не существует, предположительно, потому что этотаблица существует только в памяти и не связана непосредственно с таблицей SQL.

Ответы [ 2 ]

3 голосов
/ 10 марта 2012

После нескольких дней копания и нахождения множества бесполезной информации мне наконец-то удалось найти ответ на мой вопрос в посте за 2006 год здесь:

http://sstjean.blogspot.com/2006/12/xsdexe-and-msdatasetgenerator-operate.html

Что я сделал, чтобы решить мою проблему:

  • Вручную отредактируйте файл XSD в текстовом редакторе и добавьте нужные мне столбцы.Это заставило их появиться в моем XSD при просмотре в Visual Studio.
  • Запустите указанный пользовательский инструмент для XSD, чтобы восстановить DataSet.В моем случае это был MSDataSetGenerator.Это было указано на вкладке «Свойства» в VS, и я мог щелкнуть правой кнопкой мыши XSD в Solution Explorer и выбрать «Run Custom Tool».
  • Откройте мой файл RPT и запустите Verify Databse.Это наконец означало, что база данных изменилась, и она обновляла отчет, и теперь я увидел свое новое поле в конструкторе отчетов.
0 голосов
/ 06 марта 2012

Мой подход заключается в том, чтобы фактически изменить данные за пределами Crystal.Так что, означает ли это изменение вашего запроса или обновление .xsd, вы добавите туда свой столбец.Затем в Crystal Reports вы должны перейти к «База данных» в строке меню и выбрать «Проверить базу данных», если ваш источник данных / местоположение не изменилось, или «Установить местоположение источника данных», если оно изменилось.После повторной проверки источника данных ваш новый столбец должен появиться в полях базы данных, и вы сможете перетащить его в свой отчет.

...