/// ////////////////////////////////////////////////////// private static string GetKeyChamp(CChampCustom champ) { //TESTDBKEYOK return(CInfoRelationComposantFiltreEntiteToChampEntite.GetKeyChamp(champ, true) + "." + CDefinitionProprieteDynamique.c_strCaractereStartCleType + c_strCleType + CDefinitionProprieteDynamique.c_strCaractereEndCleType + CInfoRelationEValeurChampCustomToDisplay.GetKeyChamp(champ)); }
//------------------------------------------------------------ public override CResultAErreur GetValue(object objet, string strPropriete) { CResultAErreur result = CResultAErreur.True; result.Data = null; string strIdChamp = null; bool bEntiteToChamp = false; if ( /*Pour compatibilité, avant modifs de décembre 2015, le nom du champ était en fait le même qu'une propriété champ custom. * En décembre 2015, ajout de la possiblité de retourner les valeurs display de champ custom dans les requêtes, * ce qui a changé le nom de la propriétés * */ CInfoRelationEntiteToValeurChampCustom.DecomposeNomPropriete(strPropriete, ref strIdChamp) || /*fin pour compatiblité*/ CInfoRelationComposantFiltreEntiteToChampEntite.DecomposeNomPropriete(strPropriete, ref strIdChamp, ref bEntiteToChamp)) { IElementAChamps eltAChamps = objet as IElementAChamps; if (eltAChamps == null) { return(result); } result.Data = eltAChamps.GetValeurChamp(strIdChamp); CChampCustom champ = new CChampCustom(CContexteDonneeSysteme.GetInstance()); if (result.Data != null && champ.ReadIfExists(CDbKey.CreateFromStringValue(strIdChamp))) { if (!champ.IsChoixParmis()) { result.Data = result.Data.ToString(); } else { foreach (CValeurChampCustom valeur in champ.ListeValeurs) { if (valeur.Value.Equals(result.Data)) { result.Data = valeur.Display; return(result); } } } } } else if (CInfoRelationEValeurChampCustomToDisplay.DecomposeNomPropriete(strPropriete, ref strIdChamp)) { //Rien de spécial, il s'agit de la navigation vers la valeur du champ qui a déjà été reprise par le composant filtre to champ entité //car la propriété complète d'un definitionDisplayValue est donnée par GetKeyChamp qui ajoute un composant Element->ValeurChamp + ValeurChamp->Display value result.Data = objet; } return(result); }
/// //////////////////////////////////////////////////////////////// public static void FindRelation(string strTable, Type type, ref CInfoRelationComposantFiltre relationTrouvee) { //TESTDBKEYTODO if (relationTrouvee != null) { return; } string strKeyChamp = ""; if (DecomposeNomPropriete(strTable, ref strKeyChamp)) { string strTableEntite = CContexteDonnee.GetNomTableForType(type); //Si strKeyChamp est un int, il s'agit d'un id de champ custom //ce cas peut se présenter lors de la relecture d'un filtre sous forme de //test par exemple dans une fonction ObjectList relationTrouvee = new CInfoRelationEValeurChampCustomToDisplay(CDbKey.CreateFromStringValue(strKeyChamp), strTableEntite); } //relationTrouvee = new CInfoRelationEValeurChampCustomToDisplay(relToChamp.DbKeyChamp, relToChamp.TableFille); }