private void ExportReport()

in sqlnexus/fmnexus.as.resource.cs [1545:1669]


        private void ExportReport(ReportExportType exporttype, string filename)
        {
            string IMAGE_DEVICE_INFO = @"<DeviceInfo><ColorDepth>24</ColorDepth>
                                <DpiX>96</DpiX><DpiY>96</DpiY><MarginBottom>.25in</MarginBottom>
                                <MarginLeft>.25in</MarginLeft><MarginRight>.25in</MarginRight>
                                <MarginTop>.25in</MarginTop><OutputFormat>{0}</OutputFormat>
                                <PageHeight>11in</PageHeight><PageWidth>10in</PageWidth>
                                <StartPage>1</StartPage></DeviceInfo>";


            Cursor save = StartWaiting();
            try
            {
                try
                {
                    LogMessage(sqlnexus.Properties.Resources.Msg_Exporting + filename);
                    string nullStr = null;
                    string[] streamids;
                    Warning[] warnings = null;

                    string format;
                    string exporttypestr;

                    switch (exporttype)
                    {
                        case ReportExportType.Excel:
                            {
                                format = "Excel";
                                exporttypestr = "Excel";
                                break;
                            }
                        case ReportExportType.PDF:
                            {
                                format = "PDF";
                                exporttypestr = "PDF";
                                break;
                            }
                        case ReportExportType.BMP:
                            {
                                format = "Image";
                                exporttypestr = "BMP";
                                break;
                            }
                        case ReportExportType.EMF:
                            {
                                format = "Image";
                                exporttypestr = "EMF";
                                break;
                            }
                        case ReportExportType.GIF:
                            {
                                format = "Image";
                                exporttypestr = "GIF";
                                break;
                            }
                        case ReportExportType.JPEG:
                            {
                                format = "Image";
                                exporttypestr = "JPEG";
                                break;
                            }
                        case ReportExportType.PNG:
                            {
                                format = "Image";
                                exporttypestr = "PNG";
                                break;
                            }
                        case ReportExportType.TIFF:
                            {
                                format = "Image";
                                exporttypestr = "TIFF";
                                break;
                            }
                        default:
                            {
                                format = "Image";
                                exporttypestr = "JPEG";
                                break;
                            }
                    }

                    string device_info = string.Format(IMAGE_DEVICE_INFO, exporttypestr);
                    byte[] result = CurrentReport.Render(format, device_info, out nullStr, out nullStr, out nullStr, out streamids, out warnings);

                    foreach (Warning w in warnings)
                        LogMessage(sqlnexus.Properties.Resources.Msg_RenderWarning + w.Message, MessageOptions.Silent);

                    if (ReportExportType.Clipboard == exporttype)
                    {
                        MemoryStream stream = new MemoryStream(result);

                        DataObject d = new DataObject();
                        d.SetData(DataFormats.Bitmap, new Bitmap(stream));

                        Clipboard.SetDataObject(d, true);
                    }
                    else
                    {
                        //Write out the stream in a new file.

                        FileStream fstream = new FileStream(filename,
                                FileMode.Create,
                                System.Security.AccessControl.FileSystemRights.WriteData,
                                FileShare.None, 
                                4096,
                                FileOptions.None, Util.GetFileSecurity());
                        

                        //FileStream fstream = File.Create(filename, result.Length);
                        fstream.Write(result, 0, result.Length);
                        fstream.Close();
                    }

                    LogMessage(sqlnexus.Properties.Resources.Msg_ReportCopied);
                }
                catch (Exception ex)
                {
                    Globals.HandleException(ex, this, this);
                }
            }
            finally
            {
                StopWaiting(save);
            }
        }