HotXLS Docs

κλάση TXLSXChartLayout

Η TXLSXChartLayout αποθηκεύει ένα χειροκίνητο layout που διατηρεί κάθε πεδίο ξεχωριστά, για plot areas, τίτλους διαγράμματος ή άξονα και legend

Declaration

type
  TXLSXChartLayoutTarget = (xlsxChartLayoutOuter, xlsxChartLayoutInner);
  TXLSXChartLayoutMode = (xlsxChartLayoutFactor, xlsxChartLayoutEdge);

  TXLSXChartLayout = class
    property Enabled: Boolean;
    property HasTarget: Boolean;
    property HasXMode, HasYMode, HasWidthMode, HasHeightMode: Boolean;
    property HasX, HasY, HasWidth, HasHeight: Boolean;
    property Target: TXLSXChartLayoutTarget;
    property XMode, YMode, WidthMode, HeightMode: TXLSXChartLayoutMode;
    property X, Y, Width, Height: Double;
    procedure ClearTarget;
    procedure ClearXMode;
    procedure ClearYMode;
    procedure ClearWidthMode;
    procedure ClearHeightMode;
    procedure ClearX;
    procedure ClearY;
    procedure ClearWidth;
    procedure ClearHeight;
    procedure SetPositionAndSize(AX, AY, AWidth, AHeight: Double);
    procedure Assign(Source: TXLSXChartLayout);
    procedure Clear;
  end;

Μοντέλο συντεταγμένων

Οι X, Y, Width και Height κανονικοποιούνται ως προς το ορθογώνιο του διαγράμματος. Στο edge mode οι X και Y είναι οι συντεταγμένες του αριστερού και του πάνου άκρου, ενώ το edge width και height είναι οι συντεταγμένες του δεξιού και του κάτω άκρου· στο factor mode οι X και Y μετατοπίζουν την αυτόματη θέση, ενώ το factor width και height είναι μεγέθη σχετικά με το διάγραμμα
Το μοντέλο διατηρεί κάθε πεδίο και mode ανεξάρτητα. Ό,τι παραλείφθηκε κατά τη φόρτωση παραμένει παραλειμμένο και τα άκυρα αριθμητικά tokens επιβιώνουν αναλλοίωτα σε μια αποθήκευση, ενώ στο rendering επιστρέφεται η αυτόματη γεωμετρία
Τα layouts τίτλων μπορεί να περιέχουν μόνο X και Y και διατηρούν το αυτόματα μετρημένο μέγεθος. Τα layouts plot-area και legend απαιτούν και τις τέσσερις συντεταγμένες
Η SetPositionAndSize αναθέτει και τις τέσσερις τιμές, σημειώνει τα modes τους ως παρόντα και ενεργοποιεί το layout σε μία κλήση. Οι μεμονωμένοι setters συντεταγμένων επίσης ενεργοποιούν το layout

Λειτουργίες και target

xlsxChartLayoutEdgeΘέση από την άκρη του διαγράμματος, προεπιλεγμένη για X και Y
xlsxChartLayoutFactorΠαράγοντας μεγέθους ή μετατόπισης, προεπιλεγμένος για width και height
TargetΕσωτερικό ή εξωτερικό ορθογώνιο plot, και έχει νόηση μόνο για το PlotAreaLayout

Επίλυση και μετατροπή

Η TXLSXChartLayoutResolver επιλύει τα ορθογώνια του τίτλου, του legend, του εσωτερικού και εξωτερικού plot-area και των τίτλων αξόνων μία φορά, για έξοδο pagination, SVG, PDF, εικόνας, preview, print, viewer και HTML. Άκυρη ή ελλιπής γεωμετρία κρατά το αυτόματο ορθογώνιο, ενώ ένα έγκυρο ορθογώνιο εκτός ορίων μετακινείται στην πιο κοντινή θέση μέσα στο διάγραμμα χωρίς αλλαγή μεγέθους
Η μετατροπή σε ODF αντιστοιχίζει την επιλυμένη γεωμετρία σε απόλυτες αποστάσεις του διαγράμματος. Τίτλος και legend χρησιμοποιούν svg:x και svg:y, ενώ το plot area χρησιμοποιεί επιπλέον svg:width και svg:height. Ένα χειροκίνητο ODF legend παραλείπει το chart:legend-position, επειδή αυτό το attribute υπερισχύει των απόλυτων συντεταγμένων

Παράδειγμα

Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
Chart.TitleLayout.SetPositionAndSize(0.1, 0.02, 0.6, 0.12);
Chart.LegendLayout.SetPositionAndSize(0.2, 0.84, 0.6, 0.1);

Δείτε επίσης