Подмена диалогов "Открыть" и "Сохранить"
Если вы решили хранить отчеты в базе данных, вам может понадобиться изменить работу дизайнера так, чтобы вместо стандартных диалогов "Открыть файл" и "Сохранить файл" использовались ваши диалоги, работающие с базой данных. Для этого используйте глобальный класс FastReport.Utils.Config.DesignerSettings
(см. раздел "Конфигурация среды FastReport").
Он имеет следующие события:
Событие CustomOpenDialog
Вызывается при показе диалога "Открыть файл".
Вы должны показать собственный диалог в обработчике этого события.
Если диалог был выполнен успешно, вы должны вернуть параметр e.Cancel = false
, а так же вернуть имя файла в параметре e.FileName
.
Следующий пример показывает использование стандартного диалога открытия файла:
private void CustomOpenDialog_Handler(
object sender, OpenSaveDialogEventArgs e)
{
using (OpenFileDialog dialog = new OpenFileDialog())
{
dialog.Filter = "Report files (*.frx)|*.frx";
// 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;
}
}
Событие CustomSaveDialog
Вызывается при показе диалога "Сохранить файл".
Вы должны показать собственный диалог в обработчике этого события.
Если диалог был выполнен успешно, вы должны вернуть параметр e.Cancel = false
, а так же вернуть имя файла в параметре e.FileName
.
Следующий пример показывает использование стандартного диалога сохранения файла:
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;
}
}
Событие CustomOpenReport
Вызывается при чтении отчета.
В обработчике события вы должны загрузить отчет e.Report
из места, указанного в параметре e.FileName
.
Параметр e.FileName
содержит значение, которое вернул обработчик события CustomOpenDialog
.
Это может быть имя файла, имя записи в базе данных, и т.д.
Следующий пример показывает, как загрузить отчет из файла:
private void CustomOpenReport_Handler(object sender, OpenSaveReportEventArgs e)
{
// load the report from the given e.FileName
e.Report.Load(e.FileName);
}
Событие CustomSaveReport
Вызывается при записи отчета.
В обработчике события вы должны сохранить отчет e.Report
в место, указанное в параметре e.FileName
.
Параметр e.FileName
содержит значение, которое вернул обработчик события CustomSaveDialog
.
Это может быть имя файла, имя записи в базе данных, и т.д.
Следующий пример показывает, как сохранить отчет в файл:
private void CustomSaveReport_Handler(object sender, OpenSaveReportEventArgs e)
{
// save the report to the given e.FileName
e.Report.Save(e.FileName);
}