AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Letzten Datenpunkt in Diagramm Excel beschriften
Thema durchsuchen
Ansicht
Themen-Optionen

Letzten Datenpunkt in Diagramm Excel beschriften

Ein Thema von Nekromus · begonnen am 14. Jun 2019 · letzter Beitrag vom 14. Jun 2019
Antwort Antwort
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#1

Letzten Datenpunkt in Diagramm Excel beschriften

  Alt 14. Jun 2019, 08:37
Hallo Leute,

nochmal Danke für eure bisherige Hilfe.

Nun muss ich den letzten Datenpunkt einer Series in einem Diagramm beschriften. Hier ist der Code:

Delphi-Quellcode:
procedure TDoExportForm.CreateSeries(sc: SeriesCollection; FlowStr, ValueStr: String; out minmax: TMinMax);
var
  ser: Series;
  i: Integer;
  ws: _Worksheet;
  cell1, cell2: OleVariant;
  spalteFlow, spalteValue: Integer;
  zeilen: Integer;
  maxflow, minflow, maxvalue, minvalue, temp: Real;
  pts: Points;
  pt: Point;
  o: integer;
  rng: ExcelRange;
begin
  minmax.maxFlow:= varNull;
  minmax.maxValue:= varNull;
  minmax.minFlow:= varNull;
  minmax.minValue:= varNull;

  for i:= 1 to Excel.Worksheets.Count do begin
    ws:= Excel.Worksheets[i] as _Worksheet;
    if IsDataWorksheet(ws) then begin
      spalteFlow:= FindeSpalte(ws, FlowStr);
      spalteValue:= FindeSpalte(ws, ValueStr);

      if (spalteFlow > 0) and (spalteValue > 0) then begin
        zeilen:= Min(ZaehleZeilen(ws, SpalteFlow), ZaehleZeilen(ws, SpalteValue));
        if Zeilen > 0 then begin
          ser:= sc.NewSeries;
          ser.Name:= ws.Name;

          ser.AxisGroup:= xlPrimary;
          cell1:= ws.Cells.Item[3, spalteFlow];
          cell2:= ws.Cells.Item[zeilen +2, spalteFlow];

          ser.XValues:= ExcelRangeToString(ws, cell1, cell2);

          cell1:= ws.Cells.Item[3, spalteValue];
          cell2:= ws.Cells.Item[zeilen +2, spalteValue];
          ser.Values:= ExcelRangeToString(ws, cell1, cell2);

          ser.Border.ColorIndex:= 1;
          ser.Border.Weight:= xlThin;

          pts:= ser.Points(EmptyParam) as Points;
          pt:= pts.Item(pts.Count); // Hier kommt es zur Exception, ungültiger Paramter
          pt.ApplyDataLabels(xlDataLabelsShowLabel, EmptyParam, EmptyParam, EmptyParam, true, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
          pt.DataLabel.ShowValue:= False;
          cell1:= ws.Cells.Item[1, 3];
          pt.DataLabel.Caption:= ExcelRangeToString(ws, cell1, cell1);
          pt.DataLabel.Interior.ColorIndex:= 2;
          pt.DataLabel.Interior.PatternColorIndex:= 1;
          pt.DataLabel.Font.Size:= 8;
          pt.DataLabel.AutoScaleFont:= False;
Nach der Doku (https://docs.microsoft.com/de-de/off....points(object)).

Datenpunkte in der Series sind vorhanden. Die sehe ich im exportieren Diagramm.

Hat jemand eine Idee, wie ich die Beschriftung hinbekomme?
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Letzten Datenpunkt in Diagramm Excel beschriften

  Alt 14. Jun 2019, 10:38
ginge statt
pts:= ser.Points(EmptyParam) as Points;
auch
pts:= ser.Points;
?

statt
pt:= pts.Item(pts.Count);
einfach
pt:= pts(pts.Count);

Siehe Screenshot Excel-Hilfe
Miniaturansicht angehängter Grafiken
points.jpg  
Ralph
  Mit Zitat antworten Zitat
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#3

AW: Letzten Datenpunkt in Diagramm Excel beschriften

  Alt 14. Jun 2019, 11:04
pts:= ser.Points; --> nicht genügend wirkliche Parameter.

pt:= pts(pts.Count); -->Inkompatible Typen Point und Points.

Das Problem tritt ja auch erst mit Office 365 auf.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz