Diagramm

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Diagramm

Beitrag von Rolf Ramacher »

Hallo zusammen,

folgendes Problem wird noch auf mich zukommen. Hat jemand schon mal
ein Diagramm also x,y-Kurve mit xbase programmiert. ?

Die Daten hierzu habe ich schon zusammengetragen. Ich könnte natürlich
die Daten im CSV-Format abspeichern. Excel-starten und der User macht
dies dann selber. Aber ob das der richtige / elegante?? Weg ist??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Rolf,
entweder Du nutzt das kostenfreie RMChart, oder in der Alaska-GUI-Newsgroup gibt es mehrere Beispiele - ich glaube, auch bei James Loughner auf der Seite findest Du eine Klasse...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Rolf,

man kann das halbwegs einfach über Xbase++ pur machen. Da gibt es ja auch Beispiele auf der Installations-CD.

Eine recht gute Lösung scheint mir aber hier zu sein
Integration von RMChart in xBase++
Die Diskussion ist zwar zwischendurch mal etwas abgeglitten, aber insgesamt fand ich das, was ich damit ausprobiert hatte, recht ansprechend.

Jan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Diagramm

Beitrag von AUGE_OHR »

hi,
Rolf Ramacher hat geschrieben: folgendes Problem wird noch auf mich zukommen. Hat jemand schon mal
ein Diagramm also x,y-Kurve mit xbase programmiert. ?
kommt drauf an "wie schön" du es haben willst. Wenn es wirklich "nur"
um ein x,y Diagramm geht kannst du einfach GRALINE & GRAMARKER
nehmen um ein x,y Diagramm zu erstellen.

gruss by OHR
Jimmy

Code: Alles auswählen

#include "Gra.ch"

MEMVAR zUNRSUM,lock_dauer,nMaxRow,nMaxCol,b_type3

PROCEDURE UMSGRAPH
LOCAL aPoints  := {}
LOCAL old_sele := SELECT()
LOCAL nXfaktor := INT(setAppwindow():currentSize()[1]/13)
LOCAL nTextPos := nXfaktor*12
LOCAL c1,c2,d1,d2
LOCAL i,iMax,j,cText
LOCAL GETLIST := {}

   SELECT 13
   IF USE2LOCK(zUNRSUM,.F.,lock_dauer)
   ELSE
      F_MELDUNG(21,zUNRSUM+" konnte nicht geöffnet werden")
      SELECT(old_sele)
      RETURN
   ENDIF

   GO TOP
   c1 := UNRSUM->ULJAHR
   d1 := UNRSUM->ULMONAT
   GO BOTTOM
   c2 := UNRSUM->ULJAHR
   d2 := UNRSUM->ULMONAT

   S_HELL()
   CLS
   @ nMaxRow-2,00,nMaxRow,nMaxCol BOX b_type3

   @ nMaxRow-1,20 SAY "von Jahr-Monat "
   @ nMaxRow-1,39 SAY "-"
   @ nMaxRow-1,43 SAY " bis "
   @ nMaxRow-1,53 SAY "-"

   SET INTE ON
   @ nMaxRow-1,35 GET c1 PICTURE "9999"
   @ nMaxRow-1,40 GET d1 PICTURE "99"

   @ nMaxRow-1,49 GET c2 PICTURE "9999"
   @ nMaxRow-1,54 GET d2 PICTURE "99"

   SET INTE ON
   READ
   SET INTE OFF

   CLEAR GETS

   GO TOP
   LOCATE FOR UNRSUM->ULJAHR = c1 .AND. UNRSUM->ULMONAT >= d1

   DO WHILE !EOF()
      AADD(aPoints,{VAL(UNRSUM->ULMONAT)*nXfaktor,INT(UNRSUM->ULUMSSATZ/2000),UNRSUM->ULJAHR})

      IF ( UNRSUM->ULJAHR = c2 .AND. UNRSUM->ULMONAT = d2 )
         EXIT
      ENDIF
      SKIP
   ENDDO
   CLOSE
   SELECT(old_sele)

   CLS

   GraSetColor( NIL,1)
   FOR i:=1 TO 15
       GraLine( ,{nXfaktor,i*25} , {nTextPos,i*25} )
       cText := STR(50*i,3)+"K"
       GraStringAt( , {nTextPos+1,i*25},cText)
   NEXT

   i:=0
   FOR i:=1 TO 12
       cText := "01."+STRZERO(i,2)+"."+STR(YEAR(DATE()))
       cText := CTOD(cText)
       cText := SUBSTR(CMonth(cText),1,3)
       GraStringAt( , {i*nXfaktor,0},cText)
   NEXT

   iMax := LEN(aPoints)
*   graSpline( NIL, aPoints, .F. )      // Spline zeichnen

   i:=0
   FOR i:=1 TO iMax
      GraSetColor( NIL,INT(i/12)+1)
      cText := aPoints[i][3]
      GraStringAt( NIL, {0,  aPoints[i][2]},cText)

      GraMarker( NIL, aPoints[i] )      // Ersten Punkt markieren
      j:=0
      FOR j:=1 TO 11                    // ▄brige Punkte markieren
         GraLine( , , aPoints[i+j] )    // und mit Linien verbinden
         GraMarker( , aPoints[i+j] )
         IF i+j >= iMax
            EXIT
         ENDIF
      NEXT
      i:= i+11
      IF i >= iMax
         EXIT
      ENDIF
   NEXT
   CENTER(05,"Firma Yiu Gmbh "+c1+" - "+c2)
   CENTER(01,"weiter mit Taste ...")
   Inkey(30)                            // Warten auf Tastendruck

RETURN
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Rolf,

Balkendiagramme und andere Spielereien habe ich schon direkt mit Xbase++ Programmiert. SIN() und COS() findet man auch in der Wissensbasis, damit lassen sich Kreise realisieren.

Aber das ist recht mühsam.

Ich kann nur RM-Chart empfehlen. Dieses kann man über ActiveX oder meine HB_RM-CHART Klasse als DLL integrieren. Der Link von oben ist nur einer von mehreren. Ich habe einmal eine Zusammenfassung geschrieben:

http://www.xbaseforum.de/viewtopic.php?t=542

und hier (3d-Party ...) liegt meine kostenlose Klasse die direkt auf die
DLL geht:

http://www.xbaseforum.de/viewtopic.php?t=542

RM CHart ist sehr mächtig und sieht wirklich hübsch aus.
Da kann man mit XBase++ Bordmitteln nicht mehr mithalten.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
brandelh hat geschrieben:RM CHart ist sehr mächtig und sieht wirklich hübsch aus.
Beispiele dafür sind (beizeiten) auch auf der DevCon-Seite zu sehen - ich habe RMChart dort ein wenig integriert :D

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten