Invalid handle

Mkontwg

Member
Hi team

I need a help below, I have modified my code. By adding these argument together with buffer handle. Now I'm getting this exception below. What could be the cause? Please help.
Code:
 DEFINE TEMP-TABLE tt NO-UNDO
    FIELD sys-cono AS CHARACTER
    FIELD pb-partno AS CHARACTER
    FIELD pb-acost AS DECIMAL
    FIELD pb-onhand AS INTEGER
    INDEX xIdx IS PRIMARY UNIQUE sys-cono.
  
  DEFINE PRIVATE VARIABLE series1  AS  Infragistics.UltraChart.Resources.Appearance.NumericSeries NO-UNDO.
  DEFINE PRIVATE VARIABLE series2  as Infragistics.UltraChart.Resources.Appearance.NumericSeries NO-UNDO.


METHOD PROTECTED DataTable ProTT2DataTable( queryHandle as HANDLE, fieldNames as CHARACTER ):
       
    DEFINE VARIABLE listRecord   as System.Array no-undo.
    DEFINE VARIABLE fieldHandle  as HANDLE NO-UNDO EXTENT.
    DEFINE VARIABLE bufferHandle as HANDLE NO-UNDO.
    DEFINE VARIABLE i            as INTEGER NO-UNDO.
    DEFINE VARIABLE numFields    as INTEGER NO-UNDO.
    DEFINE VARIABLE dataTable    as DataTable NO-UNDO.
    DEFINE VARIABLE dataColumn   as DataColumn NO-UNDO.
     
   ASSIGN
      bufferHandle = queryHandle:GET-BUFFER-HANDLE (1)
      dataTable    = NEW DataTable( bufferHandle:NAME )
      numFields    = ( if fieldnames <> "" THEN NUM-ENTRIES( fieldNames ) ELSE bufferHandle:NUM-FIELDS )  
      EXTENT( fieldHandle ) = numFields
      listRecord   = System.Array:CreateInstance( Progress.Util.TypeHelper:GetType( "System.Object" ), numFields ).
    DO i = 1 TO EXTENT( fieldHandle ):
      ASSIGN
        fieldHandle[i] = ( if fieldnames <> "" then bufferHandle:BUFFER-FIELD(ENTRY( i, fieldNames )) ELSE bufferHandle:BUFFER-FIELD( i ))
        dataColumn = dataTable:Columns:Add( fieldHandle[i]:Name)  
        dataColumn:Caption = fieldHandle[i]:LABEL.
    END.
    queryHandle:REPOSITION-TO-ROW (1).
    DO WHILE queryHandle:GET-NEXT ():
      DO i = 1 TO EXTENT( fieldHandle ):
        listRecord:SetValue( fieldHandle[i]:BUFFER-VALUE, i - 1 ).
      end.
      dataTable:Rows:Add( listRecord ).
    END.
    RETURN dataTable.
  END METHOD.
 
 
 
 METHOD PRIVATE STATIC System.Type DotNetType( ProgressType as CHARACTER ):
    CASE ProgressType:
      WHEN "character" THEN RETURN TypeHelper:GetType("System.String").
      WHEN "integer"   THEN RETURN TypeHelper:GetType("System.Int32").
      WHEN "int64"     THEN RETURN TypeHelper:GetType("System.Int64").
      WHEN "date"      THEN RETURN TypeHelper:GetType("System.DateTime").
      WHEN "datetime"  THEN RETURN TypeHelper:GetType("System.DateTime").
      WHEN "decimal"   THEN RETURN TypeHelper:GetType("System.Decimal").
      WHEN "logical"   THEN RETURN TypeHelper:GetType("System.Boolean").
      WHEN "blob"      THEN RETURN TypeHelper:GetType("System.Drawing.Bitmap").
    END.
  END METHOD.  
     
     
 METHOD PUBLIC VOID bindSeries1( dTable as DataTable, dValue as CHARACTER, dLabel as CHARACTER ):
    series1:DataBind( dTable, dValue, dLabel ).
  END.
  METHOD PUBLIC VOID bindSeries2( dTable as DataTable, dValue as CHARACTER, dLabel as CHARACTER ):
    series2:DataBind( dTable, dValue  ).
  END.    
     
     
 METHOD PRIVATE VOID InitializeChart():
       
    DEFINE VARIABLE qc as HANDLE  NO-UNDO.
    DEFINE VARIABLE i  as INTEGER NO-UNDO.
   
    SESSION:APPL-ALERT-BOXES = TRUE.
    DO i = 1 to 20:
    CREATE tt.
      ASSIGN
        tt.sys-cono = "i" + STRING( i )
        tt.pb-onhand = i
        tt.pb-acost = DECIMAL(1.2 ).
       
       
    END.
       
    CREATE QUERY qc.
    qc:SET-BUFFERS( BUFFER tt:HANDLE ).
    qc:QUERY-PREPARE ("preselect each tt").
    qc:QUERY-OPEN ().
    automate:Handle = qc.
    bindSeries1( ProTT2DataTable( qc, "pb-acost,pb-partno" ), "pb-partno", "pb-acost" ).
 
    bindSeries2( ProTT2DataTable( qc, "pb-acost,pb-onhand" ), "pb-onhand", "sys-cono" ).
   
    ultraChart:Refresh().
    ultraChart:Show().
         
  end method.    
    

// put this on my Initialized Method

[code]
 METHOD PRIVATE VOID InitializeComponent(  ):
       
       
       
     DEFINE VARIABLE chartLayer1 AS ChartLayerAppearance NO-UNDO.
        DEFINE VARIABLE chartLayer2 as ChartLayerAppearance NO-UNDO.
        //DEFINE VARIABLE linapp2 AS LineChartAppearance no-undo.
        DEFINE VARIABLE xAxis  AS AxisItem NO-UNDO.
        DEFINE VARIABLE x2Axis AS AxisItem NO-UNDO.
        DEFINE VARIABLE yAxis  AS AxisItem NO-UNDO.
        DEFINE VARIABLE y2Axis AS AxisItem NO-UNDO.
   
        ultraChart    = NEW Infragistics.Win.UltraWinChart.UltraChart().
        automate = NEW Progress.Data.BindingSource().
           
        CAST( THIS-OBJECT:ultraChart,System.ComponentModel.ISupportInitialize ):BeginInit().
        CAST( THIS-OBJECT:automate, System.ComponentModel.ISupportInitialize ):BeginInit().    
        THIS-OBJECT:SuspendLayout().
           
           
        DEFINE VARIABLE  chartWidth AS INTEGER NO-UNDO INIT 600.
        DEFINE VARIABLE chartHeight AS INTEGER NO-UNDO INIT 500.  
       
       
          ASSIGN
          THIS-OBJECT:NAME = "myCompositeChart"
          THIS-OBJECT:Text = "myCompositeChart"
          ultraChart:NAME = "ultraChart"
          ultraChart:Size = NEW System.Drawing.Size(chartWidth, chartHeight)
          ultraChart:Location =NEW System.Drawing.Point(0, 0)
          ultraChart:ChartType = Infragistics.UltraChart.Shared.Styles.ChartType:Composite
          automate:TableSchema = ?.
         
         
           ASSIGN
        
          chartLayer2 = NEW ChartLayerAppearance()
          xAxis       = NEW AxisItem()
          yAxis       = NEW AxisItem()
          x2Axis      = NEW AxisItem()
          y2Axis      = NEW AxisItem().
         
         
         
           ASSIGN
          xAxis:AxisNumber = AxisNumber:X_Axis
          xAxis:LineThickness = 1
          xAxis:DataType = AxisDataType:String
          xAxis:Labels:Orientation = TextOrientation:VerticalLeftFacing
          xAxis:Labels:ItemFormatString = "<ITEM_LABEL>"
   
          yAxis:AxisNumber  = AxisNumber:Y_Axis
          yAxis:LineThickness = 1
          yAxis:DataType  = AxisDataType:Numeric
          yAxis:TickmarkStyle = AxisTickStyle:Smart
          yAxis:Labels:ItemFormatString = "<DATA_VALUE:#.#>"
   
          x2Axis:AxisNumber = AxisNumber:X_Axis
          x2Axis:LineThickness = 1
          x2Axis:DataType  = AxisDataType:String
          x2Axis:Labels:Orientation = TextOrientation:VerticalLeftFacing
          x2Axis:Labels:ItemFormatString = "<ITEM_LABEL>"
   
          y2Axis:AxisNumber = AxisNumber:Y_Axis
          y2Axis:LineThickness = 1
          y2Axis:DataType  = AxisDataType:Numeric
          y2Axis:TickmarkStyle = AxisTickStyle:Smart
          yAxis:Labels:ItemFormatString = "<DATA_VALUE:#.#>".
     
        ultraChart:CompositeChart:ChartLayers:Add( chartLayer2 ).
         
         
        THIS-OBJECT:Controls:Add( THIS-OBJECT:ultraChart ).
        THIS-OBJECT:Size = NEW Size(800, 600).
        CAST( THIS-OBJECT:ultraChart, System.ComponentModel.ISupportInitialize ):EndInit().
        CAST( THIS-OBJECT:automate, System.ComponentModel.ISupportInitialize ):EndInit().
   
        THIS-OBJECT:ResumeLayout( FALSE).
        THIS-OBJECT:PerformLayout().
     
     
       
        /* NOTE: The following method is automatically generated.
       
        We strongly suggest that the contents of this method only be modified using the
 
Top