jeudi 4 octobre 2012

Trier les libellés lignes par ordre alphabétique dans Slidie

Objectif : Trier les libellés lignes de mon tableau dans Slidie

Méthodologie :
Il n'existe pas d'options automatique de tri des libellés lignes (ou colonnes) dans Slidie. L'astuce consiste à transférer les textes lignes dans le corps du tableau et ensuite d'utiliser le tri standard de Slidie

Étapes :
1 - Script de transfert des libellés lignes dans le corps du tableau :

t = ARG1
#Création d'une colonne vide pour recevoir l'information
t = t.Columns[0Range(1, t.Rows.Size)]

for  i in Range(1, t.Columns.Size):
 parts = GetRowText(t, i)
 t.Rows[i].Columns[1].Values = Enumerate(parts)

RESULT = t


 2 - Trier la colonne crée en mode "littéral"



3 - Supprimer la colonne crée.

mardi 31 juillet 2012

Script d'extraction avec conservation de la dimension.

Objectif : Extraire une liste de lignes / colonnes en conservant de la dimension d'extraction. Les éléments absents générant une ligne / colonne vide.

Script :

Exemple d'extraction des colonnes.

t = ARG1

def
 GetIndex(x):
 if x in t.Columns.Texts:
  return '"' + x + '"'
 else:
  return 0


marques = (
"Ensemble","Marque 1","Marque 2" [...] "Marque N" )
t = t.Columns[[GetIndex(x) for x in marques]]

for
 i in Range(1len(marques)):
 SetColumnText(t, i, marques[i - 1].Trim('"'))

RESULT = t

mardi 14 février 2012

Apparier à partir d'une table de correspondance

Objectif : Concaténer des informations provenant de deux tableaux distincts (magasins / régions) à l'aide d'un tableau de correspondances.

Tableaux en entrée :

1) Un tableau contenant les informations régions.



2) Un tableau contenant les informations magasins.



Attention, les tableaux magasins et régions doivent avoir le même nombre de lignes.

3) Un tableau de correspondance.



Transformation :



Elle consiste à produire un tableau par magasin associé à sa région de référence.

Le tableau final aura pour structure :
- La première colonne correspondant au magasin
- La seconde colonne correspondant à sa région de référence

Script :

01:#Arguments
02:# 1 - Tableau des magasins
03:t1 = ARG1
04:# 2 - Tableau des régions
05:t2 = ARG2
06:# 3 - Tableau des correspondances
07:lk = ARG3
08:#Initialisation de la liste
09:lst = []

10:for
i in Range(1, (t1.Columns.Size)):
11:#Reprise du magasin
12: nom_etab = GetColumnText(t1 ,i)
13:#Reprise de la région
14: nom_reg = GetColumnText(t2 ,i)
15:#Recherche de la région concernée dans la table de correspondances
16: codes = ['"' + x + '" ' for x in lk.Rows['"' + nom_etab + '"'].Texts]
17:#Concaténation du magasin et de sa région associée
18: c = MergeColumns(t1.Columns[i],t2.Columns[codes])
19:#Reprise des annotations
20: c.Annotations["NOMMAG"] = nom_etab
21: c.Annotations["NOMREG"] = FirstOf (lk.Rows['"' + nom_etab + '"'].Texts)
22:#Stockage des tableaux
23: lst.Add(c)
25:
26:RESULT = lst

Résultats :

Cette transformation produit autant de tableaux que de magasins présents.
Dans notre cas, elle produira donc 5 tableaux.