private void m_menuNewVariableSelection_Click(object sender, EventArgs e) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(m_macro); if (EditeVariable(variable)) { m_macro.AddVariable(variable); RefillListeVariables(); } }
private void m_menuVariableSelection_Click(object sender, System.EventArgs e) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(m_filtre); if (CFormEditVariableDynamiqueSelectionObjetDonnee.EditeVariable(variable)) { m_filtre.AddVariable(variable); m_wndAide.RefillChamps(); } }
/////////////////////////////////////////////////////////////////////////////// public static bool Selectionne(CVariableDynamiqueSelectionObjetDonnee variable, ref object[] selection) { CFormSelectionFromVariableSelectionObjetDonnee form = new CFormSelectionFromVariableSelectionObjetDonnee(); form.Init(variable); bool bResult = form.ShowDialog() == DialogResult.OK; selection = form.m_selection; return(bResult); }
//-------------------------------------------------------------------------- private void m_menuVariableSelection_Click(object sender, EventArgs e) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(m_mapDatabaseGenerator); if (EditeVariable(variable)) { m_mapDatabaseGenerator.AddVariable(variable); RefillListeVariables(); } }
/// ///////////////////////////////////////////////////////////// private void m_menuVariableSelection_Click(object sender, System.EventArgs e) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(m_elementAVariables); if (CFormEditVariableDynamiqueSelectionObjetDonnee.EditeVariable(variable)) { m_elementAVariables.AddVariable(variable); FillListe(); } }
/// ////////////////////////////////////////////////// public static bool EditeVariable(CVariableDynamiqueSelectionObjetDonnee variable) { CFormEditVariableDynamiqueSelectionObjetDonnee form = new CFormEditVariableDynamiqueSelectionObjetDonnee(); form.Init(variable); bool bResult = form.ShowDialog() == DialogResult.OK; form.Dispose(); return(bResult); }
private void m_lnkTester_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(m_variable.ElementAVariables); CResultAErreur result = FillVariable(variable); if (!result) { CFormAlerte.Afficher(result); return; } object[] sels = null; CFormSelectionFromVariableSelectionObjetDonnee.Selectionne(variable, ref sels); }
/// <summary> /// ////////////////////////////////////////////////////////// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void m_btnOk_Click(object sender, System.EventArgs e) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(m_variable.ElementAVariables); CResultAErreur result = FillVariable(variable); if (!result) { CFormAlerte.Afficher(result); return; } FillVariable(m_variable); DialogResult = DialogResult.OK; Close(); }
/// ////////////////////////////////////////////////// private void Init(CVariableDynamiqueSelectionObjetDonnee variable) { m_wndAideFormule.FournisseurProprietes = new CFournisseurPropDynStd(true); m_variable = variable; //Clone le filtre m_filtreDynamique = (CFiltreDynamique)CCloner2iSerializable.Clone(m_variable.FiltreSelection); if (m_filtreDynamique == null) { m_filtreDynamique = new CFiltreDynamique(CSc2iWin32DataClient.ContexteCourant); } if (m_variable.FiltreSelection != null) { m_filtreDynamique.ElementAVariablesExterne = m_variable.FiltreSelection.ElementAVariablesExterne; } m_wndAideFormule.ObjetInterroge = m_filtreDynamique.TypeElements; m_txtValeurAffichee.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_panelFiltre.InitSansVariables(m_filtreDynamique); if (m_variable.ExpressionAffichee != null) { m_txtValeurAffichee.Text = m_variable.ExpressionAffichee.GetString(); } else { m_txtValeurAffichee.Text = ""; } if (m_variable.ExpressionRetournee != null) { m_txtValeurStockee.Text = m_variable.ExpressionRetournee.GetString(); } else { m_txtValeurStockee.Text = ""; } m_txtValeurStockee.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_textBoxReceiveFormules = m_txtValeurAffichee; m_txtValeurAffichee.BackColor = Color.LightGreen; m_chkCanBeNull.Checked = m_variable.CanBeNull; m_txtNullValue.Text = m_variable.TextNull; m_txtNullValue.Visible = m_chkCanBeNull.Checked; m_chkRechercheRapide.Checked = m_variable.UtiliserRechercheRapide; }
//-------------------------------------------------------- public void SetElementEdite(IElementAVariables element) { m_elementAVariables = element; AlloueControl(); if (m_elementAVariables != null && element != null) { object selVal = ((IElementAVariables)m_elementAVariables).GetValeurChamp(m_variable.IdVariable); try { CVariableDynamiqueSelectionObjetDonnee variableSel = m_variable as CVariableDynamiqueSelectionObjetDonnee; if (variableSel != null) { CReferenceObjetDonnee refObj = variableSel.GetObjetFromValeurRetournee(selVal); if (refObj != null) { selVal = refObj.GetObjet(CSc2iWin32DataClient.ContexteCourant); } /*try * { * CObjetDonneeAIdNumerique obj = Activator.CreateInstance(variableSel.FiltreSelection.TypeElements, * new object[] { CSc2iWin32DataClient.ContexteCourant }) as CObjetDonneeAIdNumerique; * if (obj != null && obj.ReadIfExists ( (int)selVal)) * selVal = obj; * } * catch * { * }*/ } if (m_control != null) { m_control.ElementSelectionne = (CObjetDonnee)selVal; } } catch { } } }
public void SetElementEdite(IElementAVariables element) { m_elementAVariables = element; AlloueCombo(); if (m_variable != null && element != null) { object valeur = element.GetValeurChamp(m_variable.IdVariable); if (m_combo is C2iComboBox) { if (valeur != null) { ((C2iComboBox)m_combo).SelectedValue = valeur; } else { ((C2iComboBox)m_combo).SelectedValue = ""; } object obj = ((C2iComboBox)m_combo).SelectedValue; } else if (m_combo is ISelectionneurElementListeObjetsDonnees) { CVariableDynamiqueSelectionObjetDonnee varSel = m_variable as CVariableDynamiqueSelectionObjetDonnee; if (varSel != null && !(valeur is CObjetDonnee)) { CReferenceObjetDonnee refObj = varSel.GetObjetFromValeurRetournee(valeur); if (refObj != null) { valeur = refObj.GetObjet(CSc2iWin32DataClient.ContexteCourant); } } if (valeur is CObjetDonnee || valeur == null) { ((ISelectionneurElementListeObjetsDonnees)m_combo).ElementSelectionne = (CObjetDonnee)valeur; } } } }
internal void CreateVariable(CObjetDonnee objet) { CVariableDynamiqueSelectionObjetDonnee variable = new CVariableDynamiqueSelectionObjetDonnee(Macro); if (objet != null) { variable.Nom = objet.DescriptionElement.Trim().Replace("[", "-").Replace("]", "-"); } else { variable.Nom = "V" + variable.IdVariable; } CFiltreDynamique filtre = new CFiltreDynamique(Macro, Macro.ContexteDonnee); filtre.TypeElements = TypeObjet; variable.FiltreSelection = filtre; variable.ExpressionRetournee = new C2iExpressionThis(TypeObjet); string strField = DescriptionFieldAttribute.GetDescriptionField(TypeObjet, "DescriptionElement"); if (strField != "") { CDefinitionProprieteDynamiqueDotNet def = new CDefinitionProprieteDynamiqueDotNet( strField, strField, new CTypeResultatExpression(typeof(string), false), false, true, ""); variable.ExpressionAffichee = new C2iExpressionChamp(def); } Macro.AddVariable(variable); Macro.SetInitialValue(variable, objet as CObjetDonneeAIdNumerique); m_strIdVariableAssociee = variable.IdVariable; CDefinitionProprieteDynamiqueVariableDynamique defSource = new CDefinitionProprieteDynamiqueVariableDynamique(variable); FormuleSelectionObjet = new C2iExpressionChamp(defSource); }
/////////////////////////////////////////////////////////////////////////////// private void Init(CVariableDynamiqueSelectionObjetDonnee variable) { m_variable = variable; }
//----------------------------------------------------------- public void AlloueCombo() { if (m_variable == null) { return; } Type typeElement = m_variable.TypeDonnee.TypeDotNetNatif; if (m_variable is CVariableDynamiqueSelectionObjetDonnee) { typeElement = ((CVariableDynamiqueSelectionObjetDonnee)m_variable).FiltreSelection.TypeElements; } //Combos hiérarchiques if (typeof(IObjetDonneeAutoReference).IsAssignableFrom(typeElement) && typeof(IObjetHierarchiqueACodeHierarchique).IsAssignableFrom(typeElement)) { try { if (!(m_combo is CComboBoxArbreObjetDonneesHierarchique) && m_combo != null) { m_combo.Visible = false; m_combo.Parent.Controls.Remove(m_combo); m_combo.Dispose(); m_combo = null; } CComboBoxArbreObjetDonneesHierarchique arbre; if (m_combo is CComboBoxArbreObjetDonneesHierarchique) { arbre = (CComboBoxArbreObjetDonneesHierarchique)m_combo; } else { arbre = new CComboBoxArbreObjetDonneesHierarchique(); arbre.ElementSelectionneChanged += new EventHandler(arbre_ElementSelectionneChanged); } CFiltreData filtre = null; Type tp = m_variable.TypeDonnee.TypeDotNetNatif; string strChamp = DescriptionFieldAttribute.GetDescriptionField(tp, "DescriptionElement", true); string strTextNull = ""; if (m_variable is CVariableDynamiqueSelectionObjetDonnee) { CVariableDynamiqueSelectionObjetDonnee varSel = (CVariableDynamiqueSelectionObjetDonnee)m_variable; tp = ((CVariableDynamiqueSelectionObjetDonnee)m_variable).FiltreSelection.TypeElements; CFiltreDynamique filtreDyn = varSel.FiltreSelection; filtre = GetFiltre(filtreDyn); strChamp = DescriptionFieldAttribute.GetDescriptionField(tp, "DescriptionElement", true); strTextNull = varSel.TextNull; } if (m_variable is CChampCustom) { CFiltreDynamique filtreDyn = ((CChampCustom)m_variable).FiltreObjetDonnee; filtre = GetFiltre(filtreDyn); } using (CContexteDonnee contexte = new CContexteDonnee(1, true, false)) { CObjetDonnee objet = (CObjetDonnee)Activator.CreateInstance(tp, new object[] { contexte }); arbre.Init(tp, ((IObjetDonneeAutoReference)objet).ProprieteListeFils, ((IObjetDonneeAutoReference)objet).ChampParent, strChamp, filtre, null ); if (strTextNull != "") { arbre.TextNull = strTextNull; } } m_combo = arbre; return; } catch { } } IList lst = null; lst = m_variable.Valeurs; if (m_variable is CChampCustom && ((CChampCustom)m_variable).TypeDonneeChamp.TypeDonnee == TypeDonnee.tObjetDonneeAIdNumeriqueAuto && lst is CListeObjetsDonnees) { CFiltreData filtre = ((CListeObjetsDonnees)lst).Filtre; CFiltreDynamique filtreDyn = ((CChampCustom)m_variable).FiltreObjetDonnee; if (filtreDyn != null) { filtre = GetFiltre(filtreDyn); } ((CListeObjetsDonnees)lst).Filtre = filtre; } else { lst = m_variable.Valeurs; } C2iComboBox combo = null; if (lst is CListeObjetsDonnees && ((CListeObjetsDonnees)lst).TypeObjets != typeof(CValeurChampCustom)) { CComboBoxListeObjetsDonnees cmbListe = null; if (m_combo is CComboBoxListeObjetsDonnees) { cmbListe = (CComboBoxListeObjetsDonnees)m_combo; } else { if (m_combo != null) { m_combo.Visible = false; m_combo.Parent.Controls.Remove(m_combo); m_combo.Dispose(); m_combo = null; } cmbListe = new CComboBoxListeObjetsDonnees(); cmbListe.SelectedValueChanged += new EventHandler(cmbListe_SelectedValueChanged); } cmbListe.NullAutorise = true; cmbListe.Init((CListeObjetsDonnees)lst, DescriptionFieldAttribute.GetDescriptionField(m_variable.TypeDonnee.TypeDotNetNatif, "DescriptionElement"), true); combo = cmbListe; } else { if (m_combo != null && m_combo.GetType() == typeof(C2iComboBox)) { combo = (C2iComboBox)m_combo; } else { if (m_combo != null) { m_combo.Visible = false; m_combo.Parent.Controls.Remove(m_combo); m_combo.Dispose(); m_combo = null; } combo = new C2iComboBox(); combo.SelectionChangeCommitted += new EventHandler(combo_SelectionChangeCommitted); } combo.DisplayMember = "Display"; combo.ValueMember = "Value"; combo.DataSource = lst; } combo.DropDownStyle = ComboBoxStyle.DropDownList; combo.Sorted = false; combo.IsLink = false; if (m_combo == null) { combo.CreateControl(); } m_combo = combo; }
/// ////////////////////////////////////////////////////////// private CResultAErreur FillVariable(CVariableDynamiqueSelectionObjetDonnee variable) { CResultAErreur result = CResultAErreur.True; CResultAErreur resultTmp = CResultAErreur.True; m_txtNomVariable.Text = m_txtNomVariable.Text.Trim(); if (m_txtNomVariable.Text == "") { result.EmpileErreur(I.T("Incorrect variable name|30030")); } resultTmp = m_filtreDynamique.VerifieIntegrite(); if (!resultTmp) { resultTmp.EmpileErreur(I.T("Error in the filter|30031")); result &= resultTmp; } C2iExpression expressionValeurAffichee = null; C2iExpression expressionValeurRetournee = null; if (m_filtreDynamique.TypeElements != null) { CContexteAnalyse2iExpression contexte = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(true), m_filtreDynamique.TypeElements); CAnalyseurSyntaxiqueExpression analyseur = new CAnalyseurSyntaxiqueExpression(contexte); resultTmp = analyseur.AnalyseChaine(m_txtValeurAffichee.Text); if (!resultTmp) { resultTmp.EmpileErreur(I.T("Error in displayed value formula|30032")); result &= resultTmp; } else { expressionValeurAffichee = (C2iExpression)resultTmp.Data; } resultTmp = analyseur.AnalyseChaine(m_txtValeurStockee.Text); if (!resultTmp) { resultTmp.EmpileErreur(I.T("Error in returned value formula|30033")); result &= resultTmp; } else { expressionValeurRetournee = (C2iExpression)resultTmp.Data; } } if (result) { variable.FiltreSelection = m_filtreDynamique; variable.ExpressionAffichee = expressionValeurAffichee; variable.ExpressionRetournee = expressionValeurRetournee; variable.Nom = m_txtNomVariable.Text; variable.Description = ""; variable.CanBeNull = m_chkCanBeNull.Checked; variable.TextNull = m_txtNullValue.Text; variable.UtiliserRechercheRapide = m_chkRechercheRapide.Checked; } return(result); }