Designer->database&files

seversever Вологодская обл., г. Череповец
отредактировано 07:48 Раздел: FastReport .NET
Добрый день.
Необходимо реализовать в дизайнере такую логику: открывать и сохранять отчеты как в файлы, так и в бд.
Делаю так:
наследую свой DesignControl, прикручиваю в меню File еще 2 ButtonItem и пишу обработчики для них.

Может можно как-то проще?
Спасибо.

Комментарии

  • отредактировано 07:48
    Здравствуйте,

    В "Руководстве разработчика" описано, как сделать хранение отчета в БД. Также можете посмотреть пример в папке Demos\C#\CustomOpenSaveDialogs.
  • seversever Вологодская обл., г. Череповец
    отредактировано May 2010
    AlexTZ написал: »
    Здравствуйте,

    В "Руководстве разработчика" описано, как сделать хранение отчета в БД. Также можете посмотреть пример в папке Demos\C#\CustomOpenSaveDialogs.

    Добавил новый ButtonItem в DesignerControl. В обработчике попытался организовать механизм загрузки отчета из Stream.
    Загрузил данные в MemoryStream, вызвал Report.Load(ms).
    На форме дизайнера при перерисовке пропали все элементы. И "NullReferenceException".
    Что за ерунда?
  • отредактировано 07:48
    До загрузки надо сделать Designer.Lock, после - Unlock.
  • seversever Вологодская обл., г. Череповец
    отредактировано 07:48
    AlexTZ написал: »
    До загрузки надо сделать Designer.Lock, после - Unlock.
    Спасибо за совет, но... Не помогло. Тот же exception.
  • seversever Вологодская обл., г. Череповец
    отредактировано 07:48
    sever написал: »
    Спасибо за совет, но... Не помогло. Тот же exception.

    Выпадает на Unlock().
    Report.Designer.Lock();
    // Заполняю данными отчет
    Report.Designer.Unlock(); // выпадает исключение NullReferenceException
    
  • seversever Вологодская обл., г. Череповец
    отредактировано 07:48
    Подскажите хоть какой-нибудь способ решения проблемы. Очень срочно надо.
    Спасибо.
  • seversever Вологодская обл., г. Череповец
    отредактировано 07:48
    Реализовал обработку CustomOpenReport. Оставил тот же самый код по загрузке из Stream, все заработало, но это не помогло решить главную задачу (нужно еще сохранять и загружать отчеты из файлов).
  • seversever Вологодская обл., г. Череповец
    отредактировано 07:48
    УРА!!!
    Решил проблему.
    Все сие изыскание крылось в том, что логика, вызывающая обработку нажатия клавиши "Открыть" в дизайнере, приводила к тому, что после загрузки данных в отчет (Report.Load()), вызывался такой интересный метод, как Designer.InitReport(). Но вся прелесть в том, что он internal.
    Открыл исходники, сделал public на этот метод (вопрос, почему он не public у разработчиков?). Собрал.
    Вызвал метод перед Unlock. Заработала родимая.

    Вопрос: почему он не public у разработчиков? Есть ли другой вариант решения (я не нашел).
    Спасибо.
  • отредактировано 07:48
    Я как раз вчера сделал его public для решения проблемы. Очередная сборка будет готова сегодня в полночь.
  • seversever Вологодская обл., г. Череповец
    отредактировано 07:48
    AlexTZ написал: »
    Я как раз вчера сделал его public для решения проблемы. Очередная сборка будет готова сегодня в полночь.
    Спасибо. Будем ждать.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.