Solved

.hta file needs a "Please wait..." message

Posted on 2010-09-04
2
973 Views
Last Modified: 2012-06-21
Hello mates,

I am just dabbling into .hta application development.

The code below works great, just like we want it.

The only missing bit is when a user tries searching the db for records, I need to give the user a message that says, "Search in progress, please wait..."

I have done this tons of times with other languages but having feats giving it a go with .hta.

Any assistance with this bit is highly appreciated.

This is entire working code. Thanks much in advance.

<html>
<HTA:APPLICATION ID="oHTA"
     APPLICATIONNAME="default"
	 BORDER="thin"
	 BORDERSTYLE="normal"
	 CAPTION="yes"
	 ICON=PBTC.ico
	 MAXIMIZEBUTTON="yes"
	 MINIMIZEBUTTON="yes"
	 SHOWINTASKBAR="no"
	 SINGLEINSTANCE="no"
	 SYSMENU="yes"
	 VERSION=7.2
	 WINDOWSTATE="maximize"
	 contextMenu=no
  >
<head>

<script type="text/javascript">

var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off)
var collapseprevious="Yes" //Collapse previously open content when opening present? (yes/no)

if (document.getElementById){
document.write('<style type="text/css">')
document.write('.switchcontent{display:none;}')
document.write('</style>')
}

function getElementbyClass(classname){
ccollect=new Array()
var inc=0
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (i=0; i<alltags.length; i++){
if (alltags[i].className==classname)
ccollect[inc++]=alltags[i]
}
}

function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}

function expandcontent(cid){
if (typeof ccollect!="undefined"){
if (collapseprevious=="yes")
contractcontent(cid)
document.getElementById(cid).style.display=(document.getElementById(cid).style.display!="block")? "block" : "none"
}
}

function revivecontent(){
contractcontent("omitnothing")
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
for (i=0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display="block"
}

function get_cookie(Name) { 
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) { 
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function getselectedItem(){
if (get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}

function saveswitchstate(){
var inc=0, selectedItem=""
while (ccollect[inc]){
if (ccollect[inc].style.display=="block")
selectedItem+=ccollect[inc].id+"|"
inc++
}

document.cookie=window.location.pathname+"="+selectedItem
}

function do_onload(){
uniqueidn=window.location.pathname+"firsttimeload"
getElementbyClass("switchcontent")
if (enablepersist=="on" && typeof ccollect!="undefined"){
document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0" 
firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0 //check if this is 1st page load
if (!firsttimeload)
revivecontent()
}
}


if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload

if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate

</script>

<title>PCourt Montly Report</title>

<script language="vbscript">

Dim conn 'GLOBAL doing this here so that all functions can use it

sub dotheconnection

set conn=CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=10.48.5.120,1433;Network Library=DBMSSOCN;" &_
"Initial Catalog=PCCourt;User ID=prtUsers;Password=prbusers;"

	If conn.errors.count <> 0 Then 
	
		alert("problem connecting to the database")
	else
		' if connected OK call sub getdata
	end if
end sub

sub searchdata

	SQL_query = "SELECT Name, Rel, Estno, dtfild, pub, typeofdocument, btyp, bkno, pgno, disp, dispdt FROM PCS60418_MTHLY_XREF WHERE NAME LIKE '%" & Replace(txtsrch.value, "'", "''") & "%' ORDER BY NAME "
	Set rsData = conn.Execute(SQL_query)
        If rsData.EOF Then
	msgbox  "No records found. Please refine your search"

       else 
       
        strHTML = strHTML & "<table cellspacing='0' cellpadding='4' border='0' width='100%'>"
	strHTML = strHTML & "<tr style='background-color:#69C; color:#FFFFFF; font-size: x-small;font-weight:bold'>"
	strHTML = strHTML & "<th>NAME</th>"
	strHTML = strHTML & "<th>REL</th>"
	strHTML = strHTML & "<th>ESTATE NO</th>"
	strHTML = strHTML & "<th>DATE FILLED</th>"
	strHTML = strHTML & "<th>PUB</th>"
	strHTML = strHTML & "<th>TYPE OF DOCUMENT</th>"
	strHTML = strHTML & "<th>BOOK TYPE</th>"
	strHTML = strHTML & "<th>BOOK NO</th>"
	strHTML = strHTML & "<th>PAGE NO</th>"
	strHTML = strHTML & "<th>DISPOSITION</th>"
	strHTML = strHTML & "<th>DISP DATE</th>"
        strHTML = strHTML & "</tr>"
      
          Dim colorset, numcolors
      	 '/--- This is the array of colors to use. -------------\
      	  colorset = split("gainsboro,White",",")
      	  numcolors = ubound(colorset)+1

       priorRec=""
     Do Until rsData.EOF
       curRec= rsData("Name") 
       curRel = rsData("Rel")
       If curRec <> priorRec Then
           
            strHTML = strHTML & "<tr>" 
            strHTML = strHTML & "<td style='background:gainsboro;font-size: x-small;'>" & rsData("Name") & "</td>"
            strHTML = strHTML & "<td style='background:gainsboro;font-size: x-small;font-size: x-small;'>" & rsData("REL") & "</td>"      
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("ESTNO") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("DTFILD") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("PUB") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("TypeOfDocument") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("BTYP") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("BKNO") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("PGNO") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("DISP") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;'>" & rsData("DISPDT") & "</td>"
            strHTML = strHTML & "</tr><tr>"
            
            priorRec = curRec
            priorRel = curRel

       Else
       
            strHTML = strHTML & "<tr>" 
            strHTML = strHTML & "<td style='background:White;font-size: x-small;'> &nbsp; </td>"
            strHTML = strHTML & "<td style='background:White;font-size: x-small;'>&nbsp;</td>"      
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("ESTNO") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("DTFILD") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("PUB") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("TypeOfDocument") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("BTYP") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("BKNO") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("PGNO") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("DISP") & "</td>"
            strHTML = strHTML & "<td style='background:" & colorset(i mod numcolors) & ";font-size: x-small;' >" & rsData("DISPDT") & "</td>"
            strHTML = strHTML & "</tr>"    
      end if
 
            i = i + 1
            rsData.MoveNext
      Loop

        strHTML = strHTML & "</table>"
        searchIT.innerHTML = strHTML
    end if
end sub

</script>
<style>
<!--
fieldset     { border: 1 solid #000080 }
font         { font-family: Verdana; font-size: 10pt }
-->
</style>
<LINK href="/probateCT/include/template.css" rel="stylesheet" type="text/css">
</head>
<body onload="dotheconnection" language="vbscript" background="images/fond.gif">

<font face="Verdana" size="2">

<div align=center><input type="button" style="width: 580px;" value="Search Probate Court Monthly Report Database Click here>>>" onClick="expandcontent('sc2')" style="font-size: medium; font-weight: bold; color:#ffffff; background-color:#69C;"></div>

<div id="sc2" class="switchcontent">

<div align="center">
 <table border="0" width="470" height="16">
    <tr>
      <td height="6" class="bgtop" nowrap>
     <b><font style="font-size: medium; font-weight: bold; color:#ffffff;">Enter Name:</font></b></td>
     <td width="487" height="7"><b><font face="Verdana" size="2"><input type="text" name="txtsrch" size="43"></font></b><input type="button" name="btnSearch" class="bgtop" value="Go" onclick="searchdata" language="vbscript" style="font-size: medium; font-weight: bold; color:#ffffff; background-color:#6e6e6e;">
      </td>
      </tr><tr><td width="126"></td><td width="487"><b><font color="#000080" size="2" face="Verdana">
        You can search by a keyword e.g.; Gibbs<br>
        You can also search in the format of Lastname, Firstname Middle name.<br>
        Example: Adams, Eva Gibbs</font></b>
      </td>
    </tr>
     </table>
</div>

<fieldset>
<legend><b><font style="font-size: medium; font-weight: bold; color:#6e6e6e; background-color:gainsboro;">Search Results</font></b></legend>
<center><div style="width: 950; height: 500; overflow: auto; border: 0px solid black" id="searchIT"></div>
</center>
</fieldset>
</body>
</script>

Open in new window

0
Comment
Question by:sammySeltzer
2 Comments
 
LVL 8

Accepted Solution

by:
spinzr0 earned 250 total points
ID: 33605079
I generally find it easiest to just pop up an IE window with the message when working in HTAs because they won't update until the command finishes.  Here is some code to do it.
Set oIE = CreateObject("InternetExplorer.Application")

Call CreatePopup()

Wscript.Sleep 5000

oIE.Quit

Set oIE = Nothing



'**************************************************************************

'Creates the progress bar so the user sees that the process is running

'**************************************************************************

Sub CreatePopup()

    On Error Resume Next



    sPBTitle = "Please Wait"

    iWindowWidth = 300

    iWindowHeight = 100

    With oIE

        .Navigate "about:blank"

        .ToolBar = False

        .StatusBar = False

        .MenuBar = False

        .Resizable = False

        .Width = iWindowWidth

        .Height = iWindowHeight 

        .Left = (.Document.ParentWindow.Screen.AvailWidth - iWindowWidth) / 2

        .Top = (.Document.ParentWindow.Screen.AvailHeight - iWindowHeight) / 2

        With .Document

            .Open

            .Write "<html><head><title>" & sPBTitle & "</title></head>" &_ 

                   "<body bgcolor=""buttonface"">" &_ 

                   "Search in progress, please wait..." &_ 

                   "</body></html>"

            .Close

            .Title = sPBTitle

        End With

        .Visible = True             

    End With

    Do While oIE.Busy : WScript.Sleep 100 : Loop

End Sub

Open in new window

0
 
LVL 28

Author Comment

by:sammySeltzer
ID: 33633283
I was able to find a nifty way of doing this and it does work for me now.

I wan to thank you for all your efforts.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Welcome to part one of a multi-part tutorial series, VBScript for Windows System Administrators.  The goal of this series is to teach non-programmers how to write useful VBS code to automate their environment, and perform tasks faster, and in a more…
Well hello again!  Glad to see you've made it this far without giving up.  In this, the fourth installment of my popular series, I'm going to cover functions and subroutines, what they are, and why they are useful.  Just in case you stumbled onto th…
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

863 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

29 Experts available now in Live!

Get 1:1 Help Now