``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58``` ```* Objective: Print the current date in a chart title. * Define dummy data (was given as part of the question) SET SEED=87654321. INPUT PROGRAM. LOOP #I = 1 TO 200. COMPUTE month= TRUNC(UNIFORM(1)*3)+1. COMPUTE year= TRUNC(UNIFORM(1)*3)+1. COMPUTE odse_key= TRUNC(UNIFORM(1)*4)+1. COMPUTE sls_amt= TRUNC(UNIFORM(1)*50)+1. COMPUTE profit= TRUNC(UNIFORM(1)*30)+1. COMPUTE seg_key=TRUNC(UNIFORM(1)*4)+1. COMPUTE dep_key=TRUNC(UNIFORM(1)*4)+1. COMPUTE quart=TRUNC(UNIFORM(1)*16)+1. END CASE. END LOOP. END FILE. END INPUT PROGRAM. EXECUTE. if sls_amt=0 sls_amt=0.01. COMPUTE pmargin =(profit/sls_amt)*100 . EXECUTE . format pmargin (comma). exe. WEIGHT BY sls_amt. SORT CASES BY pmargin (A) . WEIGHT off. * Beginning of solution by rlevesque@videotron.ca. * Define a macro which will yield the current date. STRING cdate(A9). COMPUTE cdate=\$DATE. DO IF \$casenum=1. WRITE OUTFILE 'temp.sps' /"DEFINE !date()"/cdate/"!ENDDEFINE.". END IF. EXECUTE. * Run the macro. INCLUDE 'temp.sps'. *////////////////////////////////. DEFINE !print (). * The chart title (including the current date) is defined in the next line and used in the next IGRAPH command. !LET !title=!QUOTE(!CONCAT(!EVAL(!date),' SALES BY BRAND BY SEGMENT AMT IN S\$K')) IGRAPH /VIEWNAME='Bar Chart' /X1 = VAR(month) TYPE = CATEGORICAL /Y = VAR(sls_amt) TYPE = SCALE /PANEL = VAR(dep_key) /COORDINATE = VERTICAL /X1LENGTH = 3.0 /YLENGTH = 3.0 /X2LENGTH = 3.0 /CATORDER VAR(dep_key) (ASCENDING VALUES OMITEMPTY) /CATORDER VAR(month) (ASCENDING VALUES OMITEMPTY) /TITLE =!title /BAR(SUM) KEY=ON SHAPE = RECTANGLE BASELINE = AUTO. EXE. !ENDDEFINE. *////////////////////////////////. !print. ```
Related pages

...