* Задача: вывести текущую дату в заголовок графика. * Определим случайные данные (были предложены вместе с вопросом). 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. * Начало решения. Автор: rlevesque@videotron.ca. * Определим макрос, возвращающий текущую дату. STRING cdate(A9). COMPUTE cdate=STRING($TIME, EDATE8). DO IF $casenum=1. WRITE OUTFILE 'C:\\temp\\temp.sps' /"DEFINE !date()"/cdate/"!ENDDEFINE.". END IF. EXECUTE. * Вызовем макрос, загрузим его в оперативную память. INCLUDE 'C:\\temp\\temp.sps'. *////////////////////////////////. DEFINE !print (). * В следующей строке определяется заголовок графика, включающий текущую дату. Далее он будет использоваться при вызове команды IGRAPH. !LET !title=!QUOTE(!CONCAT(!EVAL(!date),' Продажи по торговым маркам, по филиалам')) 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.