Beispiel #1
0
 //-----------------------------------------------------------------------------------------------
 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);
        }