Exemplo n.º 1
0
        private void bsfirst_Click(object sender, EventArgs e)
        {
            if (sender == BExit)
            {
                if (WindowForm != null)
                {
                    WindowForm.Close();
                }
                else
                {
                    SendToBack();
                }
                if (OnClose != null)
                {
                    OnClose(this, new EventArgs());
                }
                return;
            }
            if (sender == bsfirst)
            {
                fmetapr.Page = 0;
                return;
            }
            if (sender == bsprior)
            {
                fmetapr.PriorPage();
                return;
            }
            if (sender == bsnext)
            {
                fmetapr.NextPage();
                return;
            }
            if (sender == bslast)
            {
                fmetapr.LastPage();
                return;
            }
            if (sender == bssearch)
            {
                FindNext();
                return;
            }
            if (sender == BScaleFull)
            {
                fmetapr.AutoScale = AutoScaleType.Real;
//                BScaleFull.Checked = true;
//                BScaleEntire.Pushed = false;
//                BScaleWide.Checked = false;
                return;
            }
            if (sender == this.BPageSetup)
            {
                try
                {
                    if (fmetapr.OnPageSetup())
                    {
                        if (fmetapr.MetaFile.Empty)
                        {
                            DisableButtons();
                        }
                        else
                        {
                            EnableButtons();
                        }
                    }
                }
                catch
                {
                    DisableButtons();
                    throw;
                }
                return;
            }
            if (sender == this.BParameters)
            {
                try
                {
                    if (fmetapr.OnReportParams())
                    {
                        if (fmetapr.MetaFile.Empty)
                        {
                            DisableButtons();
                        }
                        else
                        {
                            EnableButtons();
                        }
                    }
                }
                catch
                {
                    DisableButtons();
                    throw;
                }
                return;
            }
            if (sender == BScaleWide)
            {
                fmetapr.AutoScale = AutoScaleType.Wide;
//                BScaleFull.Checked = false;
//                BScaleEntire.Pushed = false;
//                BScaleWide.Checked = true;
                return;
            }
            if (sender == BScaleEntire)
            {
                fmetapr.AutoScale = AutoScaleType.EntirePage;
//                BScaleFull.Checked = false;
//                BScaleEntire.Pushed = true;
//                BScaleWide.Checked = false;
                return;
            }
            if (sender == BZoomMinus)
            {
                fmetapr.PreviewScale = fmetapr.PreviewScale - 0.1F;
//                BScaleFull.Checked = false;
//                BScaleEntire.Pushed = false;
//                BScaleWide.Checked = false;
                return;
            }
            if (sender == BZoomPlus)
            {
                fmetapr.PreviewScale = fmetapr.PreviewScale + 0.1F;
//                BScaleFull.Checked = false;
//                BScaleEntire.Checked = false;
//                BScaleWide.Checked = false;
                return;
            }
            if (sender == BPrint)
            {
                PrintOutWinForms prw = new PrintOutWinForms();
                //				prw.Preview=true;
                if ((fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Recalculate) ||
                    (fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Always))
                {
                    fmetapr.MetaFile.Clear();
                    fmetapr.MetaFile.BeginPrint(prw);
                }
                prw.ShowPrintDialog = true;
                prw.Print(fmetapr.MetaFile);
                return;
            }
            if (sender == BSave)
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    switch (saveFileDialog1.FilterIndex)
                    {
                    case 1:
                    case 2:
                    case 3:
                        PrintOutPDF prpdf = new PrintOutPDF();
                        if ((fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Recalculate) ||
                            (fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Always))
                        {
                            fmetapr.MetaFile.Clear();
                            fmetapr.MetaFile.BeginPrint(prpdf);
                        }
                        prpdf.Compressed = (saveFileDialog1.FilterIndex == 0);
                        if (saveFileDialog1.FilterIndex != 0)
                        {
                            string nfilename  = saveFileDialog1.FileName;
                            string nextension = System.IO.Path.GetExtension(nfilename).ToUpper();
                            if (nextension != ".PDF")
                            {
                                nfilename = nfilename + ".pdf";
                            }
                            prpdf.FileName = nfilename;
                            prpdf.Print(fmetapr.MetaFile);
                        }
                        else
                        {
                            fmetapr.MetaFile.SaveToFile(saveFileDialog1.FileName, true);
                        }
                        break;

                    case 4:
                    case 5:
                        PrintOutExcel prex = new PrintOutExcel();
                        prex.OneSheet = (saveFileDialog1.FilterIndex == 5);
                        prex.FileName = saveFileDialog1.FileName;

                        if ((fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Recalculate) ||
                            (fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Always))
                        {
                            fmetapr.MetaFile.Clear();
                            fmetapr.MetaFile.BeginPrint(prex);
                        }
                        prex.Print(fmetapr.MetaFile);
                        break;

                    case 6:
                    case 7:
                        string nresult = PrintOutCSV.ExportToCSV(fmetapr.MetaFile, true, 0, 0, System.Globalization.CultureInfo.CurrentUICulture.TextInfo.ListSeparator, '\"', 5);
                        using (System.IO.FileStream nfstream = new System.IO.FileStream(saveFileDialog1.FileName, System.IO.FileMode.Create, System.IO.FileAccess.Write))
                        {
                            if (saveFileDialog1.FilterIndex == 6)
                            {
                                StreamUtil.WriteStringToUTF8Stream(nresult, nfstream);
                            }
                            else
                            {
                                StreamUtil.WriteStringToStream(nresult, nfstream, Encoding.GetEncoding(1252));
                            }
                        }
                        break;
                    }
                }
                return;
            }
            if (sender == BMail)
            {
                // Update mail params
                if (fmetapr.OnMail != null)
                {
                    SendMailEventArgs margs = new SendMailEventArgs();
                    //                    string file_name;
                    string      filename;
                    PrintOutPDF prpdf = new PrintOutPDF();
                    if ((fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Recalculate) ||
                        (fmetapr.MetaFile.PrinterFonts == PrinterFontsType.Always))
                    {
                        fmetapr.MetaFile.Clear();
                        fmetapr.MetaFile.BeginPrint(prpdf);
                    }
                    filename = System.IO.Path.GetTempFileName();
                    try
                    {
                        filename         = System.IO.Path.ChangeExtension(filename, ".pdf");
                        prpdf.Compressed = true;
                        //prpdf.FileName = filename;
                        prpdf.FileName = "";
                        margs.Filename = filename;
                        prpdf.Print(fmetapr.MetaFile);
                        margs.Filename = filename;
                        margs.Content  = ((System.IO.MemoryStream)prpdf.PDFStream).ToArray();
                        StreamUtil.MemoryStreamToFile((System.IO.MemoryStream)prpdf.PDFStream, filename);
                        fmetapr.OnMail(this, margs);
                    }
                    finally
                    {
                        if (System.IO.File.Exists(filename))
                        {
                            System.IO.File.Delete(filename);
                        }
                    }
                }
                return;
            }
        }