//--------------------------------------------- public IElementACout[] GetSourcesDeCout(bool bCoutReel) { CListeObjetsDonnees lstBesoins = Besoins; lstBesoins.Filtre = new CFiltreData(CBesoin.c_champIdBesoinParent + " is null"); return(lstBesoins.ToArray <CBesoin>()); }
//--------------------------------------------------------- public CBesoin[] GetSousBesoinsDeSatisfaction() { CListeObjetsDonnees lstBesoins = Besoins; lstBesoins.Filtre = new CFiltreData(CBesoin.c_champIdBesoinParent + " is null"); return(lstBesoins.ToArray <CBesoin>()); }
//------------------------------------------- public override object[] GetObjets(CNodeConsultationHierarchique nodeParent, CContexteDonnee contexte) { try { if (m_filtreDynamique == null || m_filtreDynamique.TypeElements == null) { return(new object[0]); } CVariableDynamique variable = AssureVariableParent(); if (variable != null) { m_filtreDynamique.SetValeurChamp(variable, nodeParent); } CResultAErreur result = m_filtreDynamique.GetFiltreData(); if (!result) { return(new object[0]); } CListeObjetsDonnees lst = new CListeObjetsDonnees(contexte, m_filtreDynamique.TypeElements); lst.Filtre = (CFiltreData)result.Data; return((object[])lst.ToArray(typeof(object))); } catch { } return(new object[0]); }
//------------------------------------------------------------------------------------------------ private CCaracteristiqueEntite[] GetDocumentsAttendus() { if (m_objetEdite == null) { return(null); } CObjetDonneeAIdNumerique objet = m_objetEdite as CObjetDonneeAIdNumerique; if (objet != null) { string strIdsDocumentsAttendus = CTimosWebAppRegistre.IdsTypesCaracteristiquesDocumentsAttendus; CFiltreData filtre; if (strIdsDocumentsAttendus.Length == 0) { filtre = new CFiltreDataImpossible(); } else { filtre = new CFiltreData(CCaracteristiqueEntite.c_champTypeElement + "=@1 and " + CCaracteristiqueEntite.c_champIdElementLie + "=@2 and " + CTypeCaracteristiqueEntite.c_champId + " IN (" + strIdsDocumentsAttendus + ")", objet.GetType().ToString(), objet.Id); } CListeObjetsDonnees lst = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CCaracteristiqueEntite), filtre); int combien = lst.Count; return(lst.ToArray <CCaracteristiqueEntite>()); } return(null); }
//--------------------------------------------------------------------------- public CFormulaire[] GetFormulaires() { CListeObjetsDonnees listeFormulaires = new CListeObjetsDonnees(ContexteDonnee, typeof(CFormulaire)); listeFormulaires.Filtre = CFormulaire.GetFiltreFormulairesForRole(c_roleChampCustom); /*new CFiltreData( * CFormulaire.c_champCodeRole + "=@1", * c_roleChampCustom);*/ return((CFormulaire[])listeFormulaires.ToArray(typeof(CFormulaire))); }
public CEntiteSnmp[] GetSnmpEntitiesWithType(CTypeEntiteSnmp type) { CListeObjetsDonnees lst = EntitesSnmp; if (type != null) { lst.FiltrePrincipal = CFiltreData.GetAndFiltre(lst.FiltrePrincipal, new CFiltreData(CTypeEntiteSnmp.c_champId + "=@1", type.Id)); } return(lst.ToArray <CEntiteSnmp>()); }
public override object Invoke(object objetAppelle, params object[] parametres) { if (!(objetAppelle is CVersionDonnees)) { return(new CIntervention[0]); } CListeObjetsDonnees liste = new CListeObjetsDonnees(((CObjetDonnee)objetAppelle).ContexteDonnee, typeof(CIntervention)); liste.Filtre = new CFiltreData(CVersionDonnees.c_champId + "=@1", ((CVersionDonnees)objetAppelle).Id); return(liste.ToArray(typeof(CIntervention))); }
public override object Invoke(object objetAppelle, params object[] parametres) { if (parametres.Length != 1 || parametres[0] == null || !(objetAppelle is CObjetDonneeAIdNumerique)) { return(null); } CObjetDonneeAIdNumerique objet = (CObjetDonneeAIdNumerique)objetAppelle; CListeObjetsDonnees lst = CCaracteristiqueEntite.GetCaracteristiques(objet); if (parametres.Length > 0 && parametres[0] is CTypeCaracteristiqueEntite) { lst.Filtre = new CFiltreData(CTypeCaracteristiqueEntite.c_champId + "=@1", ((CTypeCaracteristiqueEntite)parametres[0]).Id); } return(lst.ToArray <CCaracteristiqueEntite>()); }
//------------------------------------------------------------ public CResultAErreur GetValue(object objet, string strPropriete) { CResultAErreur result = CResultAErreur.True; CObjetDonnee objetDonnee = objet as CObjetDonnee; if (objetDonnee == null) { return(result); } int nIdListe = -1; try { nIdListe = Int32.Parse(strPropriete); } catch { result.EmpileErreur(I.T("Bad entity list property format (@1)|20028", strPropriete)); return(result); } CListeEntites liste = new CListeEntites(objetDonnee.ContexteDonnee); try { if (liste.ReadIfExists(nIdListe)) { CListeObjetsDonnees resultListe = liste.GetElementsLiesFor(objetDonnee); if (resultListe != null) { result.Data = resultListe.ToArray(liste.TypeElements); } } else { result.EmpileErreur(I.T("Entity list @1 doesn't exists|20029", strPropriete)); return(result); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
/// /////////////////////////////////////////// public object GetValeur(IElementAVariablesDynamiquesAvecContexteDonnee elementInterroge) { if (m_filtreDynamique == null) { return(null); } m_filtreDynamique.ElementAVariablesExterne = elementInterroge; CResultAErreur result = m_filtreDynamique.GetFiltreData(); if (!result) { return(null); } CListeObjetsDonnees liste = new CListeObjetsDonnees(elementInterroge.ContexteDonnee, m_filtreDynamique.TypeElements); liste.Filtre = (CFiltreData)result.Data; return(liste.ToArray(m_filtreDynamique.TypeElements)); }
public CSite[] GetConcernedSites(DateTime dt) { CListeObjetsDonnees lst = new CListeObjetsDonnees(ContexteDonnee, typeof(CSite)); lst.Filtre = new CFiltreDataAvance(CSite.c_nomTable, CContrat_Site.c_nomTable + "." + CTypeTicketContrat_Site.c_nomTable + "." + CTypeTicketContrat.c_champId + "=@1 and " + CContrat_Site.c_nomTable + "." + CTypeTicketContrat_Site.c_nomTable + "." + CTypeTicketContrat_Site_Periode.c_nomTable + "." + CTypeTicketContrat_Site_Periode.c_champDateDebut + "<=@2 and " + CContrat_Site.c_nomTable + "." + CTypeTicketContrat_Site.c_nomTable + "." + CTypeTicketContrat_Site_Periode.c_nomTable + "." + CTypeTicketContrat_Site_Periode.c_champDateFin + ">=@2", Id, dt); return((CSite[])lst.ToArray(typeof(CSite))); }
//------------------------------------------------------------- public static bool ApplyFormula(CListeObjetsDonnees lst) { return(ApplyFormula(lst.ToArray <CObjetDonnee>())); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; List <Type> lstTypesAVerifier = new List <Type>(); //Trouve tous les types héritant de CMappableTimos foreach (Assembly ass in sc2i.common.CGestionnaireAssemblies.GetAssemblies()) { foreach (Type tp in ass.GetTypes()) { if (typeof(IObjetSPVAvecObjetTimos).IsAssignableFrom(tp)) { lstTypesAVerifier.Add(tp); } } } List <string> lstTablesDansOrdre = new List <string>(); using (CContexteDonnee ctxTmp = new CContexteDonnee(contexte.IdSession, true, false)) { foreach (Type tp in lstTypesAVerifier) { string strTable = CContexteDonnee.GetNomTableForType(tp); if (strTable != null) { ctxTmp.GetTableSafe(strTable); } } foreach (DataTable table in ctxTmp.GetTablesOrderInsert()) { lstTablesDansOrdre.Add(table.TableName); } } foreach (string strNomTable in lstTablesDansOrdre) { Type tp = CContexteDonnee.GetTypeForTable(strNomTable); Type tpParent = tp; Type[] generics = new Type[0]; while (tpParent != null && generics.Length == 0) { if (tpParent.IsGenericType && tpParent.GetGenericTypeDefinition() == typeof(CMappableAvecTimos <,>)) { generics = tpParent.GetGenericArguments(); } tpParent = tpParent.BaseType; } if (generics.Length == 0) { continue; } IObjetSPVAvecObjetTimos obj = Activator.CreateInstance(tp, new object[] { contexte.ContexteDonnee }) as IObjetSPVAvecObjetTimos; Type typeTimos = obj.GetTypeObjetsTimos(); //Lit tous les objets TIMOS CListeObjetsDonnees lstObjetsTimos = new CListeObjetsDonnees(contexte.ContexteDonnee, typeTimos); lstObjetsTimos.AssureLectureFaite(); CListeObjetsDonnees lstObjetsSpv = new CListeObjetsDonnees(contexte.ContexteDonnee, obj.GetType()); lstObjetsSpv.AssureLectureFaite(); string strIdObjetTimosInObjetSpv = obj.GetChampIdObjetTimos(); Type tpMappable = typeof(CMappeurTimos <,>).MakeGenericType(generics); IMappeurTimosNonGenerique mappeur = Activator.CreateInstance(tpMappable) as IMappeurTimosNonGenerique; foreach (CObjetDonneeAIdNumerique objTimos in (CObjetDonneeAIdNumerique[])lstObjetsTimos.ToArray(typeof(CObjetDonneeAIdNumerique))) { CObjetDonneeAIdNumerique objSpv = Activator.CreateInstance(tp, new object[] { contexte.ContexteDonnee }) as CObjetDonneeAIdNumerique; if (!objSpv.ReadIfExists(new CFiltreData(strIdObjetTimosInObjetSpv + "=@1", objTimos.Id), false)) { mappeur.GetObjetSpvFromObjetTimosAvecCreationSansGenerique(objTimos); } } } return(result); }
private void FillListeChamps() { if (m_parametre == null) { m_parametre = new CParametreRemplissageActiviteParIntervention(); } m_panelFormules.SuspendDrawing(); foreach (Control ctrl in m_panelFormules.Controls) { if (ctrl is CEditeurFormuleNommee) { ctrl.Visible = false; m_reserveEditeurs.Add(ctrl); } } ArrayList lst = new ArrayList(); // Recupère la liste des champs customs liés à des Activités CListeObjetsDonnees lstChamps = CChampCustom.GetListeChampsForRole(m_typeActivite.ContexteDonnee, CActiviteActeur.c_roleChampCustom); //CChampCustom[] champs = m_typeActivite.TousLesChampsAssocies; CChampCustom[] champs = (CChampCustom[])lstChamps.ToArray(typeof(CChampCustom)); foreach (CChampCustom champ in champs) { CFormuleForParametre formule = new CFormuleForParametre(champ); formule.Formule = m_parametre.GetFormuleForChamp(champ); lst.Add(formule); } lst.Sort(); m_listeExpressions = lst; int nY = 0; foreach (CFormuleForParametre formule in lst) { CEditeurFormuleNommee editeur = null; if (m_reserveEditeurs.Count > 0) { editeur = (CEditeurFormuleNommee)m_reserveEditeurs[0]; m_reserveEditeurs.Remove(editeur); } else { editeur = new CEditeurFormuleNommee(); editeur.Parent = m_panelFormules; } editeur.Visible = true; editeur.Width = m_panelFormules.ClientRectangle.Width; editeur.Location = new Point(0, nY); formule.Editeur = editeur; editeur.TextFormule.Enter += new EventHandler(OnEnterZoneFormule); editeur.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); editeur.Libelle = formule.ChampCustom.Nom; editeur.TabIndex = nY; editeur.Dock = DockStyle.Top; editeur.BringToFront(); nY += editeur.Size.Height + 1; editeur.Formule = formule.Formule; } m_panelFormules.ResumeDrawing(); }
/// /////////////////////////////////////////////////////////// public object GetValue(object objetInterroge, CDefinitionProprieteDynamique propriete) { //Récupère l'objet à interroger string strProp = propriete.NomPropriete; object valeur = m_cache.GetValeurCache(objetInterroge, strProp); if (valeur != null) { return(valeur); } CContexteDonnee contexteForObjets = ContexteDonneeCache; if (objetInterroge is IObjetAContexteDonnee) { contexteForObjets = ((IObjetAContexteDonnee)objetInterroge).ContexteDonnee; } if (contexteForObjets == null) { contexteForObjets = ContexteDonneeCache; } object objetFinal = objetInterroge; int nPos = strProp.LastIndexOf('.'); if (nPos > 0 && !(propriete is CDefinitionProprieteDynamiqueDonneeCumulee) && !(propriete is CDefinitionProprieteDynamiqueChampCustom) && !(propriete is CDefinitionProprieteDynamiqueChampCustomFils) && !(propriete is CDefinitionProprieteDynamiqueFormule)) { string strPropDebut; strPropDebut = strProp.Substring(0, nPos); strProp = strProp.Substring(nPos + 1); objetFinal = m_cache.GetValeurCache(objetInterroge, strPropDebut); if (objetFinal == null) { objetFinal = GetValue(objetInterroge, strPropDebut); /*object objetAInterroger = null; * MemberInfo membre = null; * CInterpreteurTexteProptVariete.GetObjetFinalEtMemberInfo ( objetInterroge, strPropDebut, ref objetAInterroger, ref membre ); * if ( membre != null ) * { * objetFinal = CInterpreteurTextePropriete.GetValue ( objetAInterroger, membre ); * } * else * { * //On n'a pas trouvé le membre, il s'agit donc d'autre chose, il faut donc décomposer * //Le champ * }*/ //objetFinal = CInterpreteurTextePropriete.GetValue(objetInterroge, strPropDebut); m_cache.StockeValeurEnCache(objetInterroge, strPropDebut, objetFinal); } if (objetFinal == null) { return(null); } valeur = m_cache.GetValeurCache(objetFinal, strProp); if (valeur != null) { return(valeur); } } if (propriete is CDefinitionProprieteDynamiqueChampCustom) { if (!(objetFinal is IElementAChamps)) { valeur = null; } else { //TESTDBKEYTODO qui ne peut pas marche valeur = ((IElementAChamps)objetFinal).GetValeurChamp(((CDefinitionProprieteDynamiqueChampCustom)propriete).DbKeyChamp.InternalIdNumeriqueANeJamaisUtiliserSaufDansCDbKeyAddOn.Value, System.Data.DataRowVersion.Default); /*if (m_bValeurAfficheeDeChampsCustom) * { * CChampCustom champ = new CChampCustom(ContexteDonneeCache); * if (champ.ReadIfExists(((CDefinitionProprieteDynamiqueChampCustom)propriete).IdChamp)) * { * object valTmp = champ.DisplayFromValue(valeur); * if (valTmp != null) * valeur = valTmp; * } * }*/ } } else if (propriete is CDefinitionProprieteDynamiqueChampCustomFils && objetInterroge is CObjetDonneeAIdNumerique) { CChampCustom champ = new CChampCustom(ContexteDonneeCache); if (champ.ReadIfExists(((CDefinitionProprieteDynamiqueChampCustomFils)propriete).KeyChamp)) { Type tp = champ.Role.TypeAssocie; try { IObjetDonneeAChamps elt = (IObjetDonneeAChamps)Activator.CreateInstance(tp, new object[] { contexteForObjets }); CRelationElementAChamp_ChampCustom rel = elt.GetNewRelationToChamp(); CListeObjetsDonnees liste = new CListeObjetsDonnees(contexteForObjets, tp); liste.Filtre = new CFiltreDataAvance( elt.GetNomTable(), rel.GetNomTable() + "." + CRelationElementAChamp_ChampCustom.c_champValeurString + "=@1 and " + rel.GetNomTable() + "." + CRelationElementAChamp_ChampCustom.c_champValeurInt + "=@2 and " + rel.GetNomTable() + "." + CChampCustom.c_champId + "=@3", objetInterroge.GetType().ToString(), ((CObjetDonneeAIdNumerique)objetInterroge).Id, champ.Id); valeur = liste.ToArray(tp); } catch { valeur = null; } } } else if (propriete is CDefinitionProprieteDynamiqueListeEntites) { CListeEntites liste = new CListeEntites(contexteForObjets); try { if (liste.ReadIfExists(((CDefinitionProprieteDynamiqueListeEntites)propriete).DbKeyListeEntite)) { CListeObjetsDonnees resultListe = liste.GetElementsLiesFor(objetInterroge); if (resultListe != null) { valeur = resultListe.ToArray(liste.TypeElements); } } } catch { valeur = null; } } else if (propriete is CDefinitionProprieteDynamiqueRelationTypeId) { if (!(objetFinal is CObjetDonneeAIdNumerique)) { valeur = null; } else { CDefinitionProprieteDynamiqueRelationTypeId defRel = (CDefinitionProprieteDynamiqueRelationTypeId)propriete; return(((CObjetDonneeAIdNumerique)objetFinal).GetDependancesRelationTypeId( defRel.Relation.TableFille, defRel.Relation.ChampType, defRel.Relation.ChampId, false)); } } else if (propriete is CDefinitionProprieteDynamiqueDonneeCumulee) { if (!(objetFinal is CObjetDonneeAIdNumerique)) { valeur = null; } else { CDefinitionProprieteDynamiqueDonneeCumulee defType = (CDefinitionProprieteDynamiqueDonneeCumulee)propriete; CObjetDonneeAIdNumerique objet = (CObjetDonneeAIdNumerique)objetFinal; CTypeDonneeCumulee type = new CTypeDonneeCumulee(contexteForObjets); if (type.ReadIfExists(defType.DbKeyTypeDonnee)) { valeur = type.GetDonneesCumuleesForObjet(objet); } else { valeur = null; } } } else if (propriete is CDefinitionProprieteDynamiqueChampCalcule) { CChampCalcule champ = new CChampCalcule(contexteForObjets); if (champ.ReadIfExists(((CDefinitionProprieteDynamiqueChampCalcule)propriete).DbKeyChamp)) { valeur = champ.Calcule(objetFinal, new CFournisseurPropDynStd(true)); } else { valeur = null; } } else if (propriete is CDefinitionProprieteDynamiqueFormule) { CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(objetInterroge); contexte.AttacheObjet(typeof(CContexteDonnee), contexteForObjets); CResultAErreur result = ((CDefinitionProprieteDynamiqueFormule)propriete).Formule.Eval(contexte); if (result) { return(result.Data); } } else if (propriete is CDefinitionProprieteDynamiqueVariableDynamique && objetFinal is IElementAVariables) { valeur = ((IElementAVariables)objetFinal).GetValeurChamp(((CDefinitionProprieteDynamiqueVariableDynamique)propriete).IdChamp); } else { valeur = CInterpreteurTextePropriete.GetValue(objetFinal, strProp); } m_cache.StockeValeurEnCache(objetInterroge, propriete.Nom, valeur); if (objetFinal != objetInterroge) { m_cache.StockeValeurEnCache(objetFinal, strProp, valeur); } return(valeur); }