Solved

populating an MSFlexgrid

Posted on 2003-12-03
3
385 Views
Last Modified: 2010-04-20
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_FirstDimUBound")%>, <%=session("ses_SecondDimUBound")%>)
    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>
0
Comment
Question by:Matt_Unsworth
  • 2
3 Comments
 
LVL 9

Expert Comment

by:fz2hqs
ID: 9873110
"Then creating an array to populate an MSFlexGrid" - not in ths code snippet, there is no creating
0
 

Author Comment

by:Matt_Unsworth
ID: 9873136
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.
0
 
LVL 9

Accepted Solution

by:
fz2hqs earned 500 total points
ID: 9873150
If the object is created in the last page, then it is also destroyed at the end of execution of the last page. You need quite simply to create G within this page you can pass values in string form but you will have to create it here

PS - You may want to avoid naming variables like you do, it is far easier for everybody (yourself included) if you try naming things like intLoopCount, grdMyFlexiGrid  - a's b's and z's are meaningless and make reading code difficult
0

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Join & Write a Comment

Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
Meet the world's only “Transparent Cloud™” from Superb Internet Corporation. Now, you can experience firsthand a cloud platform that consistently outperforms Amazon Web Services (AWS), IBM’s Softlayer, and Microsoft’s Azure when it comes to CPU and …
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now