In the world of Uniface development, creating responsive and dynamic user interfaces is crucial for a great user experience. One powerful command that stands out for achieving this is the show statement. Far from merely presenting information, show is your secret weapon for instantly refreshing your application’s display without interrupting the flow of your code.

What is the Uniface show Statement?

At its core, the show statement is a ProcScript command designed to immediately update or refresh the visual elements of your Uniface form components. Unlike its counterparts, edit and display, which pause your application’s execution to await user interaction, show operates silently in the background, allowing your code to continue running while the interface updates. This non-blocking nature is what makes it incredibly valuable for live feedback and dynamic content.

The Simplicity of Syntax

Getting started with show is remarkably straightforward:

show

That’s it! This concise command triggers a powerful sequence of events behind the scenes.

How Does It Work Under the Hood?

When Uniface encounters a show statement, it performs several key actions:

  • Display Synchronization: All visible field values on the form are updated to reflect their current state.
  • Property Refresh: The current property values of components are refreshed (with the exception of entity properties for current occurrences).
  • No Triggering of Events: Importantly, this update occurs without firing any associated component or field triggers, ensuring a clean and controlled refresh.
  • Uninterrupted Execution: Your ProcScript continues to run immediately after show is executed, without waiting for any user input.

Where Can You Use It? (And Where Not To!)

The show statement is specifically designed for form components. It’s essential to remember this limitation; attempting to use show within service components will result in an error (-1402, UPROCERR_STATEMENT).

A Practical Example: The Live Countdown

To truly grasp the power of show, consider a common scenario: a live countdown timer. Here’s how you might implement it in Uniface:

function CountDown()
variables
  numeric j
endvariables

MyField.MyEnt = 10
while (MyField.MyEnt > 0)
  show ; Instantly update the display
  j = 10000 ; Create a small delay
  while (j>0)
    j = j - 1
  endwhile
  MyField.MyEnt = MyField.MyEnt - 1 ; Decrease the counter
endwhile

end; CountDown

In this example, show plays a critical role, ensuring that each decrement of MyField.MyEnt is immediately visible to the user, providing real-time feedback. The small delay is added to make the countdown perceptible.

Optimizing Display Updates: The AsynchGui Setting

If you experience issues with incomplete screen updates, Uniface provides a configuration setting to address this. Modifying the AsynchGui setting in your usys.ini file can force more thorough display refreshes:

AsynchGui = 2 ; Flush mode for complete screen updates

Common Scenarios for show

The versatility of show makes it indispensable for various application features:

  • Progress Indicators: Keep users informed during lengthy operations by updating progress bars or status messages in real-time.
  • Live Data Monitoring: Display dynamically changing values, suchs as stock prices or sensor readings, as they update.
  • Status Updates: Provide instant feedback on ongoing background processes.
  • Interactive UI Elements: Create dynamic and responsive user interfaces where elements change based on application logic without user intervention.

Performance Considerations

While powerful, it’s important to use show judiciously. Because it forces an immediate screen update, frequent calls within tight loops can potentially impact performance. For the best user experience, especially in rapid iterations, consider introducing slight delays between updates.

show vs. edit vs. display

To clarify show‘s unique role, let’s compare it with related statements:

  • edit: Displays a form and pauses execution, waiting for user input.
  • display: Shows a read-only form and pauses execution, waiting for user interaction.
  • show: Updates the display without pausing execution, allowing your code to continue.

Uniface Pro Tips

  • Leverage show to build truly responsive and engaging user interfaces.
  • It’s perfect for conveying progress during batch processes.
  • Always remember its limitation to form components only.
  • Combine it with $interactive and $editmode for sophisticated form control.

Conclusion

The Uniface show statement is a fundamental tool for any developer aiming to create dynamic and user-friendly applications. Its ability to refresh the UI in real-time without halting code execution opens up a world of possibilities for progress indicators, live data updates, and interactive experiences. Master show, and you’ll significantly enhance the responsiveness and perceived quality of your Uniface applications.

Happy coding!

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed