그리드 컬럼수 변경시 ColIndex 오류 처리
레코드셋에 데이터를 저장하고나서,
그리드. 데이터소스에 레코드 셋을 적용할때 그리드를 초기화 해주지 않으면 발생 하는 것 같다.
그리드를 초기화 해주고 데이터소스에 레코드셋을 적용하고 나니 해결되었다.
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