//---------------------------------------------------------------------- public CFormNavigationGED(IObjetDonneeAIdNumerique objet) { // Cet appel est requis par le Concepteur Windows Form. InitializeComponent(); m_elementForGED = objet; }
public CFormListeDossierSuivi(IObjetDonneeAIdNumerique objet) : base(new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CDossierSuivi))) { m_objetForSuivi = objet; // Cet appel est requis par le Concepteur Windows Form. InitializeComponent(); }
//---------------------------------------------------------------------- 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); }
//------------------------------------------------------------------- //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); }
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(); }
//----------------------------------------------------------- private static void GetCreateurForObject(object obj, ref CCreateur2iFormulaireV2 createurCree) { IObjetDonneeAIdNumerique oai = obj as IObjetDonneeAIdNumerique; if (oai != null) { createurCree = new CCreateur2iFormulaireObjetDonnee(oai.ContexteDonnee.IdSession); } }
//------------------------------------------------------------------ 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); }
/// <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)); }
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(); }
//////////////////////////////////////////////////////////////////////// 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); }
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); }
//---------------------------------------------------- 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); }
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); }
//------------------------------------------------------------------------------ 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); }
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); }
/// /////////////////////////////////////////////////// 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; }
/// //////////////////////////////////////////////////////// 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; } } }
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); } } }
/// //////////////////////////////////////////////////////// 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); }
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; }
/// //////////////////////////////////////////////////////// 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); }
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); }
//------------------------------------------------------------------ public static CListeObjetsDonnees GetQuantitesAssociees(IObjetDonneeAIdNumerique objet) { CListeObjetsDonnees lst = GetRelationsSelections(objet); return(lst.GetDependances("Besoin")); }
//------------------------------------------------------------------ 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")); }
//------------------------------------------------------------------------------------------ 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); } }