WinCC 7.2 Microsoft Office Chart 11.0

mystone

Level-1
Beiträge
111
Reaktionspunkte
19
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich habe eine Frage zu dem ActiveX Control "Microsoft Office Chart 11.0".
Es soll ein Kreisdiagramm aus 5 Prozesswerten dargestellt werden.
Das Diagramm selber bekomme ich hin, aber die einzelnen Kreissegmente müssen noch eine andere Farbe bekommen, nicht die Default Farben.

Das Diagramm wird so zusammengestellt:

Code:
Sub OnClick(Byval Item)                                                
    
    Dim chConstants
    'Objektreferenzen der Objekte im Bild
    Dim oSheet               'Spreadsheet in die Werte zum Zeichnen des Diagramms zwischengespeichert werden
    Dim ChartSpace1        'ChartSpace zur Ausgabe des Diagramms
    'Objektreferenzen erzeugen
    Set oSheet = ScreenItems("Spreadsheet")
    Set ChartSpace1 = ScreenItems("ChartSpace")
    'Konstanten des ChartSpace erzeugen
    Set chConstants = ChartSpace1.Constants
    
    'Fill the Sheet with Data
    With oSheet
        .Range("A1").Formula = "Betriebsbereit"
        .Range("A2").Formula = "Laden aktiv"
        .Range("A3").Formula = "Laden fertig"
        .Range("A4").Formula = "Laden fertig und abgekühlt"
        .Range("A5").Formula = "Fehler"
        .Range("B1").Formula = "40%"
        .Range("B2").Formula = "20%"
        .Range("B3").Formula = "20%"
        .Range("B4").Formula = "15%"
        .Range("B5").Formula = "5%"
        
        
    End With
    
    'Create an Pie chart using the Data in the Spreadsheet
    
    Dim oChart
    With ChartSpace1
        .Clear
        .Refresh
        .DataSource = oSheet.Object
        'Enable the legend for the chart workspace.
        .HasChartSpaceLegend = True
        'Position the legend for the chart workspace.
        .ChartSpaceLegend.Position = chConstants.chLegendPositionLeft
        'Enable the title for the ChartSpace
        .HasChartSpaceTitle = True
        .ChartSpaceTitle.Position = chConstants.chTitlePositionTop
        'set the charspace title
        .ChartSpaceTitle.Caption = "Titel des Diagramms"
        'Werte des Spreadsheets an CharSpace übergeben
        Set oChart = .Charts.Add
        oChart.Type = chConstants.chChartTypePie
        oChart.SetData 1, 0, "A1:A5" 'Spalte der Tabelle, Startzeile, Länge
        oChart.SetData 2, 0, "B1:B5" 'Spalte der Tabelle, Startzeile, Länge    
            
    End With
        
End Sub

Hat jemand eine Idee wie der VBS Code dafür aussieht die Farben zu verändern?

Ich würde, wenn möglich VBS Code vorziehen, dann kann ich alles in einem Script ausführen.

Im Anhang noch ein Bild, wie das bis jetzt aussieht.

Vielen Dank für eure Hilfe
Grüße
michstein

Kreisdiagramm.jpg
 
Hallo,
ich habe das (allerdings unter WinCCFlexibel) mit einem ähnlichen Control mal so gelösst :
Code:
Dim vbOrange1 , vbOrange2 , vbGreenL , vbGreenD , vbGrayL , vbGrayD
' RGB       ' bbggrr
vbOrange1 = &h1084FF
vbOrange2 = &h1084FD
vbGreenL  = &h01AA01
vbGreenD  = &h014001
vbGrayD   = &h505050
vbGrayL   = &hCFCFCF
'------------------------------------------------------------------------------------
'Chart-Einstellungen
myChart.PlotAreaColor = vbGrayL
myChart.GridColor = vbGrayD
... vielleicht ist es dir ja hilfreich ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
danke für deine Antwort.

Leider funktioniert der Code
Code:
oChart.PlotAreaColor = "FARBE"
nicht.

Mit der Fehlermeldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.: 'oChart.PlotAreaColor' wird abgebrochen.

Weiters sehe ich hier den Zugriff auf die einzelnen Kreissegmente nicht.
Es muss eine Möglichkeit geben die Segmente einzeln anzusprechen.

Ich habe bisher auch noch nichts brauchbares herausgefunden.

Danke & Grüße
michstein
 
Hallo,
also erstmal hast du nicht das Gleiche gemacht wie ich (ich habe eine VB-Script-Variable übergeben).
Dann könntest du noch versuchen, die Property absolut zu setzen :
Code:
oChart.PlotAreaColor = &h1084FF
... (was aber das Gleiche bewirken müßte ...

Gruß
Larry
 
Hallo,

Wie du sagst, das ändert leider auch nichts...

mit "FARBE" habe ich gemeint die Farbe festzulegen.
Egal ob mit "RGB(0,0,255) oder "red" oder im HTML Format (z.B. "0184FF")

Die besagte Fehlermeldung deutet meiner Meinung nach darauf hin, dass der Versuch,

durch
Code:
oChart.PlotAreaColor
auf eine Eigenschaft zuzugreifen fehlgeschlagen ist.
 
Zurück
Oben