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
| Hashtable htUd = null;
Hashtable htCpm = null;
Hashtable htItem = null;
Hashtable htSpm = null;
Hashtable htSol = null;
Hashtable htEIPC = null;
Hashtable htSbA = null;
Hashtable htSbB = null;
Parallel.Invoke(
() => { htUd = GetListe(txtFicXlsUd.Text, txtXlsFllUd.Text, txtXlsRefUD.Text, txtXlsLibUD.Text, txtXlsLn1UD.Text, "Lecture de la liste 1"); },
() => { htCpm = GetListe(txtFicXlsCPM.Text, txtXlsFllCPM.Text, txtXlsRefCPM.Text, txtXlsLibCPM.Text, txtXlsLn1CPM.Text, "Lecture de la liste 2"); },
() => { htItem = GetListe(txtFicXlsITEM.Text, txtXlsFllITEM.Text, txtXlsRefITEM.Text, txtXlsLibITEM.Text, txtXlsLn1ITEM.Text, "Lecture de la liste 3"); },
() => { htSpm = GetListe(txtFicXlsSPM.Text, txtXlsFllSPM.Text, txtXlsRefSPM.Text, txtXlsLibSPM.Text, txtXlsLn1SPM.Text, "Lecture de la liste des 4"); },
() => { htSol = GetListe(txtFicXlsSOL.Text, txtXlsFllSOL.Text, txtXlsRefSOL.Text, txtXlsLibSOL.Text, txtXlsLn1SOL.Text, "Lecture de la liste des 5"); },
() => { htEIPC = GetListe(txtFicXlsEIPCA.Text, txtXlsFllEIPCA.Text, txtXlsRefEIPCA.Text, txtXlsLibEIPCA.Text, txtXlsLn1EIPCA.Text, "Lecture de la liste 6"); },
() => { htSbA = GetListe(txtFicXlsSBA.Text, txtXlsFllSBA.Text, txtXlsRefSBA.Text, txtXlsLibSBA.Text, txtXlsLn1SBA.Text, "Lecture de la liste des 7"); },
() => { htSbB = GetListe(txtFicXlsSBB.Text, txtXlsFllSBB.Text, txtXlsRefSBB.Text, txtXlsLibSBB.Text, txtXlsLn1SBB.Text, "Lecture de la liste des 8"); }
); // */
private Hashtable GetListe(string ficXls, string xlsFeuille, string xlsColId, string xlsColLib, string xlsLigne1, string texte, string regexId="") {
Hashtable ret = new Hashtable();
int tmp = 0;
if (!string.IsNullOrEmpty(ficXls.Trim()) && (File.Exists(ficXls)) && (int.TryParse(xlsLigne1, out tmp))) {
UtilsExcel ue = new UtilsExcel();
tssLabel.Text = texte;
ProgressBar pb = new ProgressBar();
pb.Name = Guid.NewGuid().ToString();
if (txtInfos.InvokeRequired) { // Gérer les accès concurentiels.
txtInfos.Invoke(new AddControl(CtlAddControl), txtInfos, pb);
} else
pb.Parent = txtInfos;
Application.DoEvents();
pb.Dock = DockStyle.Top;
pb.BringToFront(); // */
ret = ue.GetListe(ficXls, xlsFeuille, xlsColId, xlsColLib, tmp, ref pb, regexId); //tssPbMain
pb.Dispose();
if (string.IsNullOrEmpty(ue.msgErr)) {
txtInfos.Text += "OK. " + tssLabel.Text + ". " + ret.Count + " éléments intégrés." + Environment.NewLine + ue.msgInfo;
} else
txtInfos.Text += "KO. " + tssLabel.Text + ". " + ue.msgErr + Environment.NewLine;
} // */
return ret;
}
private delegate void AddControl(Control ctlParent, Control ctlEnfant); // Modèle de fonction (prototype) pour l'instanciation.
private static void CtlAddControl(Control ctlParent, Control ctlEnfant) {
Application.DoEvents();
ctlEnfant.Parent = ctlParent;
} |
Partager