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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| public void calcule_temps(TreeView tree)
{
// LOG : J'écris dans un fichier texte ici le temps de départ (0)
//* for (int i=0; i< tree.Nodes.Count; i++)
//* {
DataTable mesTemps = new DataTable
String maReq = "SELECT dateDebut, dateFin, ... champ5 FROM temps ";
mesTemps = cnx.execute_req_dataTable(maReq);
enfants_calcul(tree.Nodes[i], mesTemps)
// LOG : J'écris dans un fichier texte ici le temps d'arrivée (10 s. + tard)
//* }
// NB : On a vu que le code avec en préfixe //* ne sert à rien}
public void enfants_calcul(TreeNode parent, DataTable prmTemps)
{
TimeSpan heures = new TimeSpan(0,0,0);
DataRow[] DR_Heures;
for (int j=0; j < parent.Nodes.Count; j++)
{
DR_heures = calcul_Temps_DataRow(parent.Nodes[j], prmTemps)
heures = Calcul_heures(DR_Heures);
}
}
public DataRow[] Calcul_Temps_DataRow(TreeNode parent, DataTable DtTemps)
{
for (int k=0; k< parent.Nodes.Count; k++)
{
// monNoeud : Identifiants initialisés avant et TRES rapide pour
// les affecter, le problème n'est pas là.
string monNoeud = parent.Nodes[k].Tag.ToString();
DataRow[] DrTemps = null;
DataRow[] lignes_tosendback = null;
try
{
string maSelection = " idNoeud = " + monNoeud;
DrTemps = DtTemps.Select(mySelect);
lignes_tosendback = new DataRow[DrTemps.Length];
}
catch{}
int i = 0;
foreach (DataRow ligne in DrTemps)
{
if ( ici comparaison de plage de dates pour une période donnée)
{
lignes_tosendback.SetValue(ligne, i++)
}
if (lignes_tosendback[0] == null)
return new DataRow[0];
return lignes_tosendback;
}
}
}
public TimeSpan Calcul_Heures(DataRow[] parent)
{
TimeSpan dif = new TimeSpan();
for (int i=0; i < parent.Length; i++)
{
// Nouvelle TRACE DEBUT ici suite aux dernières demandes (BlueDeep & Nathanael)
DateTime d1 = (DateTime)parent[i]["datedebut"];
DateTime d2 = (DateTime)parent[i]["datefin"];
dif += d2.Subtract(d1);
// Nouvelle TRACE FIN ici suite aux dernières demandes (BlueDeep & Nathanael)
}
if (dif.TotalSeconds <= 0)
return new TimeSpan(0,0,0);
else
return dif;
} |
Partager