public CResultAErreur SetValue(object objet, string strPropriete, object valeur) { CResultAErreur result = CResultAErreur.True; if (!CInterpreteurTextePropriete.SetValue(objet, strPropriete, valeur)) { result.EmpileErreur(I.T("Error while affecting value|20003")); } return(result); }
private void m_btnOk_Click(object sender, System.EventArgs e) { int nIndice = m_numUpStart.IntValue; int nPas = m_numUpPas.IntValue; foreach (ListViewItem item in m_wndListeEntites.Items) { CInterpreteurTextePropriete.SetValue( item.Tag, m_strProprieteOrdre, nIndice); nIndice += nPas; } DialogResult = DialogResult.OK; Close(); }
//------------------------------------------------------------------- public void ApplyModifs() { if (LockEdition) { return; } foreach (ListViewItem item in m_listView.Items) { CObjetDonneeAIdNumeriqueAuto objet = (CObjetDonneeAIdNumeriqueAuto)item.Tag; bool bCreate = item.Checked; if (ExclusionParException) { bCreate = !bCreate; } if (bCreate) { CObjetDonnee relation = (CObjetDonnee)m_hashtableObjets[objet]; if (relation == null) { relation = (CObjetDonnee)Activator.CreateInstance(m_listeRelationsSelectionnees.TypeObjets, new object[] { m_contexte }); relation.CreateNewInCurrentContexte(null); CInterpreteurTextePropriete.SetValue(relation, m_strPropObjetConcerne, m_objetConcerne); CInterpreteurTextePropriete.SetValue(relation, m_strProprieteRetournantObjetSecondaire, objet); m_hashtableObjets[objet] = relation; } if (OnValideRelation != null) { object data = GetDataAssocie(objet); if (OnSelectionChanged != null) { OnSelectionChanged(objet, data); } data = GetDataAssocie(objet); OnValideRelation(objet, relation, ref data); SetDataAssocie(objet, data); } } else { if (m_hashtableObjets[objet] != null) { ((CObjetDonnee)m_hashtableObjets[objet]).Delete(); m_hashtableObjets[objet] = null; } } } }
/// /////////////////////////////////////////////////////// /// <summary> /// Passe la cellule en édition grâce au contrôle correspondant /// </summary> protected override void Edit( CurrencyManager cur, int nLigne, Rectangle bounds, bool bReadOnly, string strValue, bool bCellIsVisible) { if (m_control == null) { return; } if (this.DataGridTableStyle.DataGrid.ReadOnly) { m_control.Hide(); return; } m_bEnEdition = true; try { object valeur = GetColumnValueAtRow(cur, nLigne); m_control.Parent = this.DataGridTableStyle.DataGrid; m_control.Bounds = bounds; if (BackColor.A == 255) { m_control.BackColor = BackColor; } else { m_control.BackColor = this.DataGridTableStyle.DataGrid.BackColor; } if (ForeColor.A == 255) { m_control.ForeColor = ForeColor; } else { m_control.ForeColor = this.DataGridTableStyle.DataGrid.ForeColor; } if (m_font != null) { m_control.Font = Font; } m_control.Show(); try { CInterpreteurTextePropriete.SetValue(m_control, m_strProprieteControl, valeur); } catch { try { //Tente en texte ! CInterpreteurTextePropriete.SetValue(m_control, m_strProprieteControl, GetString(cur.Current, valeur)); } catch { //Rien à faire, on n'y arrive pas. Tant pis } } m_control.Focus(); //Définit le controle qui doit éditer la valeur de la cellule ColumnStartedEditing(m_control); } catch {} }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); // Evalue la formule de l'entité destination result = ExpressionEntiteDestination.Eval(contexteEval); if (!result) { result.EmpileErreur(I.T("Error during @1 formula evaluation|216", ExpressionEntiteDestination.ToString())); return(result); } CObjetDonneeAIdNumeriqueAuto objetDestination = (CObjetDonneeAIdNumeriqueAuto)result.Data; // Evalue la formule de l'entité source result = ExpressionEntiteSource.Eval(contexteEval); if (!result) { result.EmpileErreur(I.T("Error during @1 formula evaluation|216", ExpressionEntiteSource.ToString())); return(result); } CObjetDonneeAIdNumeriqueAuto objetSource = (CObjetDonneeAIdNumeriqueAuto)result.Data; if (m_bCopieComplete) { //Copie toutes les propriétés, sauf les champs if (objetSource == null || objetDestination == null) { return(result); } Type tp = objetDestination.GetType(); DataTable table = objetDestination.Row.Table; if (table == null) { return(result); } List <string> keys = new List <string>(); foreach (DataColumn col in table.PrimaryKey) { keys.Add(col.ColumnName); } objetDestination.ContexteDonnee.CopyRow(objetSource.Row, objetDestination.Row, keys.ToArray()); IElementAChamps eltChampsDest = objetDestination as IElementAChamps; IElementAChamps eltChampsSource = objetSource as IElementAChamps; if (eltChampsDest == null || eltChampsSource == null) { return(result); } foreach (CRelationElementAChamp_ChampCustom relation in eltChampsSource.RelationsChampsCustom) { eltChampsDest.SetValeurChamp(relation.ChampCustom, relation.Valeur); } } else { // Faire la copie de l'objet for (int i = 0; i < m_lstProprietesDynamiquesACopier.Length; i++) { CDefinitionProprieteDynamique definitionPropriete = m_lstProprietesDynamiquesACopier[i]; // Si c'est un champs custom if (definitionPropriete is CDefinitionProprieteDynamiqueChampCustom) { if (!(objetSource is IElementAChamps)) { result.EmpileErreur(I.T("@1 : Incorrect custom field of source object|298", definitionPropriete.Nom)); return(result); } if (!(objetDestination is IElementAChamps)) { result.EmpileErreur(I.T("@1 : Incorrect custom field of destination object|299", definitionPropriete.Nom)); return(result); } // Get la valeur du champ custom de l'objet source object valeurChamp = ((IElementAChamps)objetSource).GetValeurChamp(((CDefinitionProprieteDynamiqueChampCustom)definitionPropriete).DbKeyChamp.StringValue); // Set la valeur du champ custom de l'objet destination result = ((IElementAChamps)objetDestination).SetValeurChamp( ((CDefinitionProprieteDynamiqueChampCustom)definitionPropriete).DbKeyChamp.StringValue, valeurChamp); } // Si c'est un champ normal de la base else { string strProp = definitionPropriete.NomProprieteSansCleTypeChamp; // Get la valeur de propriété de l'objet source object valeurProp = CInterpreteurTextePropriete.GetValue(objetSource, strProp); // Set la valeut de propriété de l'objet destination if (!CInterpreteurTextePropriete.SetValue(objetDestination, strProp, valeurProp)) { result.EmpileErreur(I.T("Property @1 : Failed to set the value|300", strProp)); return(result); } } } } return(result); }