SAS

Les logiciels et les services qui vous donnent le pouvoir de savoir

ActualitéEvènementsSupport ClientsFormationAcademicEmploisContact
Accueil Produits et Solutions références Partenaires Services La Société www.sas.com
 
Support Clients
Fonctionnement
Assistance personnalisée
Contacter le Support
FAQ
Newsletter SAS France
Documents techniques
Ressources en ligne
Correctifs
 

Développement d'applications SAS/EIS®

QUESTIONS

- Comment peut-on modifier le label des statistiques ?
- Peut-on avoir des barres de différentes couleurs avec le 3D Business Graph ?
- Comment modifier le label de l'axe des ordonnées dans un 3D Business Graph ?
- Comment changer le format d'une variable d'analyse d'un MDDB dans un Rapport Multidimensionnel ?
- Comment changer le format d'une variable d'analyse d'un MDDB dans un 3D Business Graph ?
- Comment modifier le texte -ALL- dans un Dimension Navigator ?
- Comment modifier la couleur des cellules d'une colonne dans un rapport multidimensionnel ?
- Comment peut-on faire un collapse/expand sur les colonnes d'un rapport multidimensionnel?
- Comment changer les libellés des différentes statistiques affichées dans un Multidimensional Report ?
- Comment mettre à jour en batch l’attribut BASETABL au niveau d’un cube enregistré dans un repository ?


SOLUTIONS

Comment peut-on modifier le label des statistiques ?

Pour modifier le label des statistiques, vous devez surcharger en After la méthode _SETUP_ . Les méthodes concernées par cette surcharge sont _GET_ROW_INFO_ et _GET_COLUMN_INFO_ . Avec le code suivant, vous pourrez remplacer SUM par Somme, MIN par Minimum, etc….

length _method_ $ 40 text $200 ;
modelid=modelid;
_self_=_self_;
_method_=_method_;
_frame_=_frame_;

setup:
      method;
         source=screenname();
         call send(modelid,'_set_instance_method_','_get_row_info_',
         source,'get_r_c');
         call send(modelid,'_set_instance_method_','_get_column_info_',
         source,'get_r_c');
      EndMethod;

get_r_c:
     method id 8;
         call super(_self_,_method_,id);
         call send(id,'_get_text_',text);
         if text='SUM' then call send(id,'_set_text_','Somme');
         if text='MIN' then call send(id,'_set_text_','Minimum');
         if text='MAX' then call send(id,'_set_text_','Maximun');
         if text='PCTSUM' then call send(id,'_set_text_','Poids ');
         if text='AVG' then call send(id,'_set_text_','Moyenne');
         if text='N' then call send(id,'_set_text_','Nombre');
      EndMethod;


Retour Haut


Peut-on avoir des barres de différentes couleurs avec le 3D Business Graph ?

Pour ce faire, il faut surcharger la méthode_SET_VIEWER_ATTR_ en effectuant un Override de la méthode.
Le code suivant attribue une couleur à chaque barre en spécifiant l'ordre des couleurs. Attention, ce code n'est valable que si vous n'utilisez pas de sous groupe.

length _method_ $40;
length subgroup idvar $ 30;
idvar=idvar;
modelid=modelid;
rc=rc;
ctype=ctype;
_self_=_self_;
_method_=_method_;

SETVIEW: method;
      displst=makelist();
      call send(modelid,'_get_displayed_class_vars_',displst);
      do i=listlen(displst) to 1 by -1;
         item=getitemc(displst,i);
         if item = '_ANLSYS_' | item= '_STATS_' then rc=delitem(displst,i);
      end;

call putlist(displst,'displst=',0);
    midpoint=getitemc(displst,1);
    call send(_self_,'_get_id_var_',subgroup);

    if subgroup=' ' and ctype ^in [15,16] then do;
      call send(_self_,'_set_id_var_',midpoint);
      call send(_self_,'_hide_legend_');

      /* Si l'on veut spécifier l'ordre des couleurs */
      if ctype >= 17 then do;
        call send(_self_,'_set_color_','BAR','PINK',1);
        call send(_self_,'_set_color_','BAR','ORANGE',2);
        call send(_self_,'_set_color_','BAR','YELLOW',3);
        call send(_self_,'_set_color_','BAR','BLUE',4);
        /* etc... selon le nombre de bars */
      end;

    end;

    put midpoint=;
    rc=dellist(displst);
    call super(_self_,_method_);

EndMethod;


Retour Haut

Comment modifier le label de l'axe des ordonnées dans un 3D Business Graph ?

Il est possible de modifier le label de l'axe des ordonnées en surchargeant la méthode _SET_VIEWER_ATTR_ en After. Le code qui suit attribue le label "valeur" à l'axe des ordonnées.

_SELF_=_SELF_;

LABEL : method ;

call send(_SELF_,'_SET_TEXT_','VLABEL','valeur');

EndMethod ;


Retour Haut

Comment changer le format d'une variable d'analyse d'un MDDB dans un Rapport Multidimensionnel ?

Dans un Rapport Multidimensionnel, vous pouvez changer le format d'une variable d'analyse d'un MDDB en effectuant une surcharge de la méthode _SET_APPLICATION_ du model. Cette surcharge a lieu en After.

Avec le code suivant, vous assignez le format Dollar7. au résultat de votre somme.

_self_ = _self_ ;

SETAPPL: Method applistrc 8 rc 8;

Call Send(_self_, '_SET_CLASS_FORMAT_','_STATS_', 'SUM','DOLLAR7.');

EndMethod;


Retour Haut

Comment changer le format d'une variable d'analyse d'un MDDB dans un 3D Business Graph ?

Dans un 3D Business Graph, vous avez la possibilité de changer le format d'une variable d'analyse d'un MDDB en surchargeant la méthode _SET_APPLICATION_ . La surcharge s'effectue sur le model et vous devez faire un Override de la méthode. _WRITE_ est la méthode utilisée dans cette surcharge.

Length _method_ $40 stat format $40;
_self_=_self_;
_method_=_method_;

SETAPPLG: Method applist rc 8;

      source = screenname() ;

      Call Super(_self_, _method_,applist, rc);
      Call Send(_self_, '_SET_CLASS_FORMAT_','_STATS_', 'SUM', 'dollar8.');
      Call Send(_self_,'_set_instance_method_','_write_', source,'write');
      Call Send(_self_,'_set_instance_method_','apply_format_for_write', source,'applfmt');

EndMethod;

WRITE: method dsname $17 optional= replace transpose $1;

      Call Send(_self_,'apply_format_for_write');
      Call Super(_self_,'_WRITE_',dsname,replace,transpose);

EndMethod;

APPLFMT: method;

/* Statisitique affichée */

stat=getnitemc(getniteml(getniteml(getniteml(getniteml(getniteml(_self_,'TABLES'), 'TABLE1'),'CLASSES'),'_STATS_'),'DISPLAYED_VALUES'),'VALUE1');

/* Variable d'analyse affichée*/

anal=getnitemc(getniteml(getniteml(getniteml(getniteml(getniteml(_self_,'TABLES'), 'TABLE1'),'CLASSES'),'_ANLSYS_'),'DISPLAYED_VALUES'),'VALUE1');

      call putlist(varinfo_l,'var : ',0);

      do cpt = 1 to listlen(VARINFO_L) ;

        if anal = getnitemc(getiteml(varinfo_l,cpt),'VARLABEL',1) then do ;
          anal = getnitemc(getiteml(varinfo_l,cpt),'VARNAME',1);
          cpt = listlen(VARINFO_L) ;

        end ;

      end ;

/*get the format for the current statistic, defined through the _set_class_format_method*/

statattr=getniteml(getniteml(_self_,'global_class_attributes'),'_stats_');

      do i=1 to listlen(statattr);

        if itemtype(statattr,i)='L'and substr(nameitem(statattr,i),1,5)='CLASS' then do;

           if getnitemc(getiteml(statattr,i),'VALUE')=stat then do;
              format=getnitemc(getiteml(statattr,i),'FORMAT');
           end;

        end;

      end;

/* write the format to the customizations list */

cust_l=makelist();
fmtlst=makelist();
custom=makelist();
rc=insertc(CUSTOM,FORMAT,-1,anal);
rc=insertl(fmtlst,custom,-1,'CUSTOM');
rc=insertl(cust_l,fmtlst,-1,'FORMAT');
call send(_self_,'_set_custom_',cust_l);
cust_l=dellist(cust_l);
fmtlst=dellist(fmtlst);
custom=dellist(custom);

EndMethod;


Retour Haut

Comment modifier le texte -ALL- dans un Dimension Navigator ?

En surchargeant la méthode _SET_VIEWER_ATTR_ en After, il est possible de modifier le texte -ALL- d'un Dimension Navigator. Le code qui suit, remplace le texte -ALL- par Nouveau Texte.

_self_=_self_;

SETVIEW: method;

     dim_value=getnitemc(_self_,'DIM_VALUE');
     if dim_value='-ALL-' then
        call send(_self_,'_set_text_','Nouveau Texte');

EndMethod;


Retour Haut

Comment modifier la couleur des cellules d'une colonne dans un Rapport Multidimensionnel ?
Vous pouvez attribuer une couleur à des cellules en fonction des valeurs prises en surchargeant la méthode _POSTINIT_ en After. La méthode prise en compte dans la surcharge est _GET_DATA_.

Le code qui suit, colorie en rose les cellules contenant des valeurs supérieures à 121000 dans une colonne.

length text $ 30;
_self_=_self_;
rc=rc;

POSTINIT: method;

      source = screenname() ;
      dataid=getnitemn(_self_,'MODELID');

      call symput('dataid',dataid);
      call send(dataid,'_set_instance_method_','_get_data_',source,'getdata');
      call symput('flag',1);

EndMethod;

GETDATA: method vecid 8 numcols 8;

      dataid=symget('dataid');
      call super(_self_,'_get_data_',vecid,numcols);
      collist=makelist();

      do i=1 to numcols;

        call send(vecid,'_set_index_',i);
        call send(vecid,'_get_column_',collist);
        col=getitemn(collist,1);

        if col=1 then do;

          call send(vecid,'_get_text_',text);

          text=translate(text,' ','$');
          text=compress(text);
          text=input(text,comma9.);

          if text gt 121000 then call send(vecid,'_set_background_color_','pink');

        end;

      end;

rc=dellist(collist,'y');

EndMethod;


Retour Haut

Comment peut-on faire un collapse/expand sur les colonnes d'un rapport multidimensionnel?

Les opérations collapse et expand ne sont pas réalisables directement sur les colonnes d'un rapport multidimensionnel. Le seul moyen serait de surcharger les comportements de l'objet directement dans le code scl de l'objet.

On peut aussi contourner le problème en effectuant une rotation de l'objet (rotate), ainsi les colonnes initiales passent en lignes. Ensuite, il faut faire glisser les statistiques et les indicateurs sur les nouvelles colonnes. Cette manipulation permet l'utilisation du collapse et de l'expand sur les nouvelles lignes (donc anciennes colonnes).

Retour Haut

Comment changer les libellés des différentes statistiques affichées dans un Multidimensional Report ?

Deux manières de procéder sont possibles

1. via la commande « EIS » :
   Dans la fenêtre EIS, choisir l’icône Setup.
   Une fois sur la fenêtre Setup, choisir le menu « Statistic Labels »

2. via le menu suivant :
Solutions
> Development and Programming
> OLAP Server Administration
   > Statistic Labels

Retour Haut

Comment mettre à jour en batch l’attribut BASETABL au niveau d’un cube enregistré dans un repository ?

La méthode SCL _addAttribute_ permet de mettre à jour l'attribut BASETABL.

Par exemple, le code ci après permet de positionner la table SUPPORT.TEST2 comme BASETABL pour le cube SUPPORT.CUBE situé dans le repository SASUSER.

DCL sashelp.mb.resenv rid = _new_ sashelp.mb.resenv();
DCL sashelp.mb.metabase mb = getnitemn( envlist( 'L' ), 'METABASE' );
DCL char(200) mbmsg;

init:

mb._addAttribute_ (mbrc, mbmsg, 'SASUSER', 'SUPPORT.CUBE', 'BASETABL', ' ',
'SUPPORT.TEST2', 'N');
rid._term();

return;


Retour Haut

Customer Support Center
Correctifs
SAS notes
Documentation
Install Center
Forums de discussion
Demandes d’améliorations

Contactez-nous

Le support est accessible du lundi au vendredi de 9h00 à 17h30 (17h00 le vendredi).

• par e-mail : support@sas.com
• par téléphone : 01 60 62 12 12

Pour toute remarque sur le support : tcsfaq@fra.sas.com
The Power to Know
 Recherche   Données Personnelles   Mentions légales   Privacy Statement   Copyright 2008 SAS Institute Inc. All Rights Reserved