Matt_Unsworth
asked on
populating an MSFlexgrid
Take a look at the following code, basically all I'm doing is getting a session variable from another page and converting it to a standard variable. Then creating an array to populate an MSFlexGrid.
When I try to run the code as the page loads I get an error message Object Required G was not handled, (G is the name of my MSFlexGrid)
However, if I place this code in a sub, the page loads first and then I execute the code and it works fine - presumably because my MSFlexGrid (G) exists on the page, where as it doesn't in the earlier scenario.
How can I populate this grid when the page loads and remove the need for a click event.
Looking forward to your help.
Matt.
<SCRIPT LANGUAGE=vbscript>
Dim retVar
Dim i
Dim j
Dim SessConv
Dim a
Dim pos
Dim z
Dim w
Dim max ' max number of elements
Dim count
SessConv = "<%=session("ses_search")% >"
ReDim a(<%=session("ses_FirstDim UBound")%> , <%=session("ses_SecondDimU Bound")%>)
max = (UBound(a, 1) - LBound(a, 1) + 1) * (UBound(a, 2) - LBound(a, 2) + 1)
count = 0
For I = LBound(a, 2) To UBound(a, 2)
' Process 2nd dimension element for each 1st dimension values
For J = LBound(a, 1) To UBound(a, 1)
count = count + 1
If count > max Then
Exit For
Else
pos = InStr(SessConv, "#")
if pos = 0 then
a(J, I) = ""
else
a(J, I) = Left(SessConv, pos - 1)
end if
SessConv = Mid(SessConv, pos + 1)
End If
Next
If count > max Then Exit For
Next
retVar = a 'at this point retvar contains all the required data in an array
g.Rows = UBound(retVar, 2) + 1 ' code fails here on the 1st ref to g
g.Cols = UBound(retVar, 1) + 1
g.FixedCols=0
g.FixedRows=1
for z=0 to g.Cols - 1
g.TextMatrix(0, z) = "Column #" & z
g.ColAlignment(z) = flexAlignRightCenter
g.ColWidth(z) = 2000
next
'g.width = g.ColWidth(0) + g.ColWidth(1) + g.ColWidth(2) + g.ColWidth(3) + g.ColWidth(4) + g.ColWidth(5)
for z = g.FixedRows to g.Rows - 1
for w = g.FixedCols to g.Cols - 1
g.TextMatrix(z, w) = retVar(w, z)
next
next
</SCRIPT>
When I try to run the code as the page loads I get an error message Object Required G was not handled, (G is the name of my MSFlexGrid)
However, if I place this code in a sub, the page loads first and then I execute the code and it works fine - presumably because my MSFlexGrid (G) exists on the page, where as it doesn't in the earlier scenario.
How can I populate this grid when the page loads and remove the need for a click event.
Looking forward to your help.
Matt.
<SCRIPT LANGUAGE=vbscript>
Dim retVar
Dim i
Dim j
Dim SessConv
Dim a
Dim pos
Dim z
Dim w
Dim max ' max number of elements
Dim count
SessConv = "<%=session("ses_search")%
ReDim a(<%=session("ses_FirstDim
max = (UBound(a, 1) - LBound(a, 1) + 1) * (UBound(a, 2) - LBound(a, 2) + 1)
count = 0
For I = LBound(a, 2) To UBound(a, 2)
' Process 2nd dimension element for each 1st dimension values
For J = LBound(a, 1) To UBound(a, 1)
count = count + 1
If count > max Then
Exit For
Else
pos = InStr(SessConv, "#")
if pos = 0 then
a(J, I) = ""
else
a(J, I) = Left(SessConv, pos - 1)
end if
SessConv = Mid(SessConv, pos + 1)
End If
Next
If count > max Then Exit For
Next
retVar = a 'at this point retvar contains all the required data in an array
g.Rows = UBound(retVar, 2) + 1 ' code fails here on the 1st ref to g
g.Cols = UBound(retVar, 1) + 1
g.FixedCols=0
g.FixedRows=1
for z=0 to g.Cols - 1
g.TextMatrix(0, z) = "Column #" & z
g.ColAlignment(z) = flexAlignRightCenter
g.ColWidth(z) = 2000
next
'g.width = g.ColWidth(0) + g.ColWidth(1) + g.ColWidth(2) + g.ColWidth(3) + g.ColWidth(4) + g.ColWidth(5)
for z = g.FixedRows to g.Rows - 1
for w = g.FixedCols to g.Cols - 1
g.TextMatrix(z, w) = retVar(w, z)
next
next
</SCRIPT>
"Then creating an array to populate an MSFlexGrid" - not in ths code snippet, there is no creating
ASKER
Good point, the array is created in the previous page and passed to this page as a string.
The value retvar contains what I want but the problem still stands of populating g, any ideas how I can do this.
I think that g does not exist when I try to populate it in the code above, how can I get around this.
Matt.
The value retvar contains what I want but the problem still stands of populating g, any ideas how I can do this.
I think that g does not exist when I try to populate it in the code above, how can I get around this.
Matt.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.