Custom Save/open Dialog
Версия 2015.4
Содержимое отчета хранится в базе.
Загружаю в environmentSettings1_CustomOpenReport:
Понадобилось добавить возможность сохранения в локальный файл и загрузки из локального файла.
Дописал nvironmentSettings1_CustomOpenDialog, environmentSettings1_CustomSaveDialog.
И возникла такая проблема:
Если в дизайнере нажимать "сохранить" или "сохранить как" - работает как раньше, environmentSettings1_CustomSaveDialog не вызывается.
Но если сначала сделать "Открыть" - то "сохранить"/"сохранить как" приводят к вызову environmentSettings1_CustomSaveDialog.
Как мне различить "сохранить" (для сохранения в базу) и "сохранить как" (для сохранения в файл) ?
Содержимое отчета хранится в базе.
Загружаю в 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.