Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Slow Report, Can I Display A Message?
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Crystal Reports
Versions des environnements
Visual FoxPro:
VFP 7 SP1
OS:
Windows 2000 SP4
Network:
Windows 2000 Server
Database:
Visual FoxPro
Divers
Thread ID:
00974507
Message ID:
00974656
Vues:
35
>Hi Ben,

>I don't have an answer to the specific question - I've used Crystal for years, though I've never >tried to hook into anything like that. I display messages saying 'Generating report preview....", but >normally those only appear for a matter of seconds, not minutes.

>However, while I don't know anything about the nature of the data you're working with, 11 minutes for >6,000 records is not likely to be acceptable for some users. Is this simply a report where you're >passing/pushing in a result set of 6,000 rows and it's just a long report...or are you performing >some actual processing of the data within Crystal?

>Kevin

I am performing a few formulas that calculate information from several child records per parent record it encounters, so in answer to your question yes there are calculations, this is not a straight forward data dump.

I agree with you that 11 minutes is a long time to wait, but I don't have a choice in the matter. As I stated before, it take about 45-60 seconds on the full Crystal Application, but when I open the RPT file using the RDC in FoxPro, it takes a long time. My only recourse to prevent the user from using "ALT+CTRL+DEL" to kill the process is to show a message that tells them to wait. But I didn't want to display a static message because that still might make them think that the application froze, when in reality it's just processing records. I thought a timer would run asynchronous to the ActiveX RDC Control, and thereby display my dynamic message to the user. But that does not seem to be the case. If it helps, I am pasting my Timer Code below:
     ****************************************************
     * Increment Counter
     ****************************************************
     IF THIS.Counter = THIS.NumberOfDots THEN
     	THIS.Counter = 0
     ELSE
	THIS.Counter = THIS.Counter + 1
     ENDIF

     ****************************************************
     * Display Wait Message To User
     ****************************************************
     WAIT WINDOW THIS.Message + PADR(REPLICATE(".", THIS.Counter), THIS.NumberOfDots) NOWAIT
The code to activate the timer:
     ****************************************************
     * Initialize Message Timer
     ****************************************************
     IF plDisplayWait THEN
          loTimer = CREATEOBJECT("WaitMsgTimer")
          WITH loTimer
               .Message = "Spooling Report, This May Take A Few Minutes" + vfpNewLine
               .NumberOfDots = LEN(.Message)
               .Interval = 1000
               .Enabled = .T.
          ENDWITH
     ENDIF
________________________
Ben Santiago, MCP & A+
Programmer Analyst (SQL, FoxPro, VB, VB.Net, Java, HTML, ASP, JSP, VBS)
Eastern Suffolk BOCES - Student Data Services


Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
-Rich Cook
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform