Foxpro validate string as datetime? - visual-foxpro

I have a form and a textbox to bind a field from db (datetime type), which allow user to edit, now I want to only allow user enter a valid datetime (dd/mm/yyyy) format string. How can I do that?

If your textbox is bound to a column in the table that is a date/time, it will by default only allow a valid date-time for you, and if invalid will popup a "wait window" error message (typically top-right of screen) with a message "Invalid Date/Time" which you could customize if you needed to... but this validation is built in automatically.
Now, the sample you have of specific datetime format of "dd/mm/yyyy" is based on "SET DATE" setting... There are many, but yours specifically would be
SET DATE DMY
And that could be done anywhere up-front in your application so the entire VFP app in the default data session knows dates should be entered in Day/Month/Year format...
And if you want century included for full 4-digit year, you could do
SET CENTURY ON

Related

Dynamics 365, Entity View, format date field to "Month Year"

I am working on an entity view that displays billing records with associated date. This date field needs to be displayed as "Month - Year". Unfortunately, I am not able to find a way to format this date field outside of modifying the entity and even then, I only have the option for date only or date and time.
I have noticed that I can select the field and click on Change Properties. There I have "Web Resource" and Function Name. I have tried creating a web resource with a function that returns some data. Set everything up, saved and published. This function is not even found in dev tools. Only examples that I have for it are dealing with using this method for icons:https://www.c-sharpcorner.com/article/view-customization-with-javascript-in-dynamics-365/
In another example the suggestion is to use calculated fields, but this would cause me to lose date sorting and filtering on the form.
That view-based JavaScript seems to be to choose an icon. I'm not sure it would allow you to reformat actual data in the view. And if you're looking for assistance with trying to do that, you'd probably get more help if you posted the code.
Besides the JavaScript approach, you might want to think about creating a separate text field to hold the "Month - Year" value. Then you could use a workflow, plugin, or JavaScript to populate it when the datetime field changes.
One of the free workflow tool packages (Jason Lattimer's, Aiden Kaskela's, or Andrew Butenko's) probably has the ability to parse the date so you can format the month and year, and store the string in the separate field. This would be a no-code option.
Alternatively, you could write a plugin to reformat the datetime values and register it on the RetrieveMultiple message of the entity.
I'd probably go with a separate field and an off-the-shelf workflow utility to populate it.
There are several ways:
1. Setting->Administration->System Setting->Format->Customize,
2. http://prntscr.com/ph42nc,
3. or use on load with js to change date format more on this subject here: How to change date format in JavaScript

how to solve no date entry above 2019 with out sysdate

As seen on above picture, I have one date entry field and one pick date button that opens calendar.
Now I want to set a trigger that prevents user from entering date greater than 01.01.2019 and raise error that
You cannot enter date greater than 01.01.2019
but I do not want to use system date as user can change system date and than enter data.
What do you mean by saying that "user can change system date"? This is Oracle Forms, right? SYSDATE returns the database server system date, not client (i.e. user's own PC) date, so - go on and use SYSDATE, no problem with that (unless, of course, users have access to the database server, but that's another story & a huge security hole).
By the way, apart from using a trigger (that would be the WHEN-VALIDATE-ITEM), a simpler way to do that is to open item's Property Palette and use the "Highest allowed value" property, set to today.

Translated Oracle ApEx app returning incorrect month abbreviation

We have an ApEx data entry site that is translated into both Mexican Spanish and Canadian French. One of the critical columns on most data tables is the date associated with the data. As such, there are date picker fields for each time this value is needed.
The translations automatically display the month code based on the current language (a date picked in January on the Spanish site will display 'Ene' for enero). Before the date is recorded to the DB, the application format mask 'DD-MON-RR' is applied; this understands the current language and records the value on the DB in English.
The issue is that the month of December (diciembre) is showing the abbreviation of 'Dec' rather than 'Dic'. As a result, error ORA-01843 (not a valid month) is generated and the data is not saved. However, if the entry is manually changed to ##-Dic-##, the value is recorded correctly without error.
This makes it appear that the automatically-generated month abbreviation for this language is incorrect. Is this a known error with a solution?
I don't know anything about globalization, my Apex applications are in Croatian only. However, as a workaround, perhaps you could switch to another date format mask, such as DD.MM.YYYY; doing so, you wouldn't depend on language differences.

How to format birt date report parameter?

By default if the input parameter to BIRT report is of type Date, it takes yyyy-MM-dd format.
Can we change to something else e.g. may be dd/MM/yyyy ?
You can change the input format for a date parameter. Click on "Change..." select Format as "Custom" and you can enter a valid format code as you like.
If you want to enter a default Date you still have to use the yyyy-MM-dd Format, this cannot be changed ( where I used new Date() in the Picture), but the output format will still be your entered format.
Another option is to use the format Date Time section in the Birt designer and choose the right locale and formatting for the date.
I have done it in Birt 3.7 and works fine
There can be many way to do that but the easy one is you can do this in SQL Query itself.
If you are using DB2 you may try
VARCHAR_FORMAT("Your Column Mapping Name",'DD-Mon-YYYY') AS dataSetName.
But this will change its Data type to String
Try if this make any seance.

Datetime Format Setting In SSRS

We have a requirement where date time values would be passed to the report parameter which is of "String" date type (and not "DateTime"). The report parameter would be a queried one i.e. it would have a list of values in which the passed value should fall in.
The strange part is that if the date time value passed to this parameter is passed in this format mm/dd/yyyy hh:mm:ss AM/PM then only it succeeds otherwise a error is displayed (If month/date/hour/minute/second is having a single digit value then we need to pass single digit value to parameter as well).
Assuming that the report server picks this format from the "regional settings" in control panel, we tried modifying the date & time formats as yyyy-mm-dd & HH:mm:ss but the outcome was the same.
On researching more I found some suggestions specifying to change the language property in the rdl (I was not able to figure out how) but this would not be the solution I am looking for. I also found another topic here but it didn't provide the solution we are looking for.
I need to understand if this format is controlled at the report server level & is it configurable. It would be great if someone can provide some guidance.
Thanks.
Format(,"mm/dd/yyyy hh:mm:ss AM/PM ")
Then it doesn't matter what the regional settings are.

Resources