DataBind using ultrachart error

Mkontwg

Member
Hi team

I'm creating ultrachart to display dataset, but I'm getting this error as its been attached. Thanks my code is as follows;
Code:
METHOD PUBLIC VOID SetChartType(iCharttype AS CHARACTER):
     CASE iCharttype:
/*         WHEN "BarChart" THEN THIS-OBJECT:ultraChart1 = Infragistics.UltraChart.Shared.Styles.ChartType:BarChart.*/
         WHEN "HistogramChart" THEN THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:HistogramChart.
         WHEN "ParetoChart" THEN THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:paretoChart.
         WHEN "ColumnChart" THEN THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:ColumnChart.
         WHEN "ColumnChart3D" THEN THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:ColumnChart3D.
         WHEN "Composite" THEN THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:Composite.
         WHEN "GantChart" THEN DO:
             THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:ColumnChart.
             IF SESSION:DATE-FORMAT = "dmy" THEN THIS-OBJECT:ultraChart1:Axis:X:Labels:ItemFormatString = "<ITEM_LABEL: dd/MM/yyyy>".
             IF SESSION:DATE-FORMAT = "ymd" THEN THIS-OBJECT:ultraChart1:Axis:X:Labels:ItemFormatString = "<ITEM_LABEL: yyyy/MM/dd>".
             END.
             OTHERWISE THIS-OBJECT:ultraChart1:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:ColumnChart.
             END.
             THIS-OBJECT:ultraChart1:Invalidate().
     END METHOD.



@VisualDesigner.
METHOD PRIVATE VOID ultraChart1_ChartDataClicked( INPUT sender AS System.Object, INPUT e AS Infragistics.UltraChart.Shared.Events.ChartDataEventArgs ):
  IF e:Primitive:ToString() = "Infragistics.UltraChart.Core.Primitives.Box"
  THEN DO:
    coloredPrimitive = e:Primitive.
    clickedPoint = System.Windows.Forms.Cursor:Position.
    ultraChart1:InvalidateLayers().
    END. 
  RETURN.
END METHOD.
/*------------------------------------------------------------------------------
  Purpose:
  Notes:
------------------------------------------------------------------------------*/


METHOD PUBLIC VOID FILLGantDataSource(ihdsGant AS HANDLE):
    DEFINE VARIABLE xTaskBuffer AS HANDLE NO-UNDO.
    DEFINE VARIABLE xTimeBuffer AS HANDLE NO-UNDO.
    DEFINE VARIABLE xTimeQuery AS HANDLE NO-UNDO.
    DEFINE VARIABLE xInte1 AS INTEGER NO-UNDO.
    DEFINE VARIABLE xTaskQueryString AS CHAR NO-UNDO.
    DEFINE VARIABLE xTaskQuery AS HANDLE NO-UNDO.
        DEFINE VARIABLE xTaskByStatement AS CHAR NO-UNDO.
    CREATE QUERY xTaskQuery.
    xTaskQuery:ADD-BUFFER (xTaskBuffer).
    xTaskQueryString = "for each" + xTaskBuffer:NAME + "no lock" + xTaskByStatement.
    xTaskQuery:QUERY-PREPARE (xTaskQueryString).
    xTaskQuery:QUERY-OPEN ().
    CREATE QUERY xTimeQuery.
    xTimeQuery:ADD-BUFFER (xTimeBuffer).
    dsGantDataSource = NEW GanttDataSource().
     RETURN.
     END METHOD.
 

Attachments

  • ultrachart.PNG
    ultrachart.PNG
    20.3 KB · Views: 2
Last edited by a moderator:

Osborne

Active Member
At a guess, I would say the problem is there is no valid data due to a query error.

Firstly, there are missing spaces in the query string and it should be something like this:
Code:
xTaskQueryString = "for each " + xTaskBuffer:NAME + " no lock " + xTaskByStatement.
Also try checking the query string is valid when you run QUERY-PREPARE:
Code:
DEFINE VARIABLE vQueryOk AS LOGICAL NO-UNDO.
vQueryOk = xTaskQuery:QUERY-PREPARE (xTaskQueryString) NO-ERROR.
IF NOT vQueryOk THEN
   MESSAGE "There is an error in the query string." VIEW-AS ALERT-BOX ERROR.
Finally, if the query is okay check there is actually data before proceeding:
Code:
xTaskQuery:GET-FIRST ().
IF NOT xTaskQuery:QUERY-OFF-END /* or IF xTaskBuffer:AVAILABLE */ THEN
   ...
 
Top