[OutSystems UI Web] Time Picker value is not showing
Forge component by OutSystems R&D
Application Type
Traditional Web
Service Studio Version
11.10.10 (Build 38781)

Hi All, 

I was wondering if this is bug of Time Picker widget or I have any places that is missed out? My time value does not show up in the input field when I view the detail. 

This is my Time Picker widget property and my input field property in Time Picker. The local variable 'LCloseTime' data type is 'Text'.

This is where I debug the LCloseTime in Preparation. First, I get and convert the time value stores in entity '....CloseTime' to text.

Then, I store the converted time into 'LCloseTime'. 

When I debug in the interface, the widget did shows the variable had a value. 

But, when display in browser, the input field show nothing.

Is there anyone can help on this? 

Would be much appreciate.

Thank you.


mvp_badge
MVP
Solution

P.S. Setting the data type of the variable to Time and assigning it to the StartTime property of the TimePicker will make it appear when the page is loaded. 

Hi Gwen,

In traditional web, the screen doesn´t automatically reflect changes in the underlying data.  So you need to refresh the ui element involved.

So, give the input widget a name and do an Ajax Refresh on it after your assign.

Dorine

Hi Dorine,

Unfortunately, it's not able to do Ajax Refresh in preparation. My input widget does has a name 'ChecklistMasterDataDetail_CloseTime'  

 

As for your information, I refer to this article, and try on item no.9, enclosed the input widget and time picker in container and do Ajax Refresh. It refreshed my input value become null. This does not work as expected. 

This is how I enclosed my input widget and time picker. 

Thank you.

Ah ok Gwen,

I misread your initial post, I tought you were handling the timepicker changed event, not the preparation.


As far as i can tell from what you show in your screenprint, you have 2 widgets, the timepicker and an input.  So your input is bound to that local variable, and what you do in your preparation should work for that, but the screenprint you show is for the timepicker widget, and there you have initial_time empty (you even set the StartEmpty to True) so that's exactly what you are getting.

I would imagine starttime has to be CheckListMasterDetail.Closetime, or whatever variable holds you time in non-text format.

Dorine  

mvp_badge
MVP

Besides not using the StartEmpty, two more things are required for it to work as expected:

1. Variable must be of Time data type (not Text).
2. The StartTime property of the TimePicker must be set to the same variable associated with the input.

I am not sure, but I think this will work only if the variable's time value is one of the times available in the interval present in the picker.

Cheers!

Hi Gwen,

What is the data type of the LCloseTime variable?

Kind regards,

Chris

Hi Christopher,

The data type is Text. 

Hi Gwen,

Let's try step by stpe:

  1. You get a time from an entity;
  2. You convert the time to text and assign it to a variable called LCloseTime;
  3. LCloseTime is the variable of the Input Widget ChecklistMasterDataDetail_CloseTime;

As far as I can tell, the Input widget should be showing the value of LCloseTime, not the TimePicker. TimePicker needs a variable of type Time to work. But, It seems that you do not set its value. That is why your TimePicker is empty:

What is the variable that you are using in the TimePicker? You need to set its value.

Best regards.

mvp_badge
MVP

Hello Gwen.


May I ask you why are you binding a text variable to the input associated with the TimePicker?

The TimePicker is designed to allow the users to select a time from a list. So, the variable where the value will be stored should be a "time" variable.

It even has an Interval property for you to set the interval.
So, the value 4:05 is "weird" unless you set the interval to 5 minutes?

You may be looking for another type of widget where the users able to select an exact time?

Cheers.

mvp_badge
MVP
Solution

P.S. Setting the data type of the variable to Time and assigning it to the StartTime property of the TimePicker will make it appear when the page is loaded. 

Hi Eduardo,

Sorry for being late getting back to you.

Regarding your first question,
I set the Time Picker property "Is24Format" as False, to show the time in 12-hr format due to user requirement. Initially, my variable was store as 'Time', but when I debug, I checked that it doesn't get the value from what I've been selected from the list option, instead it get null. So, I changed the variable as 'Text' to check if it able to get the value and convert the text variable to time using the AmPmTextToTime function to store the value in DB. Then, in preparation, I get the value and convert back to text for display purpose when user view the detail.


Regarding your second question,
The interval property is left it as default 30mins. The value "4:05" is to test will the value be captured if user choose the time from the option but feels that the list option isn't what they want, and manually change the value. For example, user choose 4:00 PM, but he doesn't want to set 4:00 PM as the close time, instead he want it to be 4:02 PM. So, he manually change to 4:02 PM as the value.

I've been thinking to set the interval as 1, but it will be a long list and afraid it will increase the processing time to load the list option. 

Hi Eduardo,

Instead set the LCloseTime as my 'StartTime' property of TimePicker, I set the DB value for the property and managed to display the time.

FormName.Record.EntityName.CloseTime

Also, I had set StartEmpty as False. The reason I set as True initially because I would like to show the empty field for user instead of showing the time value before user pick the time from the list.

maybe I had probably get the wrong idea for the TimePicker property?

Anyway, thanks for your suggestions and help! 


mvp_badge
MVP

You may want to try something from the forge.
If you search for Time Picker, you will see many different components.

From what you told here, I would say that what you want is a time picker with hours and minutes and allows the user to set it. I think there are a few components that do that in Forge.

Cheers.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.