Probleme mit RM-Charts [Erledigt]

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Probleme mit RM-Charts [Erledigt]

Beitrag von Jan »

Ich bin gerade dabei, in RMCharts eine neue Chartform zu nutzen: Die Bargroup. Ich mache das zusammen mit Huberts Wrapper, um die dll zu nutzen.

Das hier ist der original Code, den mir RMCharts gibt:

Code: Alles auswählen

    '************** Create the chart **********************
    nRetVal = RMC_CreateChartOnDC(Me.hDC,ID_RMC1,10,10,600,450,Transparent,RMC_CTRLSTYLEFLAT,FALSE,"","Tahoma", Default)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add Region 1 *****************************
    nRetVal = RMC_AddRegion(ID_RMC1,5,5,-5,-5,"",FALSE)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add caption to region 1 *******************
    nRetVal = RMC_AddCaption(ID_RMC1,1,"Datum",Transparent,Black,10,TRUE)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add grid to region 1 *****************************
    nRetVal = RMC_AddGrid(ID_RMC1,1,Transparent,FALSE,0,0,0,0,RMC_BICOLOR_NONE)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add data axis to region 1 *****************************
    nRetVal = RMC_AddDataAxis(ID_RMC1,1,RMC_DATAAXISLEFT,0,100,11,8,Black,Black,RMC_LINESTYLESOLID,0,"","","",RMC_TEXTRIGHT)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add label axis to region 1 *****************************
    sTemp = "2000*2001*2002*2003*2004"
    nRetVal = RMC_AddLabelAxis(ID_RMC1,1, sTemp,1,5,RMC_LABELAXISBOTTOM,8,Default,RMC_TEXTCENTER,Default,RMC_LINESTYLESOLID,"")
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add legend to region 1 *******************************
    sTemp = "First quarter*Second quarter*Third quarter*Fourth quarter"
    nRetVal = RMC_AddLegend(ID_RMC1,1,sTemp,RMC_LEGEND_TOP,Transparent,RMC_LEGENDNORECT,Black,8,FALSE)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add Series 1 to region 1 *******************************
    '****** Read data values ******
    REDIM aData(4)
    aData(0) = 30 : aData(1) = 20 : aData(2) = 40 : aData(3) = 60 : aData(4) = 10
    nRetVal = RMC_AddBarSeries(ID_RMC1,1,aData(0), 5,RMC_BARGROUP,RMC_BAR_3D,FALSE,DeepYellow,FALSE,1,RMC_VLABEL_NONE,1,RMC_HATCHBRUSH_ON)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add Series 2 to region 1 *******************************
    '****** Read data values ******
    REDIM aData(4)
    aData(0) = 30 : aData(1) = 20 : aData(2) = 50 : aData(3) = 70 : aData(4) = 60
    nRetVal = RMC_AddBarSeries(ID_RMC1,1,aData(0), 5,RMC_BARGROUP,RMC_BAR_3D,FALSE,Default,FALSE,1,RMC_VLABEL_NONE,1,RMC_HATCHBRUSH_OFF)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add Series 3 to region 1 *******************************
    '****** Read data values ******
    REDIM aData(4)
    aData(0) = 40 : aData(1) = 10 : aData(2) = 30 : aData(3) = 20 : aData(4) = 80
    nRetVal = RMC_AddBarSeries(ID_RMC1,1,aData(0), 5,RMC_BARGROUP,RMC_BAR_3D,FALSE,Default,FALSE,1,RMC_VLABEL_NONE,1,RMC_HATCHBRUSH_OFF)
    IF nRetVal < 0 THEN GOTO IsError
    '************** Add Series 4 to region 1 *******************************
    '****** Read data values ******
    REDIM aData(4)
    aData(0) = 70 : aData(1) = 50 : aData(2) = 80 : aData(3) = 40 : aData(4) = 30
    nRetVal = RMC_AddBarSeries(ID_RMC1,1,aData(0), 5,RMC_BARGROUP,RMC_BAR_3D,FALSE,Default,FALSE,1,RMC_VLABEL_NONE,1,RMC_HATCHBRUSH_OFF)
    IF nRetVal < 0 THEN GOTO IsError

    nRetVal = RMC_SetWatermark(RMC_USERWM,RMC_USERWMCOLOR,RMC_USERWMLUCENT,RMC_USERWMALIGN,RMC_USERFONTSIZE)
    nRetVal = RMC_Draw(ID_RMC1)
    IF nRetVal < 0 THEN GOTO IsError
    Exit SUB

    IsError:
Das hier mache ich daraus:

Code: Alles auswählen

   ************** Region 1 hinzufügen *****************************
   oChart:RMC_AddRegion(5, ;
                        5, ;
                        -5, ;
                        -5, ;
                        DToC(Date()) + " " + Time(), ;
                        FALSE)

   ************** Grid für Region 1 hinzufügen *****************************
   oChart:RMC_AddGrid(1, ; 
                      Transparent, ; 
                      FALSE, ; 
                      0, ; 
                      0, ;
                      0, ;
                      0, ;
                      RMC_BICOLOR_NONE) 

   ************** Datenachen zu Region 1 hinzufügen *****************************
   oChart:RMC_AddDataAxis(1, ;
                          RMC_DATAAXISLEFT, ;
                          0, ;
                          100, ; 
                          11, ; 
                          8, ; 
                          Black, ;
                          Black, ; 
                          RMC_LINESTYLESOLID, ;
                          0, ; 
                          "", ;
                          "", ;
                          "", ;
                          RMC_TEXTCENTER) 

   ************** Labelachsen to Region 1 hinzufügen *****************************
   sTemp = "2000*2001*2002*2003*2004"
   oChart:RMC_AddLabelAxis(1, ;
                           sTemp, ; 
                           1, ;
                           5, ; 
                           RMC_LABELAXISBOTTOM, ;
                           8, ;
                           Black, ; 
                           RMC_TEXTCENTER, ;
                           Black, ;
                           RMC_LINESTYLESOLID, ; 
                           "") 

   ************** Legende zu Region 1 hinzufügen *******************************
   sTemp = "First quarter*Second quarter*Third quarter*Fourth quarter"
   oChart:RMC_AddLegend(1, ;
                        sTemp, ;
                        RMC_LEGEND_TOP, ; 
                        Transparent, ; 
                        RMC_LEGENDNORECT, ;
                        Blue, ; 
                        8, ;  
                        FALSE) 

   aData := {{10, 15, 40, 60, 10}, {30, 20, 50, 70, 60}, {40, 10, 30, 20, 80}, {70, 50, 80, 40, 30}}
   FOR i := 1 TO Len(aData)
       oChart:RMC_AddLineSeries(1, ; 
                                aData[i], ; 
                                5, ;
                                RMC_BARGROUP, ; 
                                RMC_BAR_3D, ; 
                                FALSE, ; 
                                DeepYellow, ;
                                FALSE, ; 
                                1, ; 
                                RMC_VLABEL_NONE, ; 
                                1, ;
                                RMC_HATCHBRUSH_OFF)
   NEXT
Wie Ihr sehen könnte fasse ich die vier Wertearrays in eine FOR...NEXT-Schleife zusammen. Aber auch einzeln aufgeführt ist da kein Unterschied in der Darstellung.

Und was macht der mir daraus? Das hier!
temp.jpg
temp.jpg (202.58 KiB) 7861 mal betrachtet
Was läuft da schief? Eigentlich müßte die Bargroup doch wohl ein klitzekleines bißchen anders aussehen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von brandelh »

Hallo Jan,

da ist doch ein chartedit Programm dabei, nutze dieses für eine Vorlage und fülle diese mit Daten.
Dann kannst du sehen ob die DLL einen Fehler macht, oder ob meine Klasse nicht richtig arbeitet.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von Jan »

Hubert,

wovon redest Du da?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von brandelh »

Du hast doch geschrieben, dass du meine Classe nutzt. Da könnte ein Fehler drinn sein.
Der von dir oben angezeigte code hingegen muss basic sein (My.hDC ...)
Was ich meinte ist, dass du mit dem Hilfsprogram die Grafikerzeugst und siehst was rauskommt.

RMCDESIGNER.EXE kann dir eine Vorlage generieren und eventuell mit Daten zeigen wie es aussieht -
ohne dein Programm und meine Klasse.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von Jan »

Hubert,

der Basic-Code IST aus dem RMChart-Tool.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von brandelh »

Hallo Jan,

vielleicht solltest du genauer Beschreiben was du gemacht hast und wo das Problem liegt ;-)

In dem Designer kann man (soweit ich mich erinnere, das ist ja auch schon Ewigkeiten her) die Grafik zusammenklicken und ein Beispiel ansehen.
Wenn dieses Beispiel deinen Erwartungen entspricht, weiter ... wenn nicht, sieht deine Erwartung anders aus als das was RMChart macht.
Wenn die Vorlage in Xbase geladen genauso aussieht wie vorher in RMChart Designer, oder Basic, dann liegt das Problem nicht an meiner Klasse.
Wenn beide Ergebnisse abweichen, muss ich prüfen warum.

Aktuell ist mir nicht klar, was du überhaupt an Antworten erwartest.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von Jan »

Moin Hubert,

wo reden wir denn nun aneinander vorbei? Ich habe in dem Designer eine Statistikform ausgewählt. Mir über die entsprechende Funktion in dem Designer den Code für den dll-Zugriff ausgeben lassen (den Code habe ich original so in meiner Eingangsfrage gepostet). Danach habe ich den Code in Xbase++ passend für Deinen Wrapper umgeschrieben (ebenfalls gepostet in der Eingangsfrage). Leider ist die Ausgabe keine BarGroup mit 4 Säulen je Gruppe nebeneinander angeordnet, sondern nur eine dünne Linie mit 4 Wertelabeln je Gruppe (Grafik ebenfalls gepostet in der Eingangsfrage).

So, welche Aussage von mir fehlt Dir jetzt?

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

Re: Probleme mit RM-Charts

Beitrag von Jan »

Ich habe den hauptfehler gefunden: Man sollte, wenn man den Code zur Arbeitserleichterung aus anderen Bereichen kopiert, nicht nur auf die Paramater achten, sondern auch auf die Funktionsaufrufe. BarGroup ist kein RMC_AddLineSeries, sondern ein RMC_AddBarSeries.

Passt zwar optisch immer noch nicht ganz, aber schon wesentlich besser.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von brandelh »

Meine Frage bezog sich darauf, ob sich RMChart Designer / Basic anders verhält als meine Wrapper-Klasse.
Wenn JA würde ich diese überprüfen, wenn NEIN liegt der "schwarze Peter" bei dir ;-)
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts

Beitrag von Jan »

Hubert,

ich habe nun auch den letzten Fehler gefunden. Du benutzt in Deinem Wrapper einen Parameter weniger in der RMC_AddBarSeries als RMChart. Dadurch wird natürlich bei Übernahme der Parameteranordnung aus dem Designercode alles folgende verschoben.

OK, sieht jetzt schick aus, alle Infos sind so wie sie sollen, alles klappt wie es soll.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts [Erledigt]

Beitrag von brandelh »

Hallo Jan,

klar doch, die InstanzID wird in der Klasse intern gehalten, das steht aber auch so in der Anleitung ;-)
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts [Erledigt]

Beitrag von Jan »

Hubert,

nein, nein, Du verstehst mich falsch. Das ist mir absolut klar, denn ich nutze die Klasse ja an verschiedenen Stellen. Hab also durchaus schon ein wenig Erfahrung damit. Aber in der RMC_AddbarSeries läßt Du einen Parameter weg, den Du in der RMC_AddLineSeries sehr wohl nutzt. Und das hat dann ein wenig verwirrt.

In RMC_AddLineSeries gibt es nach dem Wertearray noch einen numerischen Wert für PointsPerColumn. Danach dann der Wert für die Statistikform und all die anderen Parameter. In der RMC_AddbarSeries fehlt PointsPerColumn, obwohl der RMChart-Designer den sehr wohl mit angibt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Probleme mit RM-Charts [Erledigt]

Beitrag von brandelh »

Hallo Jan,

dann ist das mein Fehler und ich werde das verbessern, sobald ich dazu komme ;-)
Gruß
Hubert
Antworten