Beispiel #1
0
 public void Init(CChampCustomPourVersion champ)
 {
     m_champ    = champ;
     m_lnk.Text = I.T("Custom field |30215") + m_champ.NomConvivial;
 }
        //---------------------------------------------
        private void ShowProprietes(CObjetDonneeAIdNumerique objet)
        {
            if (objet == null)
            {
                m_grilleProprietes.DataSource = null;
                return;
            }

            DataTable table = new DataTable();

            m_strColChamp            = I.T("Field|120");
            m_strColValeurHistorique = I.T("History|121");
            m_strColValeurCourante   = I.T("Current|122");


            DataColumn col = new DataColumn(m_strColChecked, typeof(bool));

            col.Caption = "";
            table.Columns.Add(col);

            table.Columns.Add(m_strColChamp);
            if (m_version.TypeVersion.Code != CTypeVersion.TypeVersion.Previsionnelle)
            {
                table.Columns.Add(m_strColValeurHistorique);
            }
            table.Columns.Add(m_strColValeurCourante);
            if (m_version.TypeVersion.Code == CTypeVersion.TypeVersion.Previsionnelle)
            {
                m_strColValeurHistorique = I.T("Version|123");
                table.Columns.Add(m_strColValeurHistorique);
            }
            table.Columns.Add(m_strColObjetHistorique, typeof(IChampPourVersion));

            CValeursHistorique valeurs = GetValeursHistorique(objet);

            m_valeursAffichees = valeurs;
            m_objetAffiche     = objet;
            CStructureTable structure = CStructureTable.GetStructure(objet.GetType());

            foreach (CInfoChampTable champ in structure.Champs)
            {
                if (champ.Propriete != "")
                {
                    DataRow row = table.NewRow();
                    row[m_strColChecked]         = false;
                    row[m_strColChamp]           = champ.NomConvivial;
                    row[m_strColObjetHistorique] = DBNull.Value;

                    if (champ.TypeDonnee == typeof(CDonneeBinaireInRow))
                    {
                        CDonneeBinaireInRow donnee = new CDonneeBinaireInRow(objet.ContexteDonnee.IdSession, objet.Row.Row, champ.NomChamp);
                        row[m_strColValeurCourante] = donnee.Donnees;
                    }
                    else
                    {
                        row[m_strColValeurCourante] = objet.Row[champ.NomChamp];
                    }

                    CChampPourVersionInDb champVersion = new CChampPourVersionInDb(champ.NomChamp, champ.NomConvivial);
                    if (valeurs.ContainsKey(champVersion))
                    {
                        row[m_strColObjetHistorique] = champVersion;
                        object val = valeurs[champVersion];
                        if (val == null)
                        {
                            row[m_strColValeurHistorique] = DBNull.Value;
                        }
                        else
                        {
                            row[m_strColValeurHistorique] = val.ToString();
                        }
                    }
                    else
                    {
                        row[m_strColValeurHistorique] = objet.Row[champ.NomChamp];
                    }
                    table.Rows.Add(row);
                }
            }

            //Champs custom
            if (objet is IElementAChamps)
            {
                Dictionary <CChampCustom, bool> lstChamps = new Dictionary <CChampCustom, bool>();
                foreach (IDefinisseurChampCustom definisseur in ((IElementAChamps)objet).DefinisseursDeChamps)
                {
                    foreach (CChampCustom champ in definisseur.TousLesChampsAssocies)
                    {
                        if (champ.TypeDonneeChamp.TypeDonnee != TypeDonnee.tObjetDonneeAIdNumeriqueAuto)
                        {
                            lstChamps[champ] = true;
                        }
                    }
                }
                foreach (CChampCustom champCustom in lstChamps.Keys)
                {
                    DataRow row = table.NewRow();
                    row[m_strColChecked]         = false;
                    row[m_strColChamp]           = champCustom.LibelleConvivial;
                    row[m_strColObjetHistorique] = DBNull.Value;
                    row[m_strColValeurCourante]  = ((IElementAChamps)objet).GetValeurChamp(champCustom.Id);
                    CChampCustomPourVersion chVersion = new CChampCustomPourVersion(champCustom);
                    if (valeurs.ContainsKey(chVersion))
                    {
                        row[m_strColObjetHistorique] = chVersion;
                        object val = valeurs[chVersion];
                        if (val == null)
                        {
                            row[m_strColValeurHistorique] = DBNull.Value;
                        }
                        else
                        {
                            row[m_strColValeurHistorique] = val.ToString();
                        }
                    }
                    else
                    {
                        row[m_strColValeurHistorique] = row[m_strColValeurCourante];
                    }
                    table.Rows.Add(row);
                }
            }
            table.DefaultView.Sort              = m_strColChamp;
            m_grilleProprietes.DataSource       = table;
            m_grilleProprietes.ReadOnly         = false;
            m_grilleProprietes.Columns[0].Width = 32;
            foreach (DataGridViewColumn colTmp in m_grilleProprietes.Columns)
            {
                colTmp.ReadOnly = true;
            }
            m_grilleProprietes.Columns[0].ReadOnly = false;
            if (!m_bCanRestore)
            {
                m_grilleProprietes.Columns[0].Visible = false;
            }
            m_grilleProprietes.Columns[m_grilleProprietes.Columns.Count - 1].Visible = false;
        }