void itemMenuFiltre_Click(object sender, EventArgs e) { CMenuItemFiltre menuFiltre = sender as CMenuItemFiltre; if (menuFiltre != null) { CFiltreDynamiqueInDb filtreInDb = menuFiltre.Filtre; CFiltreDynamique filtre = filtreInDb.Filtre; if (m_lastFiltreDynamique != null) { foreach (IVariableDynamique variable in m_lastFiltreDynamique.ListeVariables) { object val = m_lastFiltreDynamique.GetValeurChamp(variable.IdVariable); IVariableDynamique var2 = filtre.GetVariable(variable.IdVariable); if (var2 != null && var2.Nom == variable.Nom) { filtre.SetValeurChamp(var2, val); } } } m_lastFiltreDynamique = filtre; if (filtre.FormulaireEdition.Childs.Count() > 0) { if (!CFormFormulairePopup.EditeElement( filtre.FormulaireEdition, filtre, "Filter|20175")) { return; } } ApplyFiltre(filtre); } }
/// /////////////////////////////////////////////////////////////////////// /// <summary> /// Retourne le filtre qui indique les éléments autorisés comme étant éléments suivis /// </summary> public CFiltreData GetFiltreDataElementSuivi() { CFiltreDynamique filtreDynamique = TypeDossier.FiltreDynamiqueElementsSuivisPossibles; if (filtreDynamique == null) { return(null); } try { foreach (IVariableDynamique variable in filtreDynamique.ListeVariables) { if (variable.Nom == CTypeDossierSuivi.c_nomChampDossier) { filtreDynamique.SetValeurChamp(variable, this); break; } } CResultAErreur result = filtreDynamique.GetFiltreData(); if (result) { return((CFiltreData)result.Data); } } catch { } return(null); }
//------------------------------------------- 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 CFiltreData GetFiltre(CFiltreDynamique filtre) { if (filtre == null) { return(null); } if (m_elementAVariables != null) { IVariableDynamique variable = AssureVariableElementCible(filtre, m_elementAVariables.GetType()); filtre.SetValeurChamp(variable.IdVariable, m_elementAVariables); } CResultAErreur result = filtre.GetFiltreData(); if (result) { return((CFiltreData)result.Data); } return(null); }
void menuFiltre_Click(object sender, EventArgs e) { CObjetDonneeMenuItem item = sender as CObjetDonneeMenuItem; CFiltreDynamiqueInDb filtreInDb = item != null ? item.ObjetDragDrop as CFiltreDynamiqueInDb : null; if (filtreInDb != null) { CFiltreDynamique filtre = filtreInDb.Filtre; if (m_lastFiltreDynamique != null) { foreach (IVariableDynamique variable in m_lastFiltreDynamique.ListeVariables) { object val = m_lastFiltreDynamique.GetValeurChamp(variable.IdVariable); IVariableDynamique var2 = filtre.GetVariable(variable.IdVariable); if (var2 != null && var2.Nom == variable.Nom) { filtre.SetValeurChamp(var2, val); } } } m_lastFiltreDynamique = filtre; if (filtre.FormulaireEdition.Childs.Count() > 0) { if (!CFormFormulairePopup.EditeElement( filtre.FormulaireEdition, filtre, "Filter|20175")) { return; } } m_filtreDynamicSelectionnee = filtreInDb; m_filtreDynamicApplique = filtre; m_chkIntersFiltre.Checked = true; m_setIdsInterventionsVisiblesCalculéDefiltreEtListe = null; FillListeIntersAvecDelai(); } }
/// ////////////////////////////////////////////////////////////////// protected static CResultAErreur ExecuteActionListe(CActionSur2iLinkAfficherListe action, object objetCible) { CResultAErreur result = CResultAErreur.True; CFiltreDynamique filtre = action.Filtre; if (filtre == null || filtre.TypeElements == null) { result.EmpileErreur(I.T("Link parameter error : filter is null|30077")); return(result); } if (objetCible != null) { CObjetPourSousProprietes objetPourSousProp = null; objetPourSousProp = new CObjetPourSousProprietes(objetCible); IVariableDynamique variable = CActionSur2iLinkAfficherListe.AssureVariableElementCible(filtre, objetPourSousProp); /*if ( variable.TypeDonnee.TypeDotNetNatif != objetCible.GetType() ) * { * result.EmpileErreur(I.T("Expected type in the filter does not correspond to object type|30078")); * return result; * }*/ if (variable != null) { filtre.SetValeurChamp(variable.IdVariable, objetCible); } } result = filtre.GetFiltreData(); if (!result) { result.EmpileErreur(I.T("Filter error|30079")); return(result); } CFiltreData filtreData = (CFiltreData)result.Data; Type tp = CFormFinder.GetTypeFormToList(filtre.TypeElements); try { if (tp != null || tp.IsSubclassOf(typeof(CFormListeStandard))) { CFormListeStandard form = ( CFormListeStandard )Activator.CreateInstance(tp, new object[0]); CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(objetCible); ctxEval.AttacheObjet(typeof(CContexteDonnee), CSc2iWin32DataClient.ContexteCourant); if (action.FormuleContexte != null) { result = action.FormuleContexte.Eval(ctxEval); if (!result) { result.EmpileErreur(I.T("Form context evaluation error|30080")); return(result); } if (result.Data != null) { form.ContexteUtilisation = result.Data.ToString(); } } if (action.FormuleTitre != null) { result = action.FormuleTitre.Eval(ctxEval); if (!result) { result.EmpileErreur(I.T("Form title evaluation error|30081")); return(result); } if (result.Data != null) { form.TitreForce = result.Data.ToString(); } } form.FiltreDeBase = filtreData; form.AffectationsPourNouveauxElements = action.Affectations; form.ObjetReferencePourAffectationsInitiales = objetCible; form.BoutonAjouterVisible = action.ShowBoutonAjouter; form.BoutonModifierVisible = action.ShowBoutonDetail; form.BoutonSupprimerVisible = action.ShowBoutonSupprimer; if (action.IdFiltreDynamiqueAUtiliser >= 0) { CFiltreDynamiqueInDb filtretoUse = new CFiltreDynamiqueInDb(CContexteDonneeSysteme.GetInstance()); if (filtretoUse.ReadIfExists(action.IdFiltreDynamiqueAUtiliser)) { CFiltreDynamique filtreDyn = filtretoUse.Filtre; if (filtreDyn != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible); foreach (CFormuleNommee formule in action.ValeursVariablesFiltre) { if (formule.Formule != null) { CResultAErreur res = formule.Formule.Eval(ctx); if (res) { try { string strId = formule.Id; filtreDyn.SetValeurChamp(strId, res.Data); } catch { } } } } form.FiltrePrefere = filtreDyn; } } } if (action.ActionSurDetail != null) { CExecuteurActionSurPanelListeSpeedStandard executeur = new CExecuteurActionSurPanelListeSpeedStandard(action.ActionSurDetail, form); form.SetModifierElementDelegate(new CPanelListeSpeedStandard.ModifierElementDelegate(executeur.ExecuteAction)); } CTimosApp.Navigateur.AffichePage(form); } else { result.EmpileErreur(I.T("Not avaliable|30082")); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }