![]() Chapter Contents |
![]() Previous |
![]() Next |
| SAS/MDDB Server Administrator's Guide |
This SCL code attaches the table editor to an instance of the MDDB_M class and reads in the MDDB that was created in Example 1: Building an MDDB Using the MDDB Procedure.
/*-- load the MDDB_M class to read the mddb data --*/
dcl object tabid;
dcl object mddbid=_new_ sashelp.mddb.mddb_m();
init:
/*-- get the table editor id --*/
_frame_._getWidget('obj1', tabid);
/*-- attach the table editor to this instance of mddb_m --*/
tabid._attach(mddbid);
/*-- read in the MDDB you created --*/
mddbid._setMddbTable('SASUSER.MDDB');
classlist=makelist();
/*-- create the class list for your table --*/
rc = insertc(classlist, 'COUNTRY', -1);
rc = insertc(classlist, 'PRODUCT', -1);
/*-- make your table --*/
mddbid._makeTable(classlist);
mddbid._addComputedValue('_STATS_', 'Difference');
/*-- set the SCL that will be run to calculate Difference --*/
mddbid._setSource('SAMPCOMP.SCL', 'Y');
rc=rc;
return;
The following SCL code is the SAMPCOMP.SCL program called from the previous code. It calculates the computed values for this example:
_stats_=";;
_anlsys_=";;
init:
cellist=makelist();
rc=rc;
/*-- find out the address of the cell we are computing --*/
_self_._getCompCellAddress(cellist);
/*-- if we are computing the difference of ACTUAL/PREDICT sales --*/
if ( _stats_="Difference" ) then
do;
getlist=makelist();
rc=copylist(cellist, 'y', getlist);
/*-- setup the address to request SUM values --*/
rc = setnitemc(getlist, 'SUM', '_STATS_');
if (_anlsys_='ACTUAL') then
do;
_self_._getValues(getlist, aval);
rc=setnitemc(getlist, 'PREDICT', '_ANLSYS_');
_self_._getValues(getlist, pval);
end;
else
do;
_self_._getValues(getlist, pval);
rc=setnitemc(getlist, 'ACTUAL', '_ANLSYS_');
_self_._getValues(getlist, aval);
end;
/*-- set up the value of the computed cell to contain --*/
/*-- the difference of predicted sales from actual sales --*/
value=aval - pval;
/*-- if we predicted more than we actually sold, --*/
/*-- turn that cell to RED so the value stands out --*/
if (value < 0) then
/*-- if the difference is negative it will be RED --*/
_self_._setCellColor(cellist, 'red');
else
/*-- if the difference is positive it will be GREEN --*/
_self_._setCellColor(cellist, 'green');
rc=dellist(getlist,'Y');
end;
rc=dellist(cellist,'Y');
return;
The following display shows the results of running a FRAME entry with the SAS/AF Table Editor Viewer object and gives the results of the above programs:
Table Editor Viewer Frame
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.