Пример #1
0
        internal void OnCustomSaveDialog(object sender, OpenSaveDialogEventArgs e)
        {
            if (CustomSaveDialog != null)
            {
                CustomSaveDialog(sender, e);
            }
            else
            {
                // standard save dialog
                using (SaveFileDialog dialog = new SaveFileDialog())
                {
                    string filter = Res.Get("FileFilters,Report");
                    if (e.Designer.ActiveReport.ScriptLanguage == Language.CSharp)
                    {
                        filter += "|" + Res.Get("FileFilters,CsFile");
                    }
                    else
                    {
                        filter += "|" + Res.Get("FileFilters,VbFile");
                    }
                    dialog.Filter   = filter;
                    dialog.FileName = Path.GetFileNameWithoutExtension(e.FileName);

                    e.Cancel   = dialog.ShowDialog() != DialogResult.OK;
                    e.FileName = dialog.FileName;
                    if (dialog.FilterIndex != 1)
                    {
                        e.Data     = dialog.FilterIndex;
                        e.IsPlugin = true;
                    }
                }
            }
        }
Пример #2
0
        internal void OnCustomOpenDialog(object sender, OpenSaveDialogEventArgs e)
        {
            if (CustomOpenDialog != null)
            {
                CustomOpenDialog(sender, e);
            }
            else
            {
                // standard open dialog
                using (OpenFileDialog dialog = new OpenFileDialog())
                {
                    List <ImportPlugin> importPlugins = new List <ImportPlugin>();
                    string filter = Res.Get("FileFilters,Report");

                    foreach (IDesignerPlugin plugin in e.Designer.Plugins)
                    {
                        if (plugin is ImportPlugin)
                        {
                            importPlugins.Add(plugin as ImportPlugin);
                            filter += "|" + (plugin as ImportPlugin).Filter;
                        }
                    }

                    dialog.Filter = filter;

                    e.Cancel   = dialog.ShowDialog() != DialogResult.OK;
                    e.FileName = dialog.FileName;
                    if (dialog.FilterIndex != 1)
                    {
                        e.Data = importPlugins[dialog.FilterIndex - 2];
                    }
                }
            }
        }
Пример #3
0
        public bool SaveFile(bool saveAs)
        {
            // update report's script
            Report.ScriptText = Script;

            while (true)
            {
                OpenSaveDialogEventArgs e = new OpenSaveDialogEventArgs(Designer);
                string fileName           = Report.FileName;

                // show save dialog in case of untitled report or "save as"
                if (saveAs || String.IsNullOrEmpty(fileName))
                {
                    if (String.IsNullOrEmpty(fileName))
                    {
                        fileName = Res.Get("Designer,Untitled");
                    }
                    e.FileName = fileName;
                    Config.DesignerSettings.OnCustomSaveDialog(Designer, e);
                    if (e.Cancel)
                    {
                        return(false);
                    }

                    fileName = e.FileName;
                }

                OpenSaveReportEventArgs e1 = new OpenSaveReportEventArgs(Report, fileName, e.Data, e.IsPlugin);

                try
                {
                    Config.DesignerSettings.OnCustomSaveReport(Designer, e1);
                    // don't change the report name if plugin was used
                    if (e.IsPlugin)
                    {
                        fileName = Report.FileName;
                    }
                    Report.FileName = fileName;
                    FModified       = false;
                    Designer.UpdatePlugins(null);
                    if (!e.IsPlugin)
                    {
                        Designer.cmdRecentFiles.Update(fileName);
                    }
                    UpdateCaption();
                    return(true);
                }
                catch
                {
                    // something goes wrong, suggest to save to another place
                    FRMessageBox.Error(Res.Get("Messages,CantSaveReport"));
                    saveAs = true;
                }
            }
        }
Пример #4
0
        public bool LoadFile(string fileName)
        {
            OpenSaveDialogEventArgs e = new OpenSaveDialogEventArgs(Designer);

            // empty fileName: user pressed "Open" button, show open dialog.
            // non-empty fileName: user choosed a report from recent file list, just load the specified report.
            if (String.IsNullOrEmpty(fileName))
            {
                Config.DesignerSettings.OnCustomOpenDialog(Designer, e);
                if (e.Cancel)
                {
                    return(false);
                }
                fileName = e.FileName;
            }

            bool result = SaveCurrentFile();

            if (result)
            {
                try
                {
                    Designer.Lock();
                    OpenSaveReportEventArgs e1 = new OpenSaveReportEventArgs(Report, fileName, e.Data, false);
                    Config.DesignerSettings.OnCustomOpenReport(Designer, e1);
                    Report.FileName = fileName;
                    Designer.cmdRecentFiles.Update(fileName);
                    Config.DesignerSettings.OnReportLoaded(this, new ReportLoadedEventArgs(Report));
                    result = true;
                }
#if !DEBUG
                catch (Exception ex)
                {
                    EmptyReport(false);
                    FRMessageBox.Error(String.Format(Res.Get("Messages,CantLoadReport") + "\r\n" + ex.Message, fileName));
                    result = false;
                }
#endif
                finally
                {
                    InitReport();
                    Designer.Unlock();
                }
            }

            return(result);
        }