示例#1
0
        //------------------------------------------------------------------------------
        public void ReactualiserArbre()
        {
            m_bCmbArbreInitialisee = false;
            Type typeConsulte       = null;
            CListeObjetsDonnees lst = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CConsultationHierarchique));

            if (m_elementEdite != null)
            {
                lst.Filtre = new CFiltreData(CConsultationHierarchique.c_champTypeSource + " = @1",
                                             m_elementEdite.GetType().ToString());
                typeConsulte = m_elementEdite.GetType();
            }
            else
            {
                lst.Filtre = new CFiltreData(CConsultationHierarchique.c_champTypeSource + " = @1", "");
            }
            m_cmbArbreHierarchique.Init(lst, "Libelle", true);
            m_cmbArbreHierarchique.AssureRemplissage();
            int nIdLastConsultationUtilisee = new CTimosAppRegistre().GetLastIdConsultationHierarchiqueForGED(typeConsulte);

            if (nIdLastConsultationUtilisee >= 0)
            {
                CConsultationHierarchique cslt = new CConsultationHierarchique(CSc2iWin32DataClient.ContexteCourant);
                if (cslt.ReadIfExists(nIdLastConsultationUtilisee))
                {
                    m_cmbArbreHierarchique.ElementSelectionne = cslt;
                }
            }
            if (m_cmbArbreHierarchique.ElementSelectionne == null && m_cmbArbreHierarchique.Items.Count > 0)
            {
                m_cmbArbreHierarchique.SelectedIndex = 0;
            }
            m_bCmbArbreInitialisee = true;
            m_panelConsultationHierarchique.Visible = lst.Count > 0;
        }
示例#2
0
        public override CContexteFormNavigable GetContexte()
        {
            CContexteFormNavigable contexte = base.GetContexte();

            if (contexte == null)
            {
                return(null);
            }
            if (m_objetForGED != null)
            {
                contexte["TYPE_OBJET"] = m_objetForGED.GetType();
                contexte["ID_OBJET"]   = m_objetForGED.Id;
            }
            return(contexte);
        }
示例#3
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);
        }
示例#4
0
        public CContexteFormNavigable GetContexte()
        {
            CContexteFormNavigable contexte = new CContexteFormNavigable(GetType());

            if (m_elementForGED != null)
            {
                contexte["TYPE_OBJET"] = m_elementForGED.GetType();
                contexte["ID_OBJET"]   = m_elementForGED.Id;
            }
            if (AfterGetContexte != null)
            {
                AfterGetContexte(this, contexte);
            }

            return(contexte);
        }
示例#5
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"));
        }
示例#6
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);
        }
示例#7
0
        private void m_lnkDissocierElementEnCours_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (m_elementSelectionne != null)
            {
                List <string> listeIdsDocuments = new List <string>();
                foreach (CDocumentGED document in m_panelListDocumentsGED.ElementsSelectionnes)
                {
                    listeIdsDocuments.Add(document.Id.ToString());
                }
                int nbSelectionne = listeIdsDocuments.Count();
                if (nbSelectionne == 0)
                {
                    CFormAlerte.Afficher(I.T("No Document selected to dissociate|10334"));
                }
                else
                {
                    DialogResult reponse = CFormAlerte.Afficher(I.T("Dissociate @1 document(s) from '@2'. Do you Confirm?|10335", nbSelectionne.ToString(), m_elementSelectionne.DescriptionElement), EFormAlerteType.Question);
                    if (reponse == DialogResult.Yes)
                    {
                        using (CContexteDonnee ctx = CSc2iWin32DataClient.ContexteCourant.GetContexteEdition())
                        {
                            CListeObjetsDonnees listeRelationsASupprimer = new CListeObjetsDonnees(ctx, typeof(CRelationElementToDocument));
                            listeRelationsASupprimer.Filtre = new CFiltreData(
                                CRelationElementToDocument.c_champTypeElement + " = @1 AND " +
                                CRelationElementToDocument.c_champIdElement + " = @2 AND " +
                                CDocumentGED.c_champId + " in (" + string.Join(",", listeIdsDocuments.ToArray()) + ")",
                                m_elementSelectionne.GetType().ToString(),
                                m_elementSelectionne.Id);

                            if (listeRelationsASupprimer.Count > 0)
                            {
                                CObjetDonneeAIdNumerique.Delete(listeRelationsASupprimer, true);
                            }

                            CResultAErreur result = ctx.CommitEdit();
                            if (!result)
                            {
                                CFormAlerte.Afficher(result.Erreur);
                            }
                            else
                            {
                                InitPanelList(m_elementSelectionne);
                            }
                        }
                    }
                }
            }
        }
        /// <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));
        }
示例#9
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);
        }
示例#10
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);
        }
示例#11
0
        //-------------------------------------------------------------------
        protected override void InitPanel()
        {
            //N'affiche que les éléments avec catégorie et non liés à un
            //élément.
            if (m_filtreDeBaseOriginal == null)
            {
                m_filtreDeBaseOriginal = FiltreDeBase;
            }
            CFiltreData filtreDeBase = m_filtreDeBaseOriginal;

            if (m_objetForSuivi != null)
            {
                filtreDeBase =
                    CFiltreData.GetAndFiltre(filtreDeBase,
                                             new CFiltreData(
                                                 CDossierSuivi.c_champTypeElementLie + "=@1 and " +
                                                 CDossierSuivi.c_champIdElementLie + "=@2",
                                                 m_objetForSuivi.GetType().ToString(),
                                                 m_objetForSuivi.Id));
            }
            if (ContexteUtilisation.Trim() != "")
            {
                m_chkOnlyPrincipaux.Visible = false;
                m_chkOnlyPrincipaux.Checked = false;
            }
            if (m_chkOnlyPrincipaux.Checked)
            {
                CFiltreData filtre = new CFiltreDataAvance(
                    CDossierSuivi.c_nomTable,
                    "hasno(" + CDossierSuivi.c_champIdDossierParent + ")");
                filtreDeBase = CFiltreData.GetAndFiltre(filtre, filtreDeBase);
            }
            bool bOldVal = m_panelListe.FiltreDeBaseEnAjout;

            m_panelListe.FiltreDeBaseEnAjout = false;
            m_panelListe.FiltreDeBase        = filtreDeBase;
            m_panelListe.FiltreDeBaseEnAjout = bOldVal;

            //m_panelListe.ControlFiltreStandard = new CPanelFiltreDocumentGed();

            m_panelListe.InitFromListeObjets(
                m_listeObjets,
                typeof(CDossierSuivi),
                null, "");

            //S'il n'existe aucun type de dossier pour le type de l'élément, le bouton
            //AJoute est masqué.
            CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CTypeDossierSuivi));

            if (m_objetForSuivi != null)
            {
                liste.Filtre = new CFiltreData(CTypeDossierSuivi.c_champTypeSuivi + "=@1",
                                               m_objetForSuivi.GetType().ToString());
            }
            else
            {
                liste.Filtre = new CFiltreData(CTypeDossierSuivi.c_champTypeSuivi + "=@1",
                                               "");
            }
            m_panelListe.BoutonAjouterVisible = liste.Count > 0 && m_panelListe.BoutonAjouterVisible;

            m_panelListe.RemplirGrille();
            if (m_objetForSuivi == null)
            {
                m_lnkElement.Visible = false;
            }
            else
            {
                m_lnkElement.Visible = true;
                m_lnkElement.Text    = m_objetForSuivi.DescriptionElement;
            }
        }
示例#12
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);
        }