public void generateReportAsync(string resourceName, ArrayList id, models.query.aQueryReport model, System.ComponentModel.RunWorkerCompletedEventHandler callBack, bool prioritaire) { Hashtable param = new Hashtable(); param.Add("resourceName", resourceName); param.Add("id", id); param.Add("model", model); _work.addTask(new System.ComponentModel.DoWorkEventHandler(this.generateReportAsyncCall), callBack, param, prioritaire); }
/// <summary> /// Prépare/Génère, coté serveur, des rapports. Que l'on peut ensuite récupérer/lire avec la fonction getReport /// </summary> /// <param name="resourceName">Nom OpenERP de l'objet</param> /// <param name="id">Identifiant des objets à utiliser pour la génération du rapport</param> /// <param name="model">Contient des informations sur le rapport en lui même</param> /// <returns>Liste d'identifiant de rapport (requis pour la fonction getReport)</returns> /// <remarks></remarks> public int generateReport(string resourceName, ArrayList id, models.query.aQueryReport model) { if (checkIfBusy()) { return(0); } return(generateReportData(resourceName, id, model)); }
private int generateReportData(string resourceName, ArrayList id, models.query.aQueryReport model) { Interfaces.Ireport conn; object retour; int numGen; if (!isConnected) { throw new Systeme.exceptionOpenERP(Systeme.exceptionOpenERP.ERRORS.NOT_CONNECTED); } if ((resourceName == "") || (id == null) || (id.Count == 0) || (model == null)) { throw new ArgumentNullException(); } try { conn = XmlRpcProxyGen.Create <Interfaces.Ireport>(); conn.Url = url(SERVICE_XMLRPC.report); retour = conn.report(_config.database, _config.userId, _config.password, resourceName, id.ToArray(), model.toXmlRpc(true)); if (int.TryParse((string)retour, out numGen)) { return(numGen); } } catch (Exception ex) { if ((_config.reportXmlRpcError) && (ex.GetType() == typeof(XmlRpcFaultException))) { throw new Systeme.exceptionOpenERP(Systeme.exceptionOpenERP.ERRORS.LIB_XMLRPC, ex.Message); } } finally { conn = null; } return(0); }
/// <summary> /// Prépare/Génère, coté serveur, des rapports. Que l'on peut ensuite récupérer/lire avec la fonction getReport. De facon asynchrone. /// </summary> /// <param name="resourceName">Nom OpenERP de l'objet</param> /// <param name="id">Identifiant des objets à utiliser pour la génération du rapport</param> /// <param name="model">Contient des informations sur le rapport en lui même</param> /// <param name="callBack">Fonction appelée quand c'est terminé</param> /// <param name="prioritaire">Indique que cette tâche passe en priorité par rapport aux autres en attente si il y en a</param> /// <remarks></remarks> public void generateReportAsync(string resourceName, ArrayList id, models.query.aQueryReport model, System.ComponentModel.RunWorkerCompletedEventHandler callBack) { generateReportAsync(resourceName, id, model, callBack, false); }