Development/VSFlexGrid7

그리드 컬럼수 변경시 ColIndex 오류 처리

연탄집게 2012. 5. 15. 16:40

레코드셋에 데이터를 저장하고나서,

그리드. 데이터소스에 레코드 셋을 적용할때 그리드를 초기화 해주지 않으면 발생 하는 것 같다.

그리드를 초기화 해주고 데이터소스에 레코드셋을 적용하고 나니 해결되었다.

 

Sub goCnn_OnQueryButtonDown()                   
  Dim bParam(3), sRtnVal
  dim i

  bParam(1)   = Replace(Trim(txtAccDt.Value),"-","")
  If rdoAcGName.Checked = True Then bParam(3) = "G"   '권역별
  If rdoAcBName.Checked = True Then bParam(3) = "B"   '부문별 
 
 
  Call goCnn.ShowWait(6000, "자료를 조회중입니다.")
  sRtnVal = goInterface.CallFunction(gsCert, "agc0219.Cagc500n", "Setagc500", "agc550nq", bParam, rsZsystem, rsHead  )
  Call goCnn.HideWait()

  If sRtnVal <> "" Then
    Call    fnMsgBox(goCnn, "조회 중 오류가 발생하였습니다.",sRtnVal)
    Exit    Sub
  End If
 
  gsCondts    = fnGetCondition()
 
  ' 그리드 초기화 // 데이터 소스가 변경되면 꼭 해주자.. 
  With grdsheet1
    .Redraw     = False
    .Rows       = 1
    .Cols       = 1
    .FixedCols  = 1
    .FixedRows  = 1
    .DataMode   = 0
    .SelectionMode  = 1
    .AutoResize     = False    
    .AllowSelection = False
    .Redraw = True
  End With
 
  Set grdsheet1.DataSource    = rsZsystem
 
  fnInitCol(grdSheet1)

 
  If rsZsystem.RecordCount = 0  Then
    goCnn.SetFrameButtonInfo("QU1:NW0:DL0:SV0:SF0:PR0:PV0:NI0:DA0:")
    goCnn.setmessage("Not Found Match Data")
  Else

    '소계
    grdSheet1.SubtotalPosition = 0
    grdSheet1.Subtotal 2, grdSheet1.ColIndex("GUBUN"),  grdSheet1.ColIndex("AMT_ALL"),      ,cl_GRID_SUB_TOT, vbBlue, , "SubTotal"
    
    rsHead.MoveFirst
    For i = 1 to rsHead.RecordCount
      grdSheet1.Subtotal 2, grdSheet1.ColIndex("GUBUN"),  grdSheet1.ColIndex("AMT_"+rsHead("SUB_CODE")),       ,cl_GRID_SUB_TOT, vbBlue, , "SubTotal"
      rsHead.MoveNext
    Next   
    
   '총계
   grdSheet1.SubtotalPosition = 0
    grdSheet1.Subtotal 2 , -1,  grdSheet1.ColIndex("AMT_ALL"),     , cl_GRID_SUB_TOT, &HAC7952, true      ,"Total"
   rsHead.MoveFirst
    For i = 1 to rsHead.RecordCount
      grdSheet1.Subtotal 2 , -1,  grdSheet1.ColIndex("AMT_"+rsHead("SUB_CODE") ),      , cl_GRID_SUB_TOT, &HAC7952, true      ,"Total"
      rsHead.MoveNext
    Next   
   
    goCnn.SetFrameButtonInfo("QU1:NW0:DL0:SV0:SF1:PR1:PV1:NI0:DA0:")
    goCnn.setmessage("Finished Query.")
   
  End If
  
End Sub