Bonsoir,
J'ai un tableau qui contient des données de ce type :
Les valeurs indiquées dans le tableau correspondent respectivement à une date, le nombre de lettres valides, le nombre de lettres invalides, le nombre de lettres en attente, le nombre de lettres retournées, le nombre de colis valides, le nombre de colis invalides, le nombre de colis en attente et le nombre de colis retournés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 my $ref_tab = [ ["25-11-2007",10,20,30,40,50,60,70,80], ["26-11-2007",15,25,35,45,55,65,75,85] ];
Ces données sont insérées dans divers tableaux de la façon suivante :
Les calculs suivant sont effectués :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 my (@dates, @lettre_valide, @lettre_invalide, @lettre_attente, @lettre_retourne, @colis_valide, @colis_invalide, @colis_attente, @colis_retourne); foreach my $line (@ref_tab) { unshift(@dates, $$line[0]); unshift(@lettre_valide, $$line[1]); unshift(@lettre_invalide, $$line[2]); unshift(@lettre_attente, $$line[3]); unshift(@lettre_retourne, $$line[4]); unshift(@colis_valide, $$line[5]); unshift(@colis_invalide, $$line[6]); unshift(@colis_attente, $$line[7]); unshift(@colis_retourne, $$line[8]); }
J'aurais besoin d'ajouter de nouveaux moyens d'envois comme le mail par exemple. Pour éviter d'avoir des dizaines de tableaux ou variables à déclarer, il faut donc que je change de modele.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 my ($total_lettre_valide, $total_lettre_invalide, $total_lettre_attente, $total_lettre_retourne, $total_colis_valide, $total_colis_invalide, $total_colis_attente, $total_colis_retourne) = (0,0,0,0,0,0,0,0); map { $total_lettre_valide += $_ } @lettre_valide; map { $total_lettre_invalide += $_ } @lettre_invalide; map { $total_lettre_attente += $_ } @lettre_attente; map { $total_lettre_retourne += $_ } @lettre_retourne; map { $total_colis_valide += $_ } @colis_valide; map { $total_colis_invalide += $_ } @colis_invalide; map { $total_colis_attente += $_ } @colis_attente; map { $total_colis_retourne += $_ } @colis_retourne;
Le nouveau tableau est de ce type.
Le tableau précédent a été décomposé et contient maitenant respectivement : une date, la source d'envois (1 pour lettre, 2 pour colis), le nombre valide suivant la source, le nombre d'invalide suivant la source, le nombre en attente suivant la source et le nombre retourné suivant la source.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 my $ref_tab = [ ["25-11-2007",1,10,20,30,40], ["25-11-2007",2,50,60,70,80], ["26-11-2007",1,15,25,35,45], ["26-11-2007",2,55,65,75,85] ];
Le problème que j'ai se situe au niveau du calcul des totaux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 my (@dates, @source, @valide, @invalide, @attente, @retourne); #J'ai réussi à remplir, les différents tableaux qui contiennent maitenant : @dates = ("25-11-2007","26-11-2007"); @source = ([1,2],[1,2]); @valide = ([10,50],[15,55]); @invalide = ([20,60],[25,65]); @attente = ([30,70],[35,75]); @retourne = ([40,80],[45,85]); }
Je ne sais pas comment faire pour retrouver les mêmes valeurs que dans le 1er cas ainsi que la manière de stocker ces données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part my ($total_valide, $total_invalide, $total_attente, $total_retourne) = (0,0,0,0);
Depuis ce matin, j'essaye mais sans succès.
Merci d'avance
Partager