private void button2_Click(object sender, System.EventArgs e) { var rpt = new FastReport.Report(); var data = new List <ARAPDataEntity>(); rpt.Report.Load(@"D:\WorkingDir\LBOM\LBOM\Report\ARAccount.frx"); rpt.Report.Dictionary.RegisterBusinessObject(data, "DataItem", 1, true); rpt.Save(@"D:\WorkingDir\LBOM\LBOM\Report\ARAP_RawData.frx"); rpt.Clear(); rpt.Dispose(); }
public static void CreateDataSource(string frxPath, Dictionary <string, IEnumerable> datasource, int maxNestingLevel = 3) { var rel = new FastReport.Report(); rel.Load(frxPath); foreach (var pair in datasource) { rel.Dictionary.RegisterBusinessObject(pair.Value, pair.Key, maxNestingLevel, true); } rel.Save(frxPath); }
private void biExportModel_Click(object sender, EventArgs e) { var model = GetSelectModel(); if (model != null) { saveFileDialog.FileName = model.VERM_NAME; saveFileDialog.InitialDirectory = Path.Combine(Application.StartupPath, "vermodes"); if (saveFileDialog.ShowDialog(this) == DialogResult.OK) { _report.Save(saveFileDialog.FileName); } } }
/// <summary> /// 预览 /// </summary> /// <param name="dt"></param> public void Preview(DataTable dt) { if (dt == null || dt.Rows.Count == 0) { MessageBoxEx.ShowWarning("没有可预览数据!"); return; } FastReport.Report report = GetReport(dt); report.Save("tb_parts.frx"); if (report != null) { report.Prepare(); report.ShowPrepared(); report.Dispose(); } else { MessageBoxEx.ShowWarning("没有预览数据!"); } }
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; } } }
private void BtnDrucken_Click(object sender, RoutedEventArgs e) { _Report.Clear(); var vorgang = Convert.ToInt32((sender as Button).Tag); // 1 - Anzeigen, 2 - Drucken, 3 - Design, 4 - Neuer Report, 5 - Report Exportieren, 6 - Löschen var auswahl = EnumFilterAuswertung.Arbeitszeit; if (tcArbeitszeit.SelectedIndex == 1) { auswahl = EnumFilterAuswertung.ArbeitszeitAuswertung; } if (vorgang != 4) { switch (auswahl) { case EnumFilterAuswertung.Arbeitszeit: _AktuellerReport = _ListeReporteArbeitszeiten.Current; break; case EnumFilterAuswertung.ArbeitszeitAuswertung: _AktuellerReport = _ListeReporteAuswertung.Current; break; } if (_AktuellerReport == null) { MessageBox.Show("Es wurde kein Report ausgewählt.", "Fehler !", MessageBoxButton.OK, MessageBoxImage.Information); return; } switch (vorgang) { case 0: // Reportname ändern var formNeu = new Fenster.FormReportName(_AktuellerReport.ReportName); if (formNeu.ShowDialog() ?? false) { _AktuellerReport.AnzeigeReportname = formNeu.ReportName; _ListeReporteArbeitszeiten.DsSave(); } return; case 5: // Exportieren SaveFileDialog dia = new SaveFileDialog() { FileName = _AktuellerReport.ReportName, Filter = "Fastreport (*.frx)|*.frx|Alle Dateien (*.*)|*.*", FilterIndex = 1 }; if (dia.ShowDialog() ?? false) { _Report.Save(dia.FileName); MemoryStream mem; mem = new MemoryStream(_AktuellerReport.Report); using (Stream f = File.Create(dia.FileName)) { mem.CopyTo(f); } } return; case 6: // Report löschen var mb = MessageBox.Show($"Report {_AktuellerReport.ReportName} löschen ?", "Löschabfrage", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.None); if (mb == MessageBoxResult.Yes) { _AktuellerReport.DatenAbgleich.Geloescht = true; switch (auswahl) { case EnumFilterAuswertung.Arbeitszeit: _ListeReporteArbeitszeiten.Remove(_AktuellerReport); break; case EnumFilterAuswertung.ArbeitszeitAuswertung: _ListeReporteAuswertung.Remove(_AktuellerReport); break; } } return; } if (_AktuellerReport.Report == null) { vorgang = 3; } else { var mem = new MemoryStream(_AktuellerReport.Report); _Report.Load(mem); } } switch (auswahl) { case EnumFilterAuswertung.Arbeitszeit: var bediener = _ListeArbeitszeitenAuswahl.Daten.Select(s => s.eBediener).Distinct().ToList(); _Report.RegisterData(bediener.Select(s => new { s.Id, s.Name }).ToList(), "Bediener"); var dat = _DzArbeitszeitBis.AnzeigeDatumZeit; var db = _ListeArbeitszeitenAuswahl.Db; var sollStunden = JgZeit.StringInZeit(db.tabSollStundenSet.FirstOrDefault(w => (w.Jahr == dat.Year) && (w.Monat == dat.Month) && !w.DatenAbgleich.Geloescht).SollStunden, TimeSpan.Zero); var lFeiertage = db.tabFeiertageSet.Where(w => (w.Datum.Year == dat.Year) && (w.Datum.Month == dat.Month) && !w.DatenAbgleich.Geloescht).ToList(); var lPausen = db.tabPausenzeitSet.Where(w => !w.DatenAbgleich.Geloescht).ToList(); var listeAuswertungen = new List <ArbeitszeitBediener>(); foreach (var bedAusw in bediener) { var ds = new ArbeitszeitBediener(_Erstellung.Db, _AzRunden); ds.BedienerBerechnen(bedAusw, (short)dat.Year, (byte)dat.Month, sollStunden, lFeiertage, lPausen); listeAuswertungen.Add(ds); } _Report.RegisterData(listeAuswertungen, "Auswertungen"); _Report.RegisterData(_ListeArbeitszeitenAuswahl.Daten, "Stechzeiten"); _Report.SetParameterValue("Zeitraum.DatumVon", _DzArbeitszeitVon.AnzeigeDatumZeit); _Report.SetParameterValue("Zeitraum.DatumBis", _DzArbeitszeitBis.AnzeigeDatumZeit); break; case EnumFilterAuswertung.ArbeitszeitAuswertung: var aktStandort = _Erstellung.AktuellerBediener.eStandort; var bedienerImStandort = _Erstellung.ListeBediener.Daten.Where(w => w.fStandort == aktStandort.Id).ToList(); var listeAuswertung = new List <ArbeitszeitBediener>(); foreach (var bedAusw in bedienerImStandort) { var ds = new ArbeitszeitBediener(_Erstellung.Db, _AzRunden); ds.BedienerBerechnen(bedAusw, _Erstellung.Jahr, _Erstellung.Monat, _Erstellung.SollStundenMonat, _Erstellung.ListeFeiertageMonat, _Erstellung.ListePausen.Daten); listeAuswertung.Add(ds); } _Report.RegisterData(bedienerImStandort.Select(s => new { s.Id, s.Name }).ToList(), "Bediener"); _Report.RegisterData(listeAuswertung, "ListeAuswertung"); _Report.SetParameterValue("Auswertung.Monat", (JgZeitHelper.JgZeit.Monate)_Erstellung.Monat); _Report.SetParameterValue("Auswertung.Jahr", _Erstellung.Jahr); break; default: break; } if (vorgang == 4) // Neuer Report { var repName = ""; var formNeu = new Fenster.FormReportName(); if (!formNeu.ShowDialog() ?? false) { return; } repName = formNeu.ReportName; string username = System.Security.Principal.WindowsIdentity.GetCurrent().Name; _AktuellerReport = new tabAuswertung() { Id = Guid.NewGuid(), FilterAuswertung = auswahl, ReportName = repName, ErstelltDatum = DateTime.Now, ErstelltName = username, GeaendertDatum = DateTime.Now, GeaendertName = username, }; switch (auswahl) { case EnumFilterAuswertung.Arbeitszeit: _ListeReporteArbeitszeiten.Add(_AktuellerReport); break; case EnumFilterAuswertung.ArbeitszeitAuswertung: _ListeReporteAuswertung.Add(_AktuellerReport); break; } _Report.Design(); } else { switch (vorgang) { case 1: try { _Report.Show(); } catch (Exception ex) { Helper.InfoBox("Fehler beim Aufruf der Auswertung", ex); } break; case 2: try { _Report.Print(); } catch (Exception ex) { Helper.InfoBox("Fehler beim Drucken der Auswertung", ex); } break; case 3: try { _Report.Design(); } catch { } break; } } }
private void btnSave_Click(object sender, EventArgs e) { MemoryStream stream = new MemoryStream(); report.Save(stream); byte[] bt = stream.ToArray(); SqlTransaction trans = BWS.ERP.BaseControl.ConnectSetting.SysSqlConnection.BeginTransaction(); try { if (DataFlag == "Add") { string InsertSql = "INSERT INTO sysReport(sReportGUID,sReportName,mReport,bIsDefault,sRemark) VALUES(@sReportGUID,@sReportName,@mReport,@bIsDefault,@sRemark)"; SqlParameter[] parameters = { new SqlParameter("@sReportGUID", SqlDbType.VarChar, 50), new SqlParameter("@sReportName", SqlDbType.VarChar, 50), new SqlParameter("@mReport", SqlDbType.Image), new SqlParameter("@bIsDefault", SqlDbType.Bit), new SqlParameter("@sRemark", SqlDbType.VarChar, 500) }; parameters[0].Value = rpguid; parameters[1].Value = txtReportName.Text; parameters[2].Value = bt; parameters[3].Value = 0; parameters[4].Value = txtRemark.Text; DbHelperSQL.ExecuteSql(InsertSql, trans, parameters); trans.Commit(); initButtonsState("Save"); GetReportData(); BWS.ERP.BaseControl.Public.SystemInfo("保存成功"); } else if (DataFlag == "Edit") { if (((DataRowView)dsReport.Current)["ID"].ToString() == "") { return; } else { string UpdateSql = "UPDATE sysReport SET sReportName=@sReportName,mReport=@mReport,sRemark=@sRemark WHERE ID=" + ((DataRowView)dsReport.Current)["ID"].ToString(); SqlParameter[] parameters = { new SqlParameter("@sReportName", SqlDbType.VarChar, 50), new SqlParameter("@mReport", SqlDbType.Image), new SqlParameter("@sRemark", SqlDbType.VarChar, 500) }; parameters[0].Value = txtReportName.Text; parameters[1].Value = bt; parameters[2].Value = txtRemark.Text; DbHelperSQL.ExecuteSql(UpdateSql, trans, parameters); trans.Commit(); initButtonsState("Save"); GetReportData(); BWS.ERP.BaseControl.Public.SystemInfo("保存成功"); } } } catch (Exception ex) { trans.Rollback(); BWS.ERP.BaseControl.Public.SystemInfo("保存失败!" + ex.Message, true); } }