Qlik Community

Ask a Question

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
Live chat with experts, bring your API Integration questions. June 15th, 10 AM ET. REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Message kept visible during macro running behind

Hi

I have a macro run as post reload trigger.

Doeas someone know the possibility to create message box (without any buttons and f.e with text "Wait...") being kept visible during macro is running behind, and automaticaly self closing when the end message: "Procedure is finished" is released from this macro?

Would it be WaitForIdle used in some way?

I would really apprecite support

Zibi

1 Solution

Accepted Solutions
Not applicable
Author

Hi

Victory!!!

The method proposed by Fernando I had used alredy before - it did not work.

But together with the idea which Erich contributed with - after some my combinations works perfectly!

Summary for all potentially interested in:

What I found/experienced: After step 3 BOTH(!) commands proposed by Erich must be used, what more - in proper order.

So:

after step 3:

a) Place command ActiveDocument.GetApplication.WaitForIdle

b) Place command ActiveDocument.GetApplication.Refresh

If you used only one of these commands, or in opposite order - in best case result would not be as expected, and even some sensitive users might meet a hearbrake... seeing for the moment crossses on all objects...

Thanks Fernando and Shino! I have a feeling we found something new...

brgds

Zibi

View solution in original post

3 Replies
fosuzuki
Partner
Partner

Conceptually speaking (not tested... ), this should work:

1. create a variable ("vShowMessage") and set its initial value to zero

2. create a textbox with the text "Wait..." and config the textbox as Show Conditional when vShowMessage=1

3. At the beginning of your macro, set vShowMessage = 1

4. At the end of your macro, set vShowMessage = 0

I think WaitForIdle isn't necessary.

erich_shiino
Partner
Partner

Hi,

You may just need to add a command after step 3 and your main code.

Eventually, the code would set the variables but the interface would take some time to be updated.

You can force the screen update with

  ActiveDocument.GetApplication.Refresh

... and the text box will appear

(maybe you can use waitforidle instead of refresh... I'm not sure)

Regards,

Erich

Not applicable
Author

Hi

Victory!!!

The method proposed by Fernando I had used alredy before - it did not work.

But together with the idea which Erich contributed with - after some my combinations works perfectly!

Summary for all potentially interested in:

What I found/experienced: After step 3 BOTH(!) commands proposed by Erich must be used, what more - in proper order.

So:

after step 3:

a) Place command ActiveDocument.GetApplication.WaitForIdle

b) Place command ActiveDocument.GetApplication.Refresh

If you used only one of these commands, or in opposite order - in best case result would not be as expected, and even some sensitive users might meet a hearbrake... seeing for the moment crossses on all objects...

Thanks Fernando and Shino! I have a feeling we found something new...

brgds

Zibi

View solution in original post