Erstellung eines Reports aus dem Anwendungscode in VB.NET

2020-09-17

Wenn wir über das .NET-Framework sprechen, denken wir normalerweise an die Programmiersprache #C. Einfach, weil der Anteil der C#-Programmierer überwältigend ist. Vergessen Sie aber auch nicht andere Sprachen. So möchte beispielsweise ein Benutzer des Stimulsoft-Reportgenerators einen Report aus dem Anwendungscode in der Sprache VB.Net erstellen:

“…At this moment I just testing, I would like to create a report with code from VB. At this moment I am trying to show a report with the tittle that I program in VB. but not show me anything in my web application.

Can you give me some guidance on how to do this would be possible to design the report from VB and it shows? Or if I'm omitting any instruction or object to make the report?..."

https://forum.stimulsoft.com/viewtopic.php?f=8&t=2806

Wie jeder andere Reportgenerator, mit dem Sie Reporte aus dem Code erstellen können, kann Stimulsoft Reports.NET aus VB.Net-Code verwendet werden. Die Entwickler haben dem Benutzer freundlicherweise erklärt, wie das geht.

Was in bestimmte Fälle angeht, finden wir in der FastReport.NET-Anwendung jedoch praktisch keine Beispiele in der VB.Net-Sprache. In Anbetracht dessen will ich in diesem Artikel ein Beispiel fürs Erstellen eines Reports aus dem Code einer benutzerdefinierten Anwendung in der Sprache VB.NET korrigieren und zeigen.

Eigentlich ist dies nur eine Interpretation des C# -Codes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 Dim AppFolder As String
 Dim report As New Report() 'create instance of class Report
 Dim ds As New DataSet() 'create dataset object
 
 AppFolder = "C:\Users\User\source\repos\VBCodeReport\VBCodeReport\App_Data"
 'load data
 ds.ReadXml(AppFolder + "\nwind.xml")
 report.RegisterData(ds)
 report.GetDataSource("Products").Enabled = True
 'create report page
 Dim page As New ReportPage()
 report.Pages.Add(page) 'add created page to report page collection
 page.CreateUniqueName() 'with generated name
 'create group header band
 Dim group As New GroupHeaderBand()
 page.Bands.Add(group) 'add the band to band collection
 group.CreateUniqueName() 'with generated name
 group.Height = Units.Centimeters * 1
 group.Condition = "[Products.ProductName].Substring(0,1)" 'set the group condition
 group.SortOrder = FastReport.SortOrder.Ascending 'and set sort order
 'create text object
 Dim groupTxt As New TextObject()
 groupTxt.Parent = group 'set the object on whitch the text will be shown
 groupTxt.CreateUniqueName()
 groupTxt.Bounds = New RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 1) 'set the text object bounds
 groupTxt.Text = "[[Products.ProductName].Substring(0,1)]" 'set the text value
 groupTxt.Font = New Font("Arial", 14, FontStyle.Bold) 'set the font style
 groupTxt.VertAlign = VertAlign.Center ' set the text align
 groupTxt.Fill = New LinearGradientFill(Color.LightGoldenrodYellow, Color.Gold, 90, 0.5F, 1) 'set the text object fill
 'create data band
 Dim data As New DataBand()
 group.Data = data 'set the group data
 data.CreateUniqueName()
 data.DataSource = report.GetDataSource("Products") 'set data band source
 data.Height = Units.Centimeters * 0.5F 'set data band height
 'create one more text object
 Dim productText As New TextObject()
 productText.Parent = data 'add the text object to data band
 productText.CreateUniqueName()
 productText.Bounds = New RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5F) 'set the text object bounds
 productText.Text = "[Products.ProductName]" 'set the text value
 'create group footer band
 group.GroupFooter = New GroupFooterBand()
 group.GroupFooter.CreateUniqueName()
 group.GroupFooter.Height = Units.Centimeters * 1 'set the group footer height
 'create total object
 Dim groupTotal As New Total()
 groupTotal.Name = "TotalRows" 'set total object name
 groupTotal.TotalType = TotalType.Count 'set total type
 groupTotal.Evaluator = data 'set the band for which the total will be calculated
 groupTotal.PrintOn = group.GroupFooter 'set the total place
 report.Dictionary.Totals.Add(groupTotal) 'add the total object to totals collection
 'create text object
 Dim totalText As New TextObject()
 totalText.Parent = group.GroupFooter 'set the object on whitch the text will be shown
 totalText.CreateUniqueName()
 totalText.Bounds = New RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5F) 'set the text object bounds
 totalText.Text = "Rows: [TotalRows]" 'set the text value
 totalText.HorzAlign = HorzAlign.Right 'set the text align
 totalText.Border.Lines = BorderLines.Top 'set the border lines type
 report.Show() 'show report

Aus dem Code und den Kommentaren geht hervor, dass ein Report mit Datengruppierung generiert wird. Dieses Beispiel zeigt jedoch, wie Sie mit den am häufigsten verwendeten Objekten in einfachen Reporten arbeiten. Bitte beachten Sie, dass es nicht ausreicht, ein Reportobjekt zu erstellen. Es muss dennoch auf dem Objekt "platziert" werden, auf dem es angezeigt wird. Dies ist ein Schlüssel zum korrekten Generieren eines Reports aus dem Code.

 Erstellung eines Reports aus dem Anwendungscode in VB.NET

 

20. November 2024

Lokalisierung und Ändern von Sprachen in FastReport VCL

FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern.
1. November 2024

Neue Funktionen des FastReport VCL Berichtseditors

Wir betrachten die neuen Funktionen des Berichtseditors: Hilfslinien, Hervorhebung von sich schneidenden Objekten, aktualisierte Berichts- und Datenbäume.
30. Oktober 2024

Verwendung von Stilen beim Erstellen von Berichten in FastReport VCL

Dieser Artikel beschreibt eine der neuen Funktionen von FastReport VCL - die Verwendung von Stilen und Stilseiten.
Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2024 Fast Reports Inc.