Hi there experts. I am writing a code to calculate a date that will go backward instead of forward.
For example:
NewDate := CALCDATE( MyTable.DateFormulaField, WORKDATE() );
My ‘MyTable.DateFormulaField’ contains a value of ‘6D’ for six days.
I want them to put a positive number on that field so that it would be easier for them.
If my WORKDATE() is 2010-11-26, how will I be able to calculate six days before that?
Expected NewDate is ‘2010-11-20’.
Thank you.
0
Answers
TempFutureDate := CALCDATE( MyTable.DateFormula, WORKDATE());
TempDaysDifference := TempFutureDate - WORKDATE();
NewDate := WORKDATE() - TempDaysDifference ;
This works.
it's in report 120, calcdates() function
where periodlenght2 and periodlenght are 2 dateformula variables
"Never memorize what you can easily find in a book".....Or Mibuso
My Blog
Technically (from C/AL point of view) the code will never fail, as long as date formula entered is correct. Solution is OK as long as you want to allow only 'shifting' dates by some constant periods..
But in general David is right - it is better to put some more effort in training (or write a good tooltip instead of code). Test this with CM value as date formula - it will work but results are going to be funny.
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
I guess we have a different definition of fail.
take just about any formula and you will see that the '-' will almost never work.
CD+WD7-2D
7D+1M
CM
it will fail every time.