Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

hab mir eine kleines Programm zur Benzinverbrauchserfassung geschrieben, und möchte mir die Daten jetzt als Linien-Diagramm ausgeben lassen.

Hab schon selber ein bischen rumprogrammiert, aber ziemlich schnell festgestellt, dass das gar nicht so einfach ist. Zumindest, wenn man die Y-Achse dynamisch skalieren will.

Wollte jetzt mal fragen, ob irgendjemand eine Library oder Code kennt, der das für mich erledigt.

Hab schon auf sourceforge.net gesucht, aber nur Libs für Linux gefunden.

Das Diagramm sollte einfach auf ein Windowsfenster gezeichnet werden.

Geschrieben

Schau dir mal das "MS Chart Controll"-ActiveX an. hat mir bei der erstellung sehr geholfen.

Wenn du deine Daten aus einer DB ausliest kann ich dir noch "Microsoft ADO Data Controll" empfehlen. einfach mit der Recordsource abfragen erstellen und das Chart Controll darauf zugreifen lassen.

ohne DB gibt es hier -http://www.codeguru.com/controls/MSChart.shtml- eine schöne hilfe (allerdings auf englisch).

mfg

jasso

Geschrieben

Ich hoffe mal wir reden über des gleiche ActiveX-Element:confused: :

Microsoft Chart Control, version 6.0 (OLEDB)

da kann man ganz einfach über die Eigenschaften --> Diagramm --> Diagrammtyp Linie Einstellen.

Geschrieben

ich habe jetzt das ActiveX Control eingebunden, und die Daten übergeben als eindimensionales Array, weil ich (momentan) nur eine Linie im Diagramm brauche.

Wie gesagt es handelt sich um ein Programm zum Benzinverbrauch erfassen. Ich will mir also über die Zeit, meinen durchschnittlichen Verbrauch über 100km darstellen lassen.

Also habe ich jetzt die Daten an das Control übergeben.

Die Y-Achse skaliert auch schon richtig, nur leider ist die X-Achse leer, und ich seh keine Linie in dem Diagramm.

Was muss ich denn da dann noch machen?

Geschrieben

wiso einen eindimensionalen Array?

um Werte in ein Diagramm eintragen zu können müssen doch für jeden Punkt ZWEI Werte vorhanden sein oder (in deinem fall halt Verbrauchsmenge und Zeit).

ansonsten kann ich mir vielleicht noch vorstellen dass du die Skalierungseinstellungen falsch gewählt hast.

Geschrieben

Wie kann ich denn ein Datum an das Array übergeben? Ich erstelle das Array ja nur mit einem Datentyp, in meinem Fall ein VT_I2 (short int).

Das Datum müsste ich als String übergeben.

Ausserdem hab ich das Datum und die Menge in zwei unterschiedlichen Variablen, in dem Beispiel wird aber nur eine zugewiesen.

Geschrieben

ich hoffe wir reden über das gleiche beispiel:

COleSafeArray saRet;

DWORD numElements[] = {10, 10}; // 10x10

// Create the safe-array...

saRet.Create(VT_R8, 2, numElements);

// Initialize it with values...

long index[2];

for(index[0]=0; index[0]<10; index[0]++) {

for(index[1]=0; index[1]<10; index[1]++) {

double val = index[0] + index[1]*10;

saRet.PutElement(index, &val);

}

}

// Return the safe-array encapsulated in a VARIANT...

m_Chart.SetChartData(saRet.Detach());

m_Chart.Refresh;

in diesem stehen alle Werte für das Diagramm in "saRet" und werden mit "PutElement" eingefügt. ich nehme mal an dass der erste wert (hier "index") den x-Achsen-Wert und der zweite (hier "val") den x-Achsen-Wert.

Genau weiß ich das allerdings auch nicht weil ich die Wertübergabe ja über ADO gemacht hab (automatische Skalierung und als Datenquelle das ADO-Steuerelement und der rest funzt automatisch :D )

Geschrieben

ja, über genau dieses Beispiel reden wir. Nur irgendwie versteh ich die Zusammenhänge zwischen den Variablen index und val nicht. Index ist ein Array der Länge 2, und val ist zweidimensional mit 10x10 Felder.

Wie hängen die zusammen?

Ich hab Messpunkte, quasi an einem Datum, und den Wert der Messung, das wäre dann die Menge.

Ich hab also von beiden gleich viele Felder....

Ich versteh das einfach net.

Geschrieben

Also meiner meinung nach is val ein ganz normaler double-Wert.

Na wie auch immer. Ich hoffe Du hast das ganze hingekriegt (und tut mir leid dass ich dir da nicht weiterhelfen kann. wie gesagt ich hab des ganze über ado gemacht)

Andere Frage:

wie kann ich das erstellte Diagramm dann Drucken?? hab mir schon ein paar themen über drucken angeschaut die mir allerdings allesamt nicht wirklich so ganz einleuchten:confused:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...