Esempio n. 1
0
        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);
        }
Esempio n. 4
0
        //--------------------------------------------------------------------------
        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;
             }
         }
     }
 }
Esempio n. 12
0
        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);
        }