Пример #1
0
        private void BtnDrucken_Click(object sender, RoutedEventArgs e)
        {
            var vorgang = Convert.ToInt32((sender as Button).Tag); // 1 - Anzeigen, 2 - Drucken, 3 - Design, 4 - Neuer Report, 5 - Report Exportieren, 6 - Löschen

            if (vorgang != 4)
            {
                switch (_Auswahl)
                {
                case EnumFilterAuswertung.Anmeldung: _AktAuswertung = (tabAuswertung)_ListeReporteAnmeldung.Current; break;

                case EnumFilterAuswertung.Bauteil: _AktAuswertung = (tabAuswertung)_ListeReporteBauteil.Current; break;

                case EnumFilterAuswertung.Reparatur: _AktAuswertung = (tabAuswertung)_ListeReporteReparatur.Current; break;
                }

                if (_AktAuswertung == null)
                {
                    MessageBox.Show("Es wurde kein Report ausgewählt.", "Fehler !", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                switch (vorgang)
                {
                case 5: // Exportieren
                    SaveFileDialog dia = new SaveFileDialog()
                    {
                        Filter      = "Fastreport (*.frx)|*.frx|Alle Dateien (*.*)|*.*",
                        FilterIndex = 1
                    };
                    if (dia.ShowDialog() ?? false)
                    {
                        _Report.Save(dia.FileName);
                        MemoryStream mem;
                        mem = new MemoryStream(_AktAuswertung.Report);
                        using (Stream f = File.Create(dia.FileName))
                        {
                            mem.CopyTo(f);
                        }
                    }
                    return;

                case 6: // Report löschen
                    var mb = MessageBox.Show($"Report {_AktAuswertung.ReportName} löschen ?", "Löschabfrage", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.None);
                    if (mb == MessageBoxResult.Yes)
                    {
                        switch (_Auswahl)
                        {
                        case EnumFilterAuswertung.Anmeldung: _ListeReporteAnmeldung.Delete(_AktAuswertung); break;

                        case EnumFilterAuswertung.Bauteil: _ListeReporteBauteil.Delete(_AktAuswertung); break;

                        case EnumFilterAuswertung.Reparatur: _ListeReporteReparatur.Delete(_AktAuswertung); break;
                        }
                    }
                    return;
                }

                _Report.Clear();
                if (_AktAuswertung.Report == null)
                {
                    vorgang = 3;
                }
                else
                {
                    var mem = new MemoryStream(_AktAuswertung.Report);
                    _Report.Load(mem);
                }
            }

            switch (_Auswahl)
            {
            case JgMaschineData.EnumFilterAuswertung.Anmeldung:
                if (tcAnmeldung.SelectedIndex == 0)
                {
                    _Report.RegisterData(_ListeAnmeldungen.Daten, "Daten");
                }
                else
                {
                    _Report.RegisterData(_ListeAnmeldungAuswahl.Daten, "Daten");
                    _Report.SetParameterValue("DatumVon", _DzAnmeldungVon.AnzeigeDatumZeit);
                    _Report.SetParameterValue("DatumBis", _DzAnmeldungBis.AnzeigeDatumZeit);
                }
                _Report.SetParameterValue("IstAktuell", tcAnmeldung.SelectedIndex == 0);
                break;

            case EnumFilterAuswertung.Bauteil:
                if (_Maschine == null)
                {
                    MessageBox.Show("Wählen Sie eine Maschine aus.");
                    return;
                }

                _Report.RegisterData(_ListeBauteilAuswahl.Daten, "Daten");
                _Report.SetParameterValue("MaschinenName", _Maschine.MaschinenName);
                _Report.SetParameterValue("DatumVon", _DzBauteilVon.AnzeigeDatumZeit);
                _Report.SetParameterValue("DatumBis", _DzBauteilBis.AnzeigeDatumZeit);
                break;

            case EnumFilterAuswertung.Reparatur:
                if (tcReparatur.SelectedIndex == 0)
                {
                    _Report.RegisterData(_ListeReparaturen.Daten, "Daten");
                }
                else
                {
                    _Report.RegisterData(_ListeReparaturAuswahl.Daten, "Daten");
                    _Report.SetParameterValue("DatumVon", _DzReparaturVon.AnzeigeDatumZeit);
                    _Report.SetParameterValue("DatumBis", _DzReparaturBis.AnzeigeDatumZeit);
                }
                _Report.SetParameterValue("IstAktuell", tcReparatur.SelectedIndex == 0);
                break;

            default:
                break;
            }

            if (vorgang == 4) // Neuer Report
            {
                var repName = "";

                var formNeu = new Fenster.FormNeuerReport();
                if (!formNeu.ShowDialog() ?? false)
                {
                    return;
                }
                repName = formNeu.ReportName;

                string username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                _AktAuswertung = new tabAuswertung()
                {
                    Id = Guid.NewGuid(),
                    FilterAuswertung = _Auswahl,
                    ReportName       = repName,
                    ErstelltDatum    = DateTime.Now,
                    ErstelltName     = username,
                    GeaendertDatum   = DateTime.Now,
                    GeaendertName    = username
                };

                switch (_Auswahl)
                {
                case EnumFilterAuswertung.Anmeldung: _ListeReporteAnmeldung.Add(_AktAuswertung); break;

                case EnumFilterAuswertung.Bauteil: _ListeReporteBauteil.Add(_AktAuswertung); break;

                case EnumFilterAuswertung.Reparatur: _ListeReporteReparatur.Add(_AktAuswertung); break;
                }

                _Report.Design();
            }

            else
            {
                switch (vorgang)
                {
                case 1: _Report.Show(); break;

                case 2: _Report.Print(); break;

                case 3: _Report.Design(); break;
                }
            }
        }