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);
}
}