//----------------------------------------------------------------------------------------------- private void m_lnkActionSurMenuItem_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (m_actionMenuItemListeDynamique != null) { if (TypeForItem != null) { CObjetPourSousProprietes objForItem = TypeForItem; if (m_objetPourSousProprietes != null) { CDefinitionMultiSourceForExpression multi = m_objetPourSousProprietes.ElementAVariableInstance as CDefinitionMultiSourceForExpression; if (multi != null) { CDefinitionMultiSourceForExpression copie = new CDefinitionMultiSourceForExpression(TypeForItem); foreach (string strSource in multi.GetNomSources()) { copie.AddSource(strSource, multi.GetSource(strSource)); } objForItem = new CObjetPourSousProprietes(copie); } } CActionSur2iLink actionSpec = m_actionMenuItemListeDynamique.Action; actionSpec = CFormEditActionSurLink.EditeAction(actionSpec, objForItem); if (actionSpec != null) { m_actionMenuItemListeDynamique.Action = actionSpec; } } } }
//-------------------------------------------------------------------------------------------------------------------------------------- private static object GetObjetPourItem(object objetCiblePrincipal, object objetCibleItem) { CDefinitionMultiSourceForExpression multi = objetCiblePrincipal as CDefinitionMultiSourceForExpression; if (multi == null) { return(objetCibleItem); } CDefinitionMultiSourceForExpression copie = new CDefinitionMultiSourceForExpression(objetCibleItem); foreach (string strSource in multi.GetNomSources()) { copie.AddSource(strSource, multi.GetSource(strSource)); } return(copie); }
//-------------------------------------- public CResultAErreur AffecteProprietes( object elementToModif, object sourceElement, IFournisseurProprietesDynamiques fournisseurProprietes) { CResultAErreur result = CResultAErreur.True; CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(sourceElement); CResultAErreur resTmp; foreach (KeyValuePair <CDefinitionProprieteDynamique, C2iExpression> aff in m_dicAffectations) { if (aff.Value != null) { resTmp = aff.Value.Eval(ctx); if (!resTmp) { result += resTmp; } else { resTmp = CInterpreteurProprieteDynamique.SetValue(elementToModif, aff.Key.NomPropriete, resTmp.Data); if (!resTmp) { result += resTmp; } } } } if (m_formuleGlobale != null) { CDefinitionMultiSourceForExpression def = new CDefinitionMultiSourceForExpression(sourceElement, new CSourceSupplementaire("NewElement", elementToModif)); ctx = new CContexteEvaluationExpression(def); if (elementToModif is IAllocateurSupprimeurElements) { ctx.AttacheObjet(typeof(IAllocateurSupprimeurElements), elementToModif); } resTmp = m_formuleGlobale.Eval(ctx); if (!resTmp) { result += resTmp; } } return(result); }
//----------------------------------------------------------------------------------------------------- public void InitChamps(CActionSur2iLink action, CObjetPourSousProprietes objetPourSousProprietes) { m_actionEditee = action as CActionSur2iLinkExecuterProcess; if (m_actionEditee == null) { Visible = false; return; } Visible = true; m_objetPourSousProprietes = objetPourSousProprietes; CObjetPourSousProprietes objetPourFiltreActions = m_objetPourSousProprietes; CDefinitionMultiSourceForExpression multi = m_objetPourSousProprietes.ElementAVariableInstance as CDefinitionMultiSourceForExpression; if (multi != null) { objetPourFiltreActions = multi.DefinitionObjetPrincipal; } CFiltreData filtre = null; if (objetPourFiltreActions == null || objetPourFiltreActions.TypeAnalyse == null) { filtre = new CFiltreData(CProcessInDb.c_champTypeCible + "=@1", ""); } else { filtre = new CFiltreData(CProcessInDb.c_champTypeCible + "=@1 or " + CProcessInDb.c_champTypeCible + "=@2 or " + CProcessInDb.c_champTypeCible + "=@3", "", objetPourFiltreActions.TypeAnalyse.ToString(), typeof(CObjetDonneeAIdNumerique).ToString()); } m_selectionneurProcess.InitAvecFiltreDeBase <CProcessInDb>("Libelle", filtre, true); CProcessInDb process = new CProcessInDb(CSc2iWin32DataClient.ContexteCourant); CProcess processPourParametres = null; if (process.ReadIfExists(((CActionSur2iLinkExecuterProcess)m_actionEditee).IdProcessInDb)) { m_selectionneurProcess.ElementSelectionne = process; processPourParametres = process.Process; } if (objetPourFiltreActions != null && objetPourFiltreActions.TypeAnalyse != null) { m_panelEvenementManuel.Visible = true; CFiltreData filtreDeBase = new CFiltreData( CEvenement.c_champTypeEvenement + "=@1 and " + CEvenement.c_champTypeCible + "=@2", (int)TypeEvenement.Manuel, objetPourFiltreActions.TypeAnalyse.ToString()); m_selectionneurEvenementManuel.InitAvecFiltreDeBase <CEvenement>( "Libelle", filtreDeBase, true); CEvenement evt = new CEvenement(CSc2iWin32DataClient.ContexteCourant); if (evt.ReadIfExists(((CActionSur2iLinkExecuterProcess)m_actionEditee).IdEvenement)) { m_selectionneurEvenementManuel.ElementSelectionne = evt; processPourParametres = null; } } else { m_panelEvenementManuel.Visible = false; m_selectionneurEvenementManuel.ElementSelectionne = null; } m_chkHideProgress.Checked = ((CActionSur2iLinkExecuterProcess)m_actionEditee).MasquerProgressProcess; InitListeFormulesParametres(processPourParametres, m_actionEditee); }