Page 1 of 1

Error em TGraph (resolved)

Posted: Thu Sep 07, 2017 1:50 pm
by augustogomes
Good morning friends.
I found 2 errors in my programs when I use the TGraph class.

1 - When the values of the column x (: aSeries ) arrives to millions, there is an overflow in the picture.

2 - If you use the popup menu in the item "Values", if it is graph bar, it generates the error below.

Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = U

Stack Calls
===========
Called from: .\source\classes\TGRAPH.PRG => TGRAPH:PAINT( 1068 )
Called from: .\source\classes\TGRAPH.PRG => (b)TGRAPH:TGRAPH( 116 )
Called from: => TGRAPH:DISPLAY( 0 )



I checked these errors in fwh1608 and fwh1701

How can I resolve this?

follows an example:

Code: Select all

// Placing a bussiness graph in a folder

#include "FiveWin.ch" 
#include "Folder.ch" 
#include "TGraph.ch" 

//----------------------------------------------------------------------------// 

function Main() 

   local oDlg, oFld, oCbx, cItem, oGraph 

   SET _3DLOOK ON 

   DEFINE DIALOG oDlg RESOURCE "Test" 

   REDEFINE FOLDER oFld ID 110 OF oDlg ; 
      PROMPT "Folder 1", "Graph","Graph2" ; 
      DIALOGS "Sub1", "Sub2" ,"Sub2"

   oFld:aEnable = { .t., .t. ,.t.} 

   REDEFINE COMBOBOX oCbx VAR cItem ITEMS { "Apenas", "um", "a test" } ; 
      ID 100 OF oFld:aDialogs[ 1 ] 


  // REDEFINE GRAPH oGraph ID 500 TYPE 1 YVALUES 3D XGRID YGRID XVALUES LEGENDS OF oFld:aDialogs[ 2 ] 
   REDEFINE GRAPH oGraph ID 500 TYPE 1 YVALUES 3D XGRID YGRID POPUP XVALUES LEGENDS OF oFld:aDialogs[ 2 ] 

   oGraph:aSeries = { { "Series 1", CLR_CYAN , , },; 
                      { "Series 2", CLR_YELLOW, , .T. },; 
                      { "Series 3", CLR_HRED, 3, .F. } } 

   oGraph:aYVals = { "Jan", "Feb", "Mar", "Apr", "May" } 

    * alterado valores
  // oGraph:aData = { { 14280, 20420, 12870, 25347, 7640 },; 
  //                  { 8350, 10315, 15870, 5347, 12340 },; 
  //                  { 12345, -8945, 10560, 15600, 17610 } } 

  oGraph:aData = { { 14280, 20420, 12870, 1125347, 7640 },; 
                    { 8350, 10315, 15870, 5347, 12340 },; 
                    { 12345, -8945, 10560, 15600, 17610 } } 

   oGraph:nClrX = CLR_GREEN 
   oGraph:nClrY = CLR_RED 

 
  REDEFINE GRAPH oGraph2 ID 500 TYPE 4 YVALUES  XGRID YGRID XVALUES LEGENDS OF oFld:aDialogs[ 3 ] 

   oGraph2:aSeries = { { "Series 1", CLR_CYAN , , },; 
                      { "Series 2", CLR_YELLOW, , .T. },; 
                      { "Series 3", CLR_HRED, 3, .F. } } 

   oGraph2:aYVals = { "Equipamentos", "Peças", "Bombas", "Aquecedor", "Software","Equip", "Peças3", "Bombas4", "Aquecedor55" } 

   oGraph2:aData = { { 14280, 20420, 12870, 25347, 7640,500,1890,3500,17800 },; 
                    { 8350, 10315, 15870, 5347, 12340,0,0,0,0 },; 
                    { 12345, -8945, 10560, 15600, 17610,2,2,2,2 } } 

   oGraph2:nClrX = CLR_GREEN 
   oGraph2:nClrY = CLR_RED 

   REDEFINE BUTTON ID 120 OF oDlg ; 
      ACTION oDlg:End() 

   ACTIVATE DIALOG oDlg CENTERED ; 
      VALID MsgYesNo( "Want to end ?" ) 

return nil 

//----------------------------------------------------------------------------// 
 
[img]
https://photos.google.com/photo/AF1QipN ... OcbovY1Jlu
https://photos.google.com/photo/AF1QipP ... 6nd_yDuruc
[/img]

Re: Error em TGraph

Posted: Thu Sep 07, 2017 2:22 pm
by cnavarro
Defintion of series have more of 4 parameters

METHOD AddSerie( aDat, cLegend, nColor, nType, l3D, lViewVal, lDrawPoint, lDrawLine, cSRLegend ) CLASS TGraph
and you defintion is

oGraph:aSeries = { { "Series 1", CLR_CYAN , , },; // only 4 parameters
{ "Series 2", CLR_YELLOW, , .T. },;
{ "Series 3", CLR_HRED, 3, .F. } }
Your error is with DATA lViewVal, 6º parameter into definition of AddSeries, not defined in you definition of series

2) Definition of cPicture

Add your code

oGraph:cPicture := "99,999,999.99"

and try

Re: Error em TGraph (resolved)

Posted: Thu Sep 07, 2017 3:01 pm
by augustogomes
Thank you very much !

It worked!

thanks