Вывод текущей даты и времени в заголовок графика
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 59 60 61 62 63 | * Задача: отобразить на графике текущую дату и время в заголовке. * Замечание: тот же подход можно использовать и для печати даты и времени в заголовках таблиц. * Определим случайные данные (были предоставлены как часть вопроса). 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, размещено в SPSSX-L 01.07.2001. * Определим макрос, возвращающий текущую дату и время. STRING cdate(A17). * Вызов функции $TIME возвращает текущие дату и время. COMPUTE cdate=STRING($TIME,DATETIME16). 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. * Для точных результатов определение макроса !date и его использование должны производиться за один вызов макроса, т.е. «разом». - А.Б. |
Related pages
...