Custom Save/open Dialog

отредактировано 10:15 Раздел: FastReport .NET
Версия 2015.4
Содержимое отчета хранится в базе.
Загружаю в environmentSettings1_CustomOpenReport:
...
using( MemoryStream stream = new MemoryStream( Content ) ) {
    e.Report.Load( stream );
}
Сохраняю в environmentSettings1_CustomSaveReport:
using( MemoryStream stream = new MemoryStream() ) {
 e.Report.Save( stream );
 ...
environmentSettings1_CustomOpenDialog и environmentSettings1_CustomSaveDialog пустые.


Понадобилось добавить возможность сохранения в локальный файл и загрузки из локального файла.
Дописал nvironmentSettings1_CustomOpenDialog, environmentSettings1_CustomSaveDialog.

И возникла такая проблема:
Если в дизайнере нажимать "сохранить" или "сохранить как" - работает как раньше, environmentSettings1_CustomSaveDialog не вызывается.
Но если сначала сделать "Открыть" - то "сохранить"/"сохранить как" приводят к вызову environmentSettings1_CustomSaveDialog.

Как мне различить "сохранить" (для сохранения в базу) и "сохранить как" (для сохранения в файл) ?

Комментарии

  • отредактировано 10:15
    Perf написал: »
    Версия 2015.4
    Содержимое отчета хранится в базе.
    Загружаю в environmentSettings1_CustomOpenReport:
    ...
    using( MemoryStream stream = new MemoryStream( Content ) ) {
        e.Report.Load( stream );
    }
    
    Сохраняю в environmentSettings1_CustomSaveReport:
    using( MemoryStream stream = new MemoryStream() ) {
     e.Report.Save( stream );
     ...
    
    environmentSettings1_CustomOpenDialog и environmentSettings1_CustomSaveDialog пустые.
    Понадобилось добавить возможность сохранения в локальный файл и загрузки из локального файла.
    Дописал nvironmentSettings1_CustomOpenDialog, environmentSettings1_CustomSaveDialog.

    И возникла такая проблема:
    Если в дизайнере нажимать "сохранить" или "сохранить как" - работает как раньше, environmentSettings1_CustomSaveDialog не вызывается.
    Но если сначала сделать "Открыть" - то "сохранить"/"сохранить как" приводят к вызову environmentSettings1_CustomSaveDialog.

    Как мне различить "сохранить" (для сохранения в базу) и "сохранить как" (для сохранения в файл) ?

    Не понятно, что куда вы дописали,

    судя по примеру если у вас есть событие CustomSaveDialog_Handler и вы в нем задали свой отдельный диалог, то он и будет вызываться.
    private void CustomSaveDialog_Handler(object sender, OpenSaveDialogEventArgs e)
    {
    using (SaveFileDialog dialog = new SaveFileDialog())
    {
    dialog.Filter = "Report files (*.frx)|*.frx";
    // get default file name from e.FileName
    dialog.FileName = e.FileName;

    // set e.Cancel to false if dialog was succesfully executed
    e.Cancel = dialog.ShowDialog() != DialogResult.OK;
    // set e.FileName to the selected file name
    e.FileName = dialog.FileName;
    }
    }

    кроме того вы говорите в дизайнере. Тогда вам стоит глянуть на событие класс DesignerSettings в нем тоже есть событие CustomSaveDialog Occurs when the report designer is about to show the "Save" dialog.

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

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