Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 11h24   #1
edward carnby
Membre éprouvé
 
Homme Ludovic Le Breton
Statisticien/développeur BI
Inscription : janvier 2012
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Le Breton
Âge : 38
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Statisticien/développeur BI
Secteur : Transports

Informations forums :
Inscription : janvier 2012
Messages : 177
Points : 464
Points : 464
Par défaut Proc Report et mise en forme conditionnelle - Simplification du code

Bonjour à tous !

Je me prend la tête sur un petit problème depuis ce matin ...

Dans une proc report, j'ai besoin de modifier le style d'une cellule en fonction de :
  • 1 condition : la valeur d'une autre cellule (toujours la même)
  • 2 conditions : la valeur d'une autre cellule (toujours la même) + la valeur de la cellule elle-même (donc référence variable).

Petite précision complémentaire, je travaille avec des ACROSS (sinon, ça serait moins drôle )

Dans le premier cas, j'arrive à faire une boucle pour mettre en forme mes cellules dans un bloc compute avec une référence de cellule 'k':

Code :
1
2
3
4
5
6
 
COMPUTE QTE;
	DO k=8 TO 113 BY 5;
		IF _C3_ IN (1,2) THEN CALL DEFINE(k,'style','style=[background=lightgrey]');
	END;
ENDCOMP;
Dans le second cas, je n'ai pas réussi à faire de boucle, je suis obligé de passer par des référence absolues ... soit :
Code :
1
2
3
4
5
6
7
8
 
COMPUTE QTE;
	IF _C3_ IN (3,4,5) THEN DO;
		IF _C8_ EQ . THEN CALL DEFINE('_C8_','style','style=[background=lightpink]');
		IF _C13_ EQ . THEN CALL DEFINE('_C13_','style','style=[background=lightpink]');
	 /*... n fois ces instructions ... */
	END;
ENDCOMP;
Bon, ça fonctionne, mais il doit bien y avoir un moyen de simplifiser le code (Array ?) ... je suis preneur de toute bonne idée
edward carnby est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h48.


 
 
 
 
Partenaires

Hébergement Web