Inhalt


 

Der Bericht "Umsatzdiagramm" ermittelt für die auswählten Kunden die Umsätze der letzten 5 Jahre. Für die Kunden mit dem größten Gesamtumsatz aus diesen 5 Jahren wird ein Diagramm erstellt, das die relative Größe der Kunden und die zeitliche Entwicklung zeigt.

Die Anzahl der im Diagramm dargestellten Kunden ist zunächst 10; sie kann vom Benutzer variiert werden. Die restlichen Kunden können optional in Summe dargestellt werden.

Datenbeschaffung

Die Datenbeschaffung ist identisch mit dem ersten Bericht Umsätze.
Layout

Wir erzeugen das Diagramm als .png Datei in VB.NET. Hierzu gibt es in VB.NET gute Möglichkeiten oder Sie nutzen eines der zahlreichen Grafikpakete für VB.NET. Wir haben uns für den ChartDirector entschieden.

Bitte beachten Sie, dass Sie bei einem produktiven Einsatz des ChartDirector zum Erzeugen eigener Grafiken eine "ChartDirector Developer License for Windows" benötigen. Die in CIS mobile für Standard-Diagramme verwendete Lizenz umfaßt nicht die Entwicklung eigener Diagramme.

Typischer Ausschnitt aus dem VB.NET Coding:

VB.net
  ' Create a XYChart object of size 500 x 320 pixels, 
' with a pale purpule
 ' (0xffccff) background, a black border, and 1 pixel 3D border effect.
 Dim c As XYChart = New XYChart(CHARTFAC * 650, _
         CHARTFAC * 450, &HEEEEFF, &H0, 1)

 c.setRoundedFrame()

 ' Set the plotarea at (x,y ) and of size...
 c.setPlotArea(CHARTFAC * 70, CHARTFAC * 62, CHARTFAC * 550, _
     CHARTFAC * 300, &HFFFFFF, -1, -1, &HC0C0C0, -1)

 ' Add a legend box 
 c.addLegend2(CHARTFAC * 70, CHARTFAC * 380, 5, "Helvetica", _
   CHARTFAC * 9).setBackground(Chart.Transparent)

 ' Add a title box to the chart
 Dim title = c.addTitle(ic.MessageText("REPORT_SALES2_TITLE") & _
      " " & selectedRegions, "Helvetica", CHARTFAC * 10, &HFFFFFF)

 title.setBackground(&H5D9C)
 title.setMargin2(0, 0, CHARTFAC * 10, CHARTFAC * 10)

 ' Set the labels on the x axis
 c.xAxis().setLabels(labels)

 ' Set space between labels
 c.yAxis.setTickDensity(CHARTFAC * 25, -1)

Zusatzparameter

Das Diagramm wird zunächst für die 10 umsatzstärksten Kunden erstellt. Der Benutzer hat in der Anzeige dann die Möglichkeit, statt 10 eine andere Kundenanzahl auszuwählen. Zusätzlich kann er ankreuzen, dass die restlichen Kunden in Summe im Diagramm dargestellt werden, sodass man die Relation der dargestellten Kunden zum Gesamtumsatz erkennen kann.

Die einzelnen Berichtsoptionen (bis zu 10 sind möglich) sind in dem übergebenen Dictionary-Object "keys" abgelegt. Der Name im Dictionary setzt sich aus der Report-ID, dem String ".OPTION." und der Nummer 0,1,2,...9 zusammen. In unserem Fall also

Anzahl Kunden:                  SALES2.OPTION.0
Übrige Kunden in Summe:  SALES2.OPTION.1

Beim ersten Aufruf eines Berichts werden alle Optionen mit "" initialisiert. Wir können in diesem Fall einen Default-Wert annehmen, z.B. 10 für SALES.OPTION.0, und schreiben den Default-Wert in das Dictionary-Object "keys" zurück, damit die Option bei der ersten Anzeige des Berichts mit dem richtigen Wert erscheint.
 

Das VB.NET Coding dazu sieht wie folgt aus, wobei hier durch Try..Catch für jeden nichtnumerischen Wert der Option 0 der Default "10" eingesetzt wird:

VB.net
' Report options

        ' Option 0: Max customer count 
        Dim maxcount As Integer = 0

        ' Option 1: with remaining customers
        Dim withrest As Boolean = False

        Dim strmaxcount As String = GetItem(keys, "SALES2.OPTION.0")
        Try
            maxcount = CInt(strmaxcount)
        Catch ex As Exception
            maxcount = 10
            InsertItem(keys, "SALES2.OPTION.0", "10")
        End Try

        withrest = (GetItem(keys, "SALES2.OPTION.1") <> "")
 

Zur Darstellung der Berichtsoptionen dient eine HTML-Seite. Sie trägt den Namen "SALES2.OTPIONS.HTML" und liegt im Verzeichnis config/reports/views.DE (deutsche Version). Falls Sie weitere Sprachen unterstützen, entsprechend in confgi/reports/views.XX, z.B. config/reports/views.EN für Englisch und config/reports/views.FR für Französisch.

Die HTML-Seite ist im Prinzip beliebig. Für die Optionen können Sie Eingabefelder <INPUT>, Drop-Down Felder <SELECT> und Checkboxen <INPUT TYPE='CHECKBOX'> nutzen. Die Verbindung zur jeweiligen Option wird über die HTML-Id d  'OPTION.0', 'OPTION.1',... des jeweiligen Elements hergestellt.

In unserem Fall sieht es wie folgt aus:

HTML
<html>

<head>
</head>

<body>

<div style='font-family: Helvetiva; font-size:12px;'></div>

<b>Umsatzstärkste Kunden im 5-Jahres-Vergleich</b>
<br>
<br>

<span>Anzahl Kunden:  </span>

 <select size="1" id='OPTION.0' style='font-size:12px'>
      <option  value='1'>1</option>
      <option  value='2'>2</option>
      <option  value='3'>3</option>
      <option  value='4'>4</option>
      <option  value='5'>5</option>
      <option  value='10'>10</option>
      <option  value='15'>15</option>
      <option  value='20'>20</option>
      <option  value='25'>25</option>
      <option  value='30'>30</option>

    </select>

&nbsp;&nbsp;&nbsp;&nbsp;

<input type=checkbox id='OPTION.1'> 
    <span> Übrige Kunden in Summe anzeigen   </span>

</body>

</html>
 

Bitte beachten Sie:

  • CSS-Style-Angaben werden erst unterhalb des <BODY> Tags beachtet, da das HTML-Coding in die Anzeige des Berichts kopiert wird.
     
  • Die Taste zum erneuten Aufruf des Berichts nach Eingabe neuer Optionen wird von CIS mobile automatisch eingeblendet