Title: CONSTANT query Post by: Gary C. on January 19, 2014, 06:57:46 pm Hi
I have been looking at using IMPORT FGL to aid the use of subdialogs. The following code will not compile: imported.4gl Code:
import_test.4gl Code:
The compiler complains about the MAXCOLSPERTABLE being used to define the array size as it believes it is undefined, yet is happy with the LET statement and when using a local constant (MYCONST). Is this to be expected? Thanks Gary Title: Re: CONSTANT query Post by: Nuno G. on January 20, 2014, 08:45:15 am I would suggest you to use this solution instead:
teste11.h: =================================== PUBLIC CONSTANT MAXCOLSPERTABLE = 100 teste11.4gl: =================================== &include "teste11.h" MAIN CONSTANT MYCONST = 100 DEFINE idx SMALLINT, arrA ARRAY[MYCONST] OF INTEGER, arrB ARRAY[MAXCOLSPERTABLE] OF INTEGER LET idx = MAXCOLSPERTABLE DISPLAY arrA.getLength() END MAIN I tested iy and it worked just fine. HIH Nuno Title: Re: CONSTANT query Post by: Sebastien F. on January 20, 2014, 09:41:58 am Hi Collis,
Yes, it should be possible to use the MAXCOLSPERTABLE constant to define the array in the importing module. We will investigate and fix this. However, I strongly suggest you to use dynamic arrays instead of static arrays. I would not workaround this problem with the preprocessor. If you have to use static arrays (?why?), I would define the "max" constants and the static array in the same module: both define the data model and should be grouped. Seb Title: Re: CONSTANT query Post by: Gary C. on January 20, 2014, 10:33:15 am Hi
Thanks for the replies. Nuno, I had originally used an include statement so will likely reinstate that approach. Seb, the application in question uses tables with a dynamic number of columns and this approach overcomes the issues discussed here: https://4js.com/fjs_forum/index.php?topic=605.0 Gary |