Bonjour,
J’ai un dataGrid qui affiche plusieurs tableaux dynamiquement.
Les colonnes des dates changent d’un tableau à un autre de position et de nombre
Objectif est modifier cette fonction qui permet de trier les dates
Je passe comme paramètre le nom du tableau et le nom de la colonne
Y a t-il quelqu’un qui peut m’aider à corriger la 2eme fonction
Merci d’avance
Origine :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
var bank:Array=[{name:"name1",date:"25-01-2007"},{name:"name2",date:"12-02-2007"},{name:"name3",date:"30-12-2005"}];
 
function sortOn_date() {
	// Change le fromat de la dates de dd-mm-yyyy à yyyymmdd
	for (var i:int = 0; i< bank.length; i++) {
		bank[i].date=bank[i].date.substr(6,4)+bank[i].date.substr(3,2)+bank[i].date.substr(0,2);
		trace(bank[i].date);
 
		// affiche:
		//
		// 20070125
		// 20070212
		// 20051230
	}
	//Les dates sont en format numérique pour les trier
	bank.sortOn("date",Array.NUMERIC);
 
	// On rechange au format originale de yyyymmdd à dd-mm-yyyy
	for (var i:int=0; i<bank.length; i++) {
		bank[i].date=bank[i].date.substr(6,2)+"-"+bank[i].date.substr(4,2)+"-"+bank[i].date.substr(0,4);
		trace(bank[i].date);
	}
 
	// affichage des dates
	for (var i:int=0; i<bank.length; i++) {
		trace("name: \""+bank[i].name+"\", date:\""+bank[i].date+"\"");
	}
 
	// affiche:
	//
	// name: "name3", date:"30-12-2005"
	// name: "name1", date:"25-01-2007"
	//name: "name2", date:"12-02-2007"
}
// Appel de la fonction
sortOn_date();
Modifier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
var bank:Array=[{name:"name1",date:"25-01-2007"},{name:"name2",date:"12-02-2007"},{name:"name3",date:"30-12-2005"}];
 
function sortOn_date(tab:Array,varDate:String  ) {
	// Change le fromat de la dates de dd-mm-yyyy à yyyymmdd
	for (var i:int = 0; i< tab.length; i++) {
		tab[i].varDate=tab[i].varDate.substr(6,4)+tab[i].varDate.substr(3,2)+tab[i].varDate.substr(0,2);
		trace(tab[i].varDate);
 
		// affiche:
		//
		// 20070125
		// 20070212
		// 20051230
	}
	//Les dates sont en format numérique pour les trier 
	tab.sortOn("date",Array.NUMERIC);
 
	// On rechange au format originale de yyyymmdd à dd-mm-yyyy
	for (var n:int=0; n<tab.length; n++) {
		tab[n].varDate=tab[n].varDate.substr(6,2)+"-"+tab[n].varDate.substr(4,2)+"-"+tab[n].varDate.substr(0,4);
		trace(tab[n].varDate);
	}
 
	// affichage des dates
	for (var v:int=0; v<tab.length; v++) {
		trace("name: \""+tab[v].name+"\", date:\""+tab[v].varDate+"\"");
	}
 
	// affichage:
	//
	// name: "name3", date:"30-12-2005"
	// name: "name1", date:"25-01-2007"
	//name: "name2", date:"12-02-2007"
}
// Appel de la fonction
sortOn_date(bank,date);