После экспорта отчета меняется рабочая директория приложения

отредактировано 07:52 Раздел: FastReport .NET
Для загрузки отчета я использую относительный путь:

report.Load(@Reports\report.frx);

то есть отчет ищется по пути относительно рабочей директории приложения (в большинстве случаев папка в которой находится exe)

после экспорта отчета (например в папку Мои документы) рабочая директория меняется на папку куда экспортировался отчет. После этого загрузка отчетов работать конечно перестает (file not found).

Хотелось бы чтобы экспорт отчетов не менял рабочую директорию.




Комментарии

  • отредактировано 07:52
    Это не экспорт меняет рабочую директорию, а окно "Сохранить файл". Решение проблемы: не использовать относительные пути для загрузки отчета.
  • MVAMVA
    отредактировано 07:52
    AlexTZ написал: »
    Это не экспорт меняет рабочую директорию, а окно "Сохранить файл". Решение проблемы: не использовать относительные пути для загрузки отчета.
    получить рабочую дир. можно несколько способами, например: Application.StartupPath или Environment.CurrentDirectory.

    После сохранения файла изменяется именно Environment.CurrentDirectory, а Application.StartupPath остается неизменным.
    Поэтому можно использовать так: report.Load(Application.StartupPath + @\Reports\rep1.frx);

    PS: не использовать относительные пути нельзя, например при деплое через ClickOnce
  • отредактировано 07:52
    Все верно, я имел в виду не использовать код типа
    report.Load("report1.frx")

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

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