Ejemplo n.º 1
0
        //----------------------------------------------------------------------
        public CFormNavigationGED(IObjetDonneeAIdNumerique objet)
        {
            // Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent();

            m_elementForGED = objet;
        }
Ejemplo n.º 2
0
 public CFormListeDossierSuivi(IObjetDonneeAIdNumerique objet)
     : base(new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CDossierSuivi)))
 {
     m_objetForSuivi = objet;
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }
Ejemplo n.º 3
0
        //----------------------------------------------------------------------
        public CResultAErreur SetParametres(Dictionary <string, object> dicParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            object obj = null;

            if (dicParametres.TryGetValue(m_cParametreElementId, out obj))
            {
                if (obj is int)
                {
                    int nId = (int)obj;
                    if (dicParametres.TryGetValue(m_cParametreElementType, out obj))
                    {
                        string strType = (string)obj;
                        Type   tp      = CActivatorSurChaine.GetType(strType);
                        if (tp != null)
                        {
                            m_elementForGED = (CObjetDonneeAIdNumerique)Activator.CreateInstance(
                                tp,
                                new object[] { CSc2iWin32DataClient.ContexteCourant });
                            if (!m_elementForGED.ReadIfExists(nId))
                            {
                                m_elementForGED = null;
                                result.EmpileErreur(I.T("Element for EDM Navigation Form not found|10100"));
                                return(result);
                            }
                        }
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
        //-------------------------------------------------------------------
        //Lie un document à un élément
        //Le data du result contient le CRelationElementToDocument
        public CResultAErreur LinkTo(IObjetDonneeAIdNumerique objet)
        {
            CResultAErreur result = CResultAErreur.True;

            if (objet == null)
            {
                return(result);
            }
            CRelationElementToDocument relationToDoc = new CRelationElementToDocument(ContexteDonnee);
            CFiltreData filtre = new CFiltreData(c_champId + "=@1 and " +
                                                 CRelationElementToDocument.c_champIdElement + "=@2 and " +
                                                 CRelationElementToDocument.c_champTypeElement + "=@3",
                                                 Id,
                                                 objet.Id,
                                                 objet.GetType().ToString());

            if (!relationToDoc.ReadIfExists(filtre))
            {
                relationToDoc = new CRelationElementToDocument(ContexteDonnee);
                relationToDoc.CreateNewInCurrentContexte();
                relationToDoc.DocumentGed = this;
                relationToDoc.ElementLie  = objet;
            }
            result.Data = relationToDoc;
            return(result);
        }
Ejemplo n.º 5
0
        private void InitPanelList(IObjetDonneeAIdNumerique element)
        {
            m_elementSelectionne = element;
            if (element == null)
            {
                m_lnkDissocierElementEnCours.Visible = false;
                m_lblDragExisting.Visible            = false;
                m_listeDocuments = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CDocumentGED));
                if (!m_chkTousDocuments.Checked)
                {
                    m_labelElementSelectionne.Text       = I.T("Documents not related to any Element|10331");
                    m_panelListDocumentsGED.FiltreDeBase = new CFiltreDataAvance(
                        CDocumentGED.c_nomTable,
                        "hasno(" + CRelationElementToDocument.c_nomTable + "." +
                        CRelationElementToDocument.c_champId + ")");
                }
                else
                {
                    m_labelElementSelectionne.Text       = I.T("All documents|10332");
                    m_panelListDocumentsGED.FiltreDeBase = null;
                }
                m_chkTousDocuments.Visible = true;
            }
            else
            {
                m_lnkDissocierElementEnCours.Visible = true;
                m_lblDragExisting.Visible            = true;

                m_labelElementSelectionne.Text = element.DescriptionElement;
                m_listeDocuments = CDocumentGED.GetListeDocumentsForElement(element);
                m_panelListDocumentsGED.FiltreDeBase = CDocumentGED.GetListeDocumentsForElement(element).Filtre;
                m_chkTousDocuments.Visible           = false;
            }

            CFiltreData filtre = m_filtreCategories;

            m_listeDocuments.FiltrePrincipal = CFiltreData.GetAndFiltre(m_listeDocuments.FiltrePrincipal, m_filtreCategories);

            /*
             *
             * if (filtre != null)
             * {
             *  m_panelListDocumentsGED.FiltreDeBase = CFiltreData.GetAndFiltre(
             *      m_panelListDocumentsGED.FiltreDeBase,
             *      filtreSpplementaire);
             * }*/

            m_panelListDocumentsGED.ControlFiltreStandard = new CPanelFiltreDocumentGed();

            m_panelListDocumentsGED.InitFromListeObjets(
                m_listeDocuments,
                typeof(CDocumentGED),
                typeof(CFormEditionDocumentGED),
                null,
                "");

            m_panelListDocumentsGED.RemplirGrille();
        }
Ejemplo n.º 6
0
        //-----------------------------------------------------------
        private static void GetCreateurForObject(object obj, ref CCreateur2iFormulaireV2 createurCree)
        {
            IObjetDonneeAIdNumerique oai = obj as IObjetDonneeAIdNumerique;

            if (oai != null)
            {
                createurCree = new CCreateur2iFormulaireObjetDonnee(oai.ContexteDonnee.IdSession);
            }
        }
Ejemplo n.º 7
0
        //------------------------------------------------------------------
        public static CListeObjetsDonnees GetRelationsSelections(IObjetDonneeAIdNumerique objet)
        {
            CFiltreData filtre = new CFiltreData(
                CRelationBesoinQuantite_Element.c_champTypeElement + "=@1 and " +
                CRelationBesoinQuantite_Element.c_champIdElement + "=@2",
                objet.GetType().ToString(),
                objet.Id);
            CListeObjetsDonnees liste = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CRelationBesoinQuantite_Element));

            liste.Filtre = filtre;
            return(liste);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Retourne les caractéristiques d'un élément
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public static CListeObjetsDonnees GetCaracteristiques(IObjetDonneeAIdNumerique element)
        {
            CFiltreData filtre = null;

            if (element == null)
            {
                filtre = new CFiltreDataImpossible();
            }
            else
            {
                filtre = new CFiltreData(CCaracteristiqueEntite.c_champTypeElement + "=@1 and " +
                                         CCaracteristiqueEntite.c_champIdElementLie + "=@2",
                                         element.GetType().ToString(),
                                         ((IObjetDonneeAIdNumerique)element).Id);
            }
            return(new CListeObjetsDonnees(element.ContexteDonnee, typeof(CCaracteristiqueEntite), filtre));
        }
        /// ////////////////////////////////////////////////////////////
        private bool IsVisible(IObjetDonneeAIdNumerique objet)
        {
            if (objet is IObjetHierarchiqueACodeHierarchique)
            {
                if (m_tableCodesVisibles == null)
                {
                    return(true);
                }
                return(m_tableCodesVisibles.Contains(((IObjetHierarchiqueACodeHierarchique)objet).CodeSystemeComplet));
            }
            if (m_tableIdsElementsVisibles == null)
            {
                return(true);
            }

            return(m_tableIdsElementsVisibles.Contains(objet.Id));
        }
Ejemplo n.º 10
0
        public void Init(IObjetDonneeAIdNumerique element)
        {
            m_elementEdite = element;

            m_cmbModeStockage.NullAutorise      = false;
            m_cmbModeStockage.ProprieteAffichee = "Libelle";
            CDocumentGED dummyDoc = new CDocumentGED(CSc2iWin32DataClient.ContexteCourant);

            m_cmbModeStockage.ListDonnees   = dummyDoc.TypesAutorisesPourLesUtilisateurs;
            m_cmbModeStockage.SelectedValue = dummyDoc.TypesAutorisesPourLesUtilisateurs[0];
            m_panelModeStockage.Visible     = dummyDoc.TypesAutorisesPourLesUtilisateurs.Length > 1;


            ReactualiserArbre();
            FillCategoriesForElement(m_elementEdite);
            InitPanelList();
        }
Ejemplo n.º 11
0
        ////////////////////////////////////////////////////////////////////////
        public static CListeObjetsDonnees GetListeDocumentsForElement(IObjetDonneeAIdNumerique objet)
        {
            if (objet == null)
            {
                return(null);
            }
            CFiltreData filtre = new CFiltreDataAvance(
                CDocumentGED.c_nomTable,
                CRelationElementToDocument.c_nomTable + "." + CRelationElementToDocument.c_champIdElement + "=@1 and " +
                CRelationElementToDocument.c_nomTable + "." + CRelationElementToDocument.c_champTypeElement + "=@2",
                objet.Id,
                objet.GetType().ToString());
            CListeObjetsDonnees liste = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CDocumentGED));

            liste.RemplissageProgressif = true;
            liste.Filtre = filtre;
            return(liste);
        }
Ejemplo n.º 12
0
        public override sc2i.common.CResultAErreur InitFromContexte(CContexteFormNavigable ctx)
        {
            CResultAErreur result = base.InitFromContexte(ctx);

            if (!result)
            {
                return(result);
            }
            if (ctx["TYPE_OBJET"] != null)
            {
                m_objetForGED = (CObjetDonneeAIdNumerique)Activator.CreateInstance(
                    (Type)ctx["TYPE_OBJET"],
                    new object[] { CSc2iWin32DataClient.ContexteCourant });
                if (!m_objetForGED.ReadIfExists((int)ctx["ID_OBJET"]))
                {
                    m_objetForGED = null;
                }
            }
            return(result);
        }
Ejemplo n.º 13
0
 //----------------------------------------------------
 public static bool ReadIfExists(this CDbKey key, CObjetDonnee objet)
 {
     if (key.InternalUniversalIdANeJamaisUtiliserSaufDansCDbKeyAddOn.Length > 0)
     {
         if (objet.ReadIfExistsUniversalId(key.InternalUniversalIdANeJamaisUtiliserSaufDansCDbKeyAddOn))
         {
             return(true);
         }
         return(false);
     }
     if (key.InternalIdNumeriqueANeJamaisUtiliserSaufDansCDbKeyAddOn != null)
     {
         IObjetDonneeAIdNumerique objetId = objet as IObjetDonneeAIdNumerique;
         if (objetId != null && objetId.ReadIfExists(key.InternalIdNumeriqueANeJamaisUtiliserSaufDansCDbKeyAddOn.Value))
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 14
0
        public override sc2i.common.CResultAErreur InitFromContexte(CContexteFormNavigable ctx)
        {
            CResultAErreur result = base.InitFromContexte(ctx);

            if (!result)
            {
                return(result);
            }
            if (ctx["TYPE_OBJET"] != null)
            {
                m_objetForSuivi = (CObjetDonneeAIdNumerique)Activator.CreateInstance(
                    (Type)ctx["TYPE_OBJET"],
                    new object[] { CSc2iWin32DataClient.ContexteCourant });
                if (!m_objetForSuivi.ReadIfExists((int)ctx["ID_OBJET"]))
                {
                    m_objetForSuivi = null;
                }
            }
            m_chkOnlyPrincipaux.Checked = (bool)ctx["PRINCIPAUX"];
            return(result);
        }
Ejemplo n.º 15
0
        //------------------------------------------------------------------------------
        private void FillCategoriesForElement(IObjetDonneeAIdNumerique element)
        {
            CFiltreData filtreCategories;

            if (element != null && !m_chkToutesCategories.Checked)
            {
                filtreCategories = new CFiltreDataAvance(
                    CCategorieGED.c_nomTable,
                    CRelationDocumentGED_Categorie.c_nomTable + "." +
                    CDocumentGED.c_nomTable + "." +
                    CRelationElementToDocument.c_nomTable + "." +
                    CRelationElementToDocument.c_champIdElement + " = @1 AND " +
                    CRelationDocumentGED_Categorie.c_nomTable + "." +
                    CDocumentGED.c_nomTable + "." +
                    CRelationElementToDocument.c_nomTable + "." +
                    CRelationElementToDocument.c_champTypeElement + " = @2",
                    element.Id,
                    element.GetType().ToString()
                    );
            }
            else
            {
                filtreCategories = null;
            }

            m_arbreCategories.AddRootForAll = true;
            m_arbreCategories.RootLabel     = I.T("All categories|20246");
            CTreeViewNodeKeeper keeper = new CTreeViewNodeKeeper(m_arbreCategories);

            m_arbreCategories.Init(
                typeof(CCategorieGED),
                "CategoriesFilles",
                CCategorieGED.c_champIdParent,
                "Libelle",
                filtreCategories,
                null);

            m_arbreCategories.CheckBoxes = false;
            keeper.Apply(m_arbreCategories);
        }
        /// //////////////////////////////////////////////
        public bool IsInFiltre(IObjetDonneeAIdNumerique objet)
        {
            if (m_tableCodesVisibles == null)            //Pas de filtre
            {
                return(true);
            }
            if (m_tableCodesVisibles != null && objet is IObjetHierarchiqueACodeHierarchique)
            {
                string strCode = ((IObjetHierarchiqueACodeHierarchique)objet).CodeSystemeComplet;
                object val     = m_tableCodesVisibles[strCode];
                if (val != null && val is bool && (bool)val)
                {
                    return(true);
                }
            }
            else
            {
                return(m_tableIdsElementsSelectionnables.Contains(objet.Id));
            }

            return(false);
        }
Ejemplo n.º 17
0
        public CResultAErreur InitFromContexte(CContexteFormNavigable contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            m_contexte = contexte;

            if (contexte["TYPE_OBJET"] != null)
            {
                m_elementForGED = (CObjetDonneeAIdNumerique)Activator.CreateInstance(
                    (Type)contexte["TYPE_OBJET"],
                    new object[] { CSc2iWin32DataClient.ContexteCourant });
                if (!m_elementForGED.ReadIfExists((int)contexte["ID_OBJET"]))
                {
                    m_elementForGED = null;
                }
            }
            if (AfterInitFromContexte != null)
            {
                AfterInitFromContexte(this, contexte);
            }

            return(result);
        }
Ejemplo n.º 18
0
        /// ///////////////////////////////////////////////////
        private void CreateControles(Crownwood.Magic.Controls.TabPage page)
        {
            if (m_tableCreateurs.ContainsKey(page) || ElementEdite == null)
            {
                return;
            }
            C2iWnd wnd   = m_tablePageTo2iWnd[page];
            Panel  panel = new Panel();

            panel.BackColor  = wnd.BackColor;
            panel.ForeColor  = wnd.ForeColor;
            panel.Font       = wnd.Font;
            panel.Location   = new Point(0, 0);
            panel.Size       = wnd.Size;
            panel.AutoScroll = true;
            page.Controls.Add(panel);
            panel.SuspendDrawing();
            CCreateur2iFormulaireObjetDonnee createur;

            IObjetDonneeAIdNumerique objetDonnee = ElementEdite as IObjetDonneeAIdNumerique;

            if (objetDonnee != null)
            {
                createur = new CCreateur2iFormulaireObjetDonnee(objetDonnee.ContexteDonnee.IdSession);
            }
            else
            {
                createur = new CCreateur2iFormulaireObjetDonnee(CSessionClient.GetSessionUnique().IdSession);
            }

            createur.CreateControlePrincipalEtChilds(panel, wnd, new CFournisseurPropDynStd(true));
            panel.ResumeDrawing();
            panel.Size             = page.ClientSize;
            m_tableCreateurs[page] = createur;
            page.ResumeDrawing();
            panel.Dock = DockStyle.Fill;
        }
Ejemplo n.º 19
0
        /// ////////////////////////////////////////////////////////
        private static void SerializeObjetAIdAuto(
            int nVersion,
            Type typeObjet,
            ref IObjetDonneeAIdNumerique valeur,
            C2iSerializer serializer,
            CContexteDonnee contexte)
        {
            //TESTDBKEYTODO : REmplacer l'id par un DbKey
            CDbKey dbKey = null;

            if (valeur is CObjetDonnee && ((CObjetDonnee)valeur).Row.RowState != DataRowState.Deleted &&
                ((CObjetDonnee)valeur).Row.RowState != DataRowState.Detached)
            {
                dbKey = valeur.DbKey;
            }
            if (nVersion < 14)
            {
                serializer.ReadDbKeyFromOldId(ref dbKey, typeObjet);
            }
            else
            {
                serializer.TraiteDbKey(ref dbKey);
            }

            if (nVersion >= 8 && dbKey != null)
            {
                serializer.TraiteType(ref typeObjet);
            }
            if (dbKey != null && serializer.Mode == ModeSerialisation.Lecture)
            {
                valeur = (IObjetDonneeAIdNumerique)Activator.CreateInstance(typeObjet, new object[] { contexte });
                if (!valeur.ReadIfExists(dbKey))
                {
                    valeur = null;
                }
            }
        }
Ejemplo n.º 20
0
        private void m_arbreConsultation_AfterSelect(object sender, TreeViewEventArgs e)
        {
            // Met à jour la liste des documents de GED de l'élmément sélectionné dans la hiérarchie

            CNodeConsultationHierarchique nodeHierarchique = e.Node.Tag as CNodeConsultationHierarchique;

            if (nodeHierarchique != null)
            {
                IObjetDonneeAIdNumerique donnee = nodeHierarchique.ObjetLie as IObjetDonneeAIdNumerique;

                if (donnee != null)
                {
                    if (!m_chkToutesCategories.Checked)
                    {
                        FillCategoriesForElement(donnee);
                    }
                    InitPanelList(donnee);
                }
                else
                {
                    InitPanelList(m_elementEdite);
                }
            }
        }
Ejemplo n.º 21
0
        /// ////////////////////////////////////////////////////////
        public static CResultAErreur SerializeValeurVariable(
            ref object valeur,
            IVariableDynamique variable,
            C2iSerializer serializer,
            CContexteDonnee contexteDonnee,
            bool bAvecCompatibiliteSurVersionQuiTravaillaitDirectementDansCProcess)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = CResultAErreur.True;

            if (!bAvecCompatibiliteSurVersionQuiTravaillaitDirectementDansCProcess)
            {
                result = serializer.TraiteVersion(ref nVersion);
            }
            if (!result)
            {
                return(result);
            }


            if (variable is CVariableDynamiqueSaisie ||
                variable is CVariableDynamiqueSelectionObjetDonnee)
            {
                result = serializer.TraiteObjetSimple(ref valeur);
            }
            else
            {
                if (nVersion <= 11 && variable.GetType().ToString().IndexOf("CVariableProcessTypeComplexe") < 0)
                {
                    //Avant, on ne serialisait que les variables complexes
                    return(result);
                }
                Type tp = variable.TypeDonnee.TypeDotNetNatif;
                if (tp == typeof(int) || tp == typeof(double) || tp == typeof(string) ||
                    tp == typeof(DateTime) || tp == typeof(bool))
                {
                    if (nVersion >= 5)
                    {
                        if (variable.TypeDonnee.IsArrayOfTypeNatif)
                        {
                            IList lst = valeur as IList;
                            serializer.TraiteListeObjetsSimples(ref lst);
                            if (serializer.Mode == ModeSerialisation.Lecture)
                            {
                                valeur = lst;
                            }
                        }
                        else
                        {
                            serializer.TraiteObjetSimple(ref valeur);
                        }
                    }
                }
                else if (typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(tp))
                #region ObjetAIdNumerique AUTO
                {
                    if (!variable.TypeDonnee.IsArrayOfTypeNatif)
                    {
                        IObjetDonneeAIdNumerique objet = (IObjetDonneeAIdNumerique)valeur;
                        SerializeObjetAIdAuto(nVersion, objet == null ? tp : objet.GetType(), ref objet, serializer, contexteDonnee);
                        valeur = objet;
                    }
                    else
                    {
                        int nNb = 0;
                        if (valeur != null)
                        {
                            nNb = ((IList)valeur).Count;
                        }
                        serializer.TraiteInt(ref nNb);
                        switch (serializer.Mode)
                        {
                        case ModeSerialisation.Ecriture:
                            if (valeur != null)
                            {
                                foreach (IObjetDonneeAIdNumerique objet in (IList)valeur)
                                {
                                    IObjetDonneeAIdNumerique objetForRef = objet;
                                    SerializeObjetAIdAuto(nVersion, objetForRef == null ? tp : objetForRef.GetType(), ref objetForRef, serializer, contexteDonnee);
                                }
                            }
                            break;

                        case ModeSerialisation.Lecture:
                            ArrayList lst = new ArrayList();
                            for (int nElt = 0; nElt < nNb; nElt++)
                            {
                                IObjetDonneeAIdNumerique element = null;
                                SerializeObjetAIdAuto(nVersion, tp, ref element, serializer, contexteDonnee);
                                if (element != null)
                                {
                                    lst.Add(element);
                                }
                            }
                            valeur = (IObjetDonneeAIdNumerique[])lst.ToArray(typeof(IObjetDonneeAIdNumeriqueAuto));
                            break;
                        }
                    }
                }
                else if (variable.TypeDonnee.TypeDotNetNatif.GetCustomAttributes(typeof(SerializableAttribute), true).Length > 0)
                {
                    if (nVersion >= 13)
                    {
                        bool bHasObjet = valeur != null;
                        serializer.TraiteBool(ref bHasObjet);
                        if (bHasObjet)
                        {
                            result = serializer.TraiteSerializable(ref valeur);
                        }
                    }
                }
                #endregion
            }
            return(result);
        }
Ejemplo n.º 22
0
        public void UpdateOnglets()
        {
            this.SuspendDrawing();
            try
            {
                /*if (!LockEdition)
                 * {
                 *  //valide les modifs car on va tout supprimer
                 *  MAJ_Champs();
                 * }*/
                Crownwood.Magic.Controls.TabPage pageSelect = this.SelectedTab;
                m_bIsInitializing = true;
                Hashtable tablePagesToHide = new Hashtable();
                ArrayList pages            = new ArrayList(TabPages);
                foreach (Crownwood.Magic.Controls.TabPage page in pages)
                {
                    m_tablePagesInit[page] = false;
                    tablePagesToHide[page] = true;
                    TabPages.Remove(page);
                }

                if (m_elementEdite == null)
                {
                    return;
                }

                /* YK : On obtient la session de l'objet en cours d'édition au lieur de la session par défaut */
                CSessionClient           session     = null;
                IObjetDonneeAIdNumerique objetDonnee = m_elementEdite as IObjetDonneeAIdNumerique;
                if (objetDonnee != null)
                {
                    session = CSessionClient.GetSessionForIdSession(objetDonnee.ContexteDonnee.IdSession);
                }
                else
                {
                    session = CSessionClient.GetSessionUnique();
                }

                ArrayList lstFormulaires = new ArrayList(m_listeFormulaires);
                lstFormulaires.Sort(new CSorterFormulaires());
                //Lit les champs liés et leurs valeurs
                StringBuilder bl = new StringBuilder();
                foreach (CFormulaire formulaire in lstFormulaires)
                {
                    bl.Append(formulaire.Id);
                    bl.Append(",");
                }
                if (bl.Length > 0)
                {
                    bl.Remove(bl.Length - 1, 1);
                    CListeObjetsDonnees lst = new CListeObjetsDonnees(((CFormulaire)lstFormulaires[0]).ContexteDonnee, typeof(CFormulaire));
                    lst.Filtre = new CFiltreData(CFormulaire.c_champId + " in (" + bl.ToString() + ")");
                    lst.AssureLectureFaite();
                    lst.ReadDependances("RelationsChamps", "RelationsChamps.Champ", "RelationsChamps.Champ.ListeValeurs");
                }


                foreach (CFormulaire formulaire in lstFormulaires)
                {
                    Crownwood.Magic.Controls.TabPage page = null;
                    m_tableIdFormulaireToTabPage.TryGetValue(formulaire.Id, out page);
                    CCreateur2iFormulaireObjetDonnee createur = null;

                    if (page == null)
                    {
                        C2iWndFenetre wnd = formulaire.Formulaire;
                        if (wnd != null)
                        {
                            page      = new Crownwood.Magic.Controls.TabPage(wnd.Text);
                            page.Name = formulaire.IdUniversel;
                            if (wnd.Text == "")
                            {
                                page.Title = formulaire.Libelle;
                            }
                            TabPages.Add(page);
                            if (m_tableCreateurs.ContainsKey(page))
                            {
                                m_tableCreateurs.Remove(page);
                            }
                            m_tablePageTo2iWnd[page] = wnd;
                            m_tableIdFormulaireToTabPage[formulaire.Id] = page;
                            m_tablePageToIdFormulaire[page]             = formulaire.Id;
                        }
                    }
                    else
                    {
                        m_tableCreateurs.TryGetValue(page, out createur);
                    }

                    if (page != null)
                    {
                        if (!TabPages.Contains(page))
                        {
                            TabPages.Add(page);
                        }
                        tablePagesToHide.Remove(page);
                    }
                }


                /*CChampCustom[] champs = ElementEdite.GetChampsHorsFormulaire();
                 * if ( champs.Length != 0 )
                 * {
                 *  UpdatePageChamps( nRest );
                 *  if ( m_pageGrid != null )
                 *      tablePagesToHide.Remove(m_pageGrid);
                 * }*/
                foreach (Crownwood.Magic.Controls.TabPage pageToDel in tablePagesToHide.Keys)
                {
                    if (TabPages.Contains(pageToDel))
                    {
                        TabPages.Remove(pageToDel);
                    }
                }

                if (TabPages.Count == 1)
                {
                    this.HideTabsMode = Crownwood.Magic.Controls.TabControl.HideTabsModes.HideAlways;
                }
                else
                {
                    this.HideTabsMode = Crownwood.Magic.Controls.TabControl.HideTabsModes.ShowAlways;
                }
                if (TabPages.Contains(pageSelect))
                {
                    SelectedTab = pageSelect;
                }
                if (SelectedTab != null)
                {
                    InitPageWithObjetCourant(SelectedTab);
                }
            }
            finally
            {
                this.ResumeDrawing();
            }
            m_bIsInitializing = false;
        }
Ejemplo n.º 23
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            //Calcule la nouvelle valeur
            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process);

            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
            result = ExpressionValeur.Eval(contexteEval);
            if (!result)
            {
                result.EmpileErreur(I.T("Error during @1 formula evaluation|216", ExpressionValeur.ToString()));
                return(result);
            }
            object nouvelleValeur = result.Data;



            CVariableDynamique variable = VariableAModifier;

            if (nouvelleValeur is CResultAErreur && variable == null)
            {
                return(( CResultAErreur )nouvelleValeur);
            }

            if (variable != null)
            {
                /*result.EmpileErreur("Variable "+m_nIdVariableAModifier.ToString()+" inconnue");
                 * return result;
                 * }*/
                if (variable is CVariableProcessTypeComplexe &&
                    typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(variable.TypeDonnee.TypeDotNetNatif))
                {
                    ArrayList lstElements = new ArrayList();
                    try
                    {
                        ArrayList lst = new ArrayList();
                        if (typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(result.Data.GetType()) ||
                            result.Data is int)
                        {
                            lst.Add(result.Data);
                        }
                        else if (result.Data is IList)
                        {
                            foreach (object item in (IList)result.Data)
                            {
                                lst.Add(item);
                            }
                        }
                        else
                        {
                            result.EmpileErreur(I.T("Incompatible value type|228"));
                            return(result);
                        }

                        Type tp = variable.TypeDonnee.TypeDotNetNatif;
                        foreach (object obj in lst)
                        {
                            if (obj is  int)
                            {
                                IObjetDonneeAIdNumerique objet = (IObjetDonneeAIdNumerique)Activator.CreateInstance(tp, new object[] { contexte.ContexteDonnee });
                                if (objet.ReadIfExists((int)obj))
                                {
                                    lstElements.Add(objet);
                                }
                            }
                            else if (typeof(IObjetDonneeAIdNumerique).IsAssignableFrom(obj.GetType()))
                            {
                                lstElements.Add(obj);
                            }
                        }
                    }
                    catch
                    {
                    }
                    if (variable.TypeDonnee.IsArrayOfTypeNatif)
                    {
                        contexte.Branche.Process.SetValeurChamp(variable, lstElements);
                    }
                    else
                    {
                        if (lstElements.Count > 0)
                        {
                            contexte.Branche.Process.SetValeurChamp(variable, lstElements[0]);
                        }
                        else
                        {
                            contexte.Branche.Process.SetValeurChamp(variable, null);
                        }
                    }
                }
                else
                {
                    contexte.Branche.Process.SetValeurChamp(variable, result.Data);
                }
            }

            return(result);
        }
Ejemplo n.º 24
0
        public CTodoValeurChamp(DataSet ds, IObjetDonneeAChamps obj, CChampTimosWebApp champWeb, int nIdGroupeAssocie, bool bIsEditable)
        {
            DataTable dt = ds.Tables[c_nomTable];

            if (dt == null)
            {
                return;
            }

            DataRow row = dt.NewRow();

            int    nIdChampWeb    = champWeb.Id;
            int    nIdChampTimos  = champWeb.IdTimos;
            string strLibelleWeb  = champWeb.WebLabel;
            int    nOrdreWeb      = champWeb.WebNumOrder;
            string strValeur      = "";
            string strElementType = "";
            int    nElementId     = -1;

            CChampCustom champ         = champWeb.Champ;
            bool         bAutoComplete = champWeb.UseAutoComplete;

            if (champ != null)
            {
                if (obj != null)
                {
                    strElementType = obj.GetType().ToString();
                    nElementId     = ((IObjetDonneeAIdNumerique)obj).Id;

                    m_valeur = CUtilElementAChamps.GetValeurChamp(obj, nIdChampTimos);
                    if (m_valeur != null)
                    {
                        if (champ.TypeDonneeChamp.TypeDonnee == TypeDonnee.tObjetDonneeAIdNumeriqueAuto)
                        {
                            IObjetDonneeAIdNumerique objetValeur = m_valeur as IObjetDonneeAIdNumerique;
                            if (objetValeur != null)
                            {
                                try
                                {
                                    if (bIsEditable && !bAutoComplete)
                                    {
                                        strValeur = objetValeur.Id.ToString();
                                    }
                                    else
                                    {
                                        strValeur = objetValeur.DescriptionElement;
                                    }
                                }
                                catch
                                {
                                    strValeur = "";
                                }
                            }
                        }
                        else if (champ.IsChoixParmis())
                        {
                            try
                            {
                                if (bIsEditable)
                                {
                                    strValeur = m_valeur.ToString();
                                }
                                else
                                {
                                    strValeur = champ.DisplayFromValue(m_valeur);
                                }
                            }
                            catch
                            {
                                strValeur = "";
                            }
                        }
                        else
                        {
                            try
                            {
                                strValeur = m_valeur.ToString();
                            }
                            catch
                            {
                                strValeur = "";
                            }
                        }
                    }
                }
            }
            else
            {
                C2iExpression formule = champWeb.Formule;
                if (formule != null)
                {
                    CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(obj);
                    CResultAErreur resFormule         = formule.Eval(ctx);
                    if (resFormule && resFormule.Data != null)
                    {
                        strValeur = resFormule.Data.ToString();
                    }
                }
            }


            row[c_champId]              = nIdChampWeb;
            row[c_champLibelle]         = strLibelleWeb;
            row[c_champOrdreAffichage]  = nOrdreWeb;
            row[c_champValeur]          = strValeur;
            row[c_champElementType]     = strElementType;
            row[c_champElementId]       = nElementId;
            row[c_champIdGroupeChamps]  = nIdGroupeAssocie;
            row[c_champUseAutoComplete] = champWeb.UseAutoComplete;

            m_row = row;
            dt.Rows.Add(row);
        }
Ejemplo n.º 25
0
        //------------------------------------------------------------------
        public static CListeObjetsDonnees GetQuantitesAssociees(IObjetDonneeAIdNumerique objet)
        {
            CListeObjetsDonnees lst = GetRelationsSelections(objet);

            return(lst.GetDependances("Besoin"));
        }
Ejemplo n.º 26
0
        //------------------------------------------------------------------
        public static CListeObjetsDonnees GetEntitesOrganisationnellesDirectementLiees(IObjetDonneeAIdNumerique objet)
        {
            CFiltreData filtre = new CFiltreData(
                CRelationElement_EO.c_champTypeElement + "=@1 and " +
                CRelationElement_EO.c_champIdElement + "=@2",
                objet.GetType().ToString(),
                objet.Id);
            CListeObjetsDonnees liste = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CRelationElement_EO));

            liste.Filtre = filtre;
            return(liste.GetDependances("EntiteOrganisationnelle"));
        }
Ejemplo n.º 27
0
        //------------------------------------------------------------------------------------------
        public void ReadArbre(CListeObjetsDonnees listeSource, CListeObjetsDonnees.CArbreProps arbre, List <string> lstPaquetsALire)
        {
            string strIdChamp   = "";
            string strPropriete = "";
            string strCle       = "";

            if (listeSource.Count == 0)
            {
                return;
            }
            bool bFromEntiteToChamp = false;

            if (!CDefinitionProprieteDynamique.DecomposeNomProprieteUnique(arbre.ProprietePrincipale, ref strCle, ref strPropriete))
            {
                return;
            }
            if (!CInfoRelationComposantFiltreEntiteToChampEntite.DecomposeNomPropriete(strPropriete, ref strIdChamp, ref bFromEntiteToChamp))
            {
                //c'est une relation vers des valeurs de champ qui pointent sur cette valeur.
                //Ignore, et traite tout dans le composant suivant qui est un Entité to champ à l'envers
                listeSource.ReadDependances(arbre);
                return;
            }
            //On a affaire à une liste source qui contient des valeurs qui sont pointées
            //par des valeurs de champs, et on veut les éléments qui pointent sur ces valeurs de champs

            CChampCustom champ      = new CChampCustom(listeSource.ContexteDonnee);
            CDbKey       dbKeyChamp = CDbKey.CreateFromStringValue(strIdChamp);

            if (!champ.ReadIfExists(dbKeyChamp))
            {
                return;
            }
            //Vérifie que la liste source est bien du type de données du champ custom
            if (champ.TypeDonnee.TypeDotNetNatif != listeSource.TypeObjets)
            {
                return;
            }
            IObjetDonneeAIdNumerique obj = listeSource[0] as IObjetDonneeAIdNumerique;

            if (obj == null)
            {
                return;
            }
            string strChampId = obj.GetChampId();

            if (lstPaquetsALire == null)
            {
                lstPaquetsALire = listeSource.GetPaquetsPourLectureFils(strChampId, null);
            }

            //Trouve le type des éléments à champs
            Type typeElementsFinaux = champ.Role.TypeAssocie;
            //Trouve le type des relations aux elementAchamp_ChampCustom
            IObjetDonneeAChamps elt = Activator.CreateInstance(typeElementsFinaux, new object[] { listeSource.ContexteDonnee }) as IObjetDonneeAChamps;

            if (elt == null)
            {
                return;
            }
            string strNomTableRelToChamp = elt.GetNomTableRelationToChamps();
            Type   tpRelToChamp          = CContexteDonnee.GetTypeForTable(strNomTableRelToChamp);

            if (tpRelToChamp == null)
            {
                return;
            }
            foreach (string strPaquet in lstPaquetsALire)
            {
                CListeObjetsDonnees lst = new CListeObjetsDonnees(listeSource.ContexteDonnee, typeElementsFinaux);

                //TESTDBKEYTODO
                string strChampCustomId = dbKeyChamp.IsNumericalId() ? CChampCustom.c_champId : CObjetDonnee.c_champIdUniversel;

                lst.Filtre = new CFiltreDataAvance(
                    CContexteDonnee.GetNomTableForType(typeElementsFinaux),
                    strNomTableRelToChamp + "." + strChampCustomId + "=@1 and " +
                    strNomTableRelToChamp + "." + CRelationElementAChamp_ChampCustom.c_champValeurInt + " in " +
                    strPaquet,
                    dbKeyChamp.GetValeurInDb());
                lst.AssureLectureFaite();
                lst.ReadDependances(arbre);
            }
        }