The purpose of this compiler directive is to specify that a macro will specifically use one of the aeiou-saints/namedays.
Consider the example below where a macro checks if on a given date, there is a moving holiday of list e, and displays the a-Saints in either case :
INCLUDE_SAINTS_SET a
INCLUDE_HOLIDAYS_LIST e
var
begin
bRESULT = HolidayOfListOnDate('e', n_TokenDate)
sRESULT = '[:st_a]'
end
If there are no tokens in the GridTemplate which refer to a-saints and e-holidays then Q++Studio will not know that you need to specify a-saints and e-holidays and will not be able to issue a design-time message warning you that you have not defined them. By using the INCLUDE_SAINTS_SET and INCLUDE_HOLIDAYS_LIST directive above, you are telling Q++Studio that this macro will always require a-saints and e-holidays, and therefore Q++Studio will be able to warn any user in that uses this macro.
The above example was one where the reference to a Holidays List was explicit (the above macro always uses a-saints and e-holidays). There are cases where the holidays list used cannot be determined from the macro itself, because the holidays list used is one of the input variables of the macro.
input
sHolList
var
begin
sRESULT = '[:st_' + sHolList + ']'
end
In those cases, you should not set the INCLUDE_SAINTS_SET directive in the macro code, as in the first example, but rather as part of the macros options of the script that uses this macro.
Topic 172950, last updated on 19-Apr-2020