Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Folge von Diagrammen in FastReport ? (https://www.delphipraxis.net/147578-folge-von-diagrammen-fastreport.html)

EccoBravo 11. Feb 2010 22:39


Folge von Diagrammen in FastReport ?
 
Hallo,

folgendes Problem:
(Delphi2007, FastReport, W32, no Database)

Ich habe eine 3D Matrix (i,j,k) und will deren k Ebenen (i,j) in k gleichen Diagrammen mit FastReport abbilden.
In den normalen Forms kein Problem,
aber wie bekomme ich diese k x (i,j)-Ebenen in k frxChart´s von frxReport (in einen k-seitigen Bericht) hinein?

Ich will für k Ebenen in einem Bericht k gleichartige Diagramme, auf jede Seite ein Diagramm, bekommen.
Aus den Demos bin ich hier nicht schlau geworden.

Vielen Dank

EB

EccoBravo 14. Feb 2010 22:07

Re: Folge von Diagrammen in FastReport ?
 
Hallo,

Mit einer Folge von Diagrammen meinte ich soetwas wie die Zeilen in einer Tabelle, eine Zeile entspricht bei mir ein Diagramm. Als Diagrammtyp wollte ich ein 2D-Diagramm z=f(x,y) abbilden.


Danke

EB

EccoBravo 15. Feb 2010 14:51

Re: Folge von Diagrammen in FastReport ?
 
Hallo,

damit mein Problem etwas verständlicher wird, werde ich nun etwas Programmcode beifügen.

Delphi-Quellcode:

procedure TF_Haupt.frxUserDataSet1CheckEOF(Sender: TObject; var Eof: Boolean);
begin
    eof := frxUserDataSet1.Tag > Bild.Bildzahl;
end;

procedure TF_Haupt.frxUserDataSet1First(Sender: TObject);
begin
    frxUserDataSet1.Tag := 1;
end;

procedure TF_Haupt.frxUserDataSet1GetValue(const VarName: string;
    var Value: Variant);
var
    i, j, k: integer;
    WertX, WertY: array of integer;
    WertZ: array of array of single;
begin
    setlength(WertZ, DoseMatrix.Xdim + 2, DoseMatrix.Ydim + 2);
    setlength(WertX, DoseMatrix.Xdim + 2);
    setlength(WertY, DoseMatrix.Ydim + 2);
    //    if VarName = 'Bild' then
    //    begin
    //        for j := 1 to Bild.Ydim do
    //        begin
    //            for i := 1 to Bild.Xdim do
    //            begin
    //                Value[i, j, frxUserDataSet1.Tag] := Bild.GrauMatrix[i, j,
    //                    frxUserDataSet1.Tag] * 65793;
    //            end;
    //        end;
    //    end;
    if VarName = 'Dose' then
    begin
        for j := 1 to DoseMatrix.Ydim do
        begin
            for i := 1 to DoseMatrix.Xdim do
            begin
                WertZ[i, j] := DoseMatrix.Matrix[i, j,
                    frxUserDataSet1.Tag].RelWert;
            end;
        end;
        Value := WertZ;
    end;
    if VarName = 'DoseX' then
    begin
        for i := 1 to DoseMatrix.Xdim do
        begin
            WertX[i] := i;
        end;
        Value := WertX;
    end;
    if VarName = 'DoseY' then
    begin
        for j := 1 to DoseMatrix.Ydim do
        begin
            WertY[j] := j;
        end;
        Value := WertY;
    end;
end;

procedure TF_Haupt.frxUserDataSet1Next(Sender: TObject);
begin
    frxUserDataSet1.Tag := frxUserDataSet1.Tag + 1;
end;

procedure TF_Haupt.frxUserDataSet1Prior(Sender: TObject);
begin
    frxUserDataSet1.Tag := frxUserDataSet1.Tag - 1;
end;

Nun einige Fragen dazu:

1. Kann ich für ein 2D-Chart der Form Z=f(x,y) in der Variable Value von frxDserDataSet1.Chart1 nur eindimensionale Arrays übergeben ?

2. Mir ist immer noch nicht klar: muss für eine no Database Anwendung ins Masterband4 von frxReport eine 0 oder 1 hinein ?

3. Wenn ich im FastReport k 2D-Diagramme aus der Matrix A(k,y,k) abbilden möchte, wo bringe ich den frxUserDataSet1.Tag unter ?

ich werde noch 2 jpg´s nachsenden.

Danke

E.B.

EccoBravo 15. Feb 2010 14:52

Re: Folge von Diagrammen in FastReport ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nachsendung vom jpg Chart:

EB.

EccoBravo 15. Feb 2010 14:54

Re: Folge von Diagrammen in FastReport ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nachsendung des jpg´s Masterband.

(Beim Senden von zwei jpg´s kommt bei mir TimeOut, deshalb getrennte Sendung)

Danke für Verständnis

EB.

franktron 15. Feb 2010 16:42

Re: Folge von Diagrammen in FastReport ?
 
Also ich habe TfrxChart selten benutzt aber ich glaube das du die Datenquelle von Chart und die vom MasterData trennen musst.

Grund der Chart brauch ein 2 Zweidimensionales Feld zum Anzeigen und eine Tabelle ist Zweidimensionales und du willst ja eine 3. Dimension haben also eine 2 Tabelle.

EccoBravo 15. Feb 2010 16:46

Re: Folge von Diagrammen in FastReport ?
 
Danke für die Antwort,

Hier noch ein kleiner Zusatz:

Beim Compilieren und Laufenlassens des obigen Chaos´ kommt folgende Fehlermeldung:

Im Project P_EB....exe ist eine Exception der Klasse EVariantTypeCastError mit der Meldung 'Varianre des Typs (Array Integer) konnte nicht in Typ (String) konvertiert werden' aufgetreten.

Ich glaube, dass Eure Glaskugel jetzt mehr sagen kann.

Danke

EB.

EccoBravo 15. Feb 2010 16:52

Re: Folge von Diagrammen in FastReport ?
 
Danke Frank,

wie aber trenne ich Datenquelle des Chart von Masterband
und
wie kriege ich elegant die Daten für ein 3D Diagramm z:=f(x,y) in das Chart von frxReport ?

Da muß es doch einen Weg geben, denn sonst macht mein gewünschter Diagrammtyp in frxReport keinen Sinn.

Danke

EB.

neo4a 15. Feb 2010 17:08

Re: Folge von Diagrammen in FastReport ?
 
Zitat:

Zitat von EccoBravo
wie kriege ich elegant die Daten für ein 3D Diagramm z:=f(x,y) in das Chart von frxReport ?

Ein aus meiner Sicht recht konfliktfreier Ansatz ist es, zur Laufzeit des Reports das Diagramm-Bitmap mit der entsprechenden Komponente zu erstellen und lediglich das Ergebnisbild an Fastreport zu übergeben. Falls Du damit noch nicht so viel Erfahrungen hast, dann erstelle halt vor dem Report-Start die notwendigen Diagramme, sichere sie als Dateien und lade sie im Report wieder an die notwendige Stelle. Optimieren kannst Du dann ja immer noch.

--
Andreas

EccoBravo 15. Feb 2010 17:23

Re: Folge von Diagrammen in FastReport ?
 
Hallo Andreas,

Dein Vorschlag mit dem Auslagern in ein bmp ist sehr gut, aus meinem Programm funktioniert das auch komplikationsfrei.
Nur wie bekomme ich die Latte von Bmp#s zur Laufzeit ins frxReport ?
Mein Wunsch wäre es, k Bilder auf k Seiten des Reports zu bekommen, je seite ein Bild.

Vielen Dank

EB.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.
Seite 1 von 3  1 23      

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