Ejemplo n.º 1
0
        private void ConstruireDataTable(List <CAuditVersionObjetOperation> lstOperations)
        {
            m_dt = new DataTable();
            m_dt.Columns.Add("Type opération", typeof(CTypeOperationSurObjet));
            m_dt.Columns.Add("Champ", typeof(IChampPourVersion));
            m_dt.Columns.Add("Type donnée", typeof(Type));
            m_dt.Columns.Add("Valeur Source", typeof(IValeurCAVOO));
            m_dt.Columns.Add("Valeur Cible", typeof(IValeurCAVOO));

            foreach (CAuditVersionObjetOperation cavoo in lstOperations)
            {
                DataRow dr = m_dt.NewRow();
                dr[m_dt.Columns[0]] = cavoo.TypeOperation;
                if (cavoo.Champ != null)
                {
                    dr[m_dt.Columns[1]] = cavoo.Champ;
                    dr[m_dt.Columns[2]] = CActivatorSurChaine.GetType(cavoo.TypeValeurString);
                    dr[m_dt.Columns[3]] = new CValeurCAVOO(cavoo, EOrigineVersion.Source);
                    dr[m_dt.Columns[4]] = new CValeurCAVOO(cavoo, EOrigineVersion.Cible);
                }
                else
                {
                    string strDescrip = cavoo.VersionObjet.Description;
                    dr[m_dt.Columns[2]] = cavoo.TypeEntite;
                    if (CUtilAChampID.Contexte == null)
                    {
                        CUtilAChampID.Contexte = cavoo.ContexteDonnee;
                    }

                    int             nColonne = -1;
                    EOrigineVersion origine  = EOrigineVersion.Cible;
                    if (cavoo.TypeOperation.Code == CTypeOperationSurObjet.TypeOperation.Suppression)
                    {
                        origine  = EOrigineVersion.Source;
                        nColonne = 3;
                    }
                    else
                    {
                        origine  = EOrigineVersion.Cible;
                        nColonne = 4;
                    }

                    if (origine == EOrigineVersion.Source && cavoo.ValeurSource != null ||
                        origine == EOrigineVersion.Cible && cavoo.ValeurCible != null)
                    {
                        dr[m_dt.Columns[nColonne]] = new CValeurCAVOO(cavoo, origine);
                    }
                    else
                    {
                        int                      nIdEntite = cavoo.VersionObjet.IdObjetCible.HasValue ? cavoo.VersionObjet.IdObjetCible.Value : cavoo.VersionObjet.IdObjetSource.Value;
                        Type                     tpEntite  = cavoo.VersionObjet.TypeElement;
                        CFiltreData              filtre    = new CFiltreData(CUtilAChampID.GetChampID(tpEntite) + " =@1", nIdEntite);
                        CListeObjetsDonnees      lstObj    = new CListeObjetsDonnees(cavoo.ContexteDonnee, tpEntite, filtre);
                        CObjetDonneeAIdNumerique obj       = null;
                        if (lstObj.Count == 1)
                        {
                            obj = (CObjetDonneeAIdNumerique)lstObj[0];
                        }
                        dr[m_dt.Columns[nColonne]] = new CValeurCAVOOEntite(strDescrip, nIdEntite, cavoo.TypeEntite, obj);
                    }
                }

                m_dt.Rows.Add(dr);
                m_dt.Rows[m_dt.Rows.Count - 1].AcceptChanges();
            }

            m_dgvViewer.LectureSeule = false;
            Bind();
        }
        public void Init(CControlListeOperationsSurCAVO.CValeurCAVOO valeurCAVOO)
        {
            m_origine         = valeurCAVOO.Origine;
            m_strLigneCible   = valeurCAVOO.CAVOO.ValChampCibleString;
            m_strLigneOrigine = valeurCAVOO.CAVOO.ValChampSourceString;
            byte[] byteOfTb = null;

            if (valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees != null &&
                valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees.Length > 0)
            {
                byteOfTb = valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees;
            }
            else
            {
                byteOfTb = valeurCAVOO.CAVOO.ValChampSourceBlob.Donnees;
            }

            m_dt = CUtilADataTable.UnserializeDataTable(byteOfTb);

            string strLigneConcernee = m_origine == EOrigineVersion.Cible ? m_strLigneCible: m_strLigneOrigine;
            bool   bNull             = strLigneConcernee == "@NULL";

            if (bNull)
            {
                m_dgv.DataSource       = null;
                m_dgv.ContextMenuStrip = null;
                return;
            }
            string[] datas = null;
            if (!bNull)
            {
                datas = strLigneConcernee.Split('|');
            }

            DataRow dr = m_dt.NewRow();

            int nCpt = 0;

            foreach (DataColumn dc in m_dt.Columns)
            {
                if (nCpt >= datas.Length)
                {
                    break;
                }
                if (dc.ColumnName == "ID")
                {
                    dr[dc] = 0;
                    continue;
                }
                if (!bNull)
                {
                    if (datas[nCpt] == "@NULL")
                    {
                        dr[dc] = DBNull.Value;
                    }
                    else
                    {
                        if (dc.DataType == typeof(DateTime))
                        {
                            dr[dc] = (DateTime)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(DateTime));
                        }
                        else if (dc.DataType == typeof(int))
                        {
                            dr[dc] = (int)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(int));
                        }
                        else if (dc.DataType == typeof(bool))
                        {
                            dr[dc] = (bool)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(bool));
                        }
                        else if (dc.DataType == typeof(double))
                        {
                            dr[dc] = (double)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(double));
                        }
                        else
                        {
                            dr[dc] = datas[nCpt];
                        }
                    }
                }
                else
                {
                    dc.AllowDBNull = true;
                    dr[dc]         = DBNull.Value;
                }
                nCpt++;
            }
            m_dt.Rows.Add(dr);
            m_dgv.DataSource         = m_dt;
            m_dgv.Columns[0].Visible = false;


            m_dgv.CellFormatting += new DataGridViewCellFormattingEventHandler(m_dgv_CellFormatting);

            m_dgv.ColumnWidthChanged  += new DataGridViewColumnEventHandler(m_dgv_ColumnWidthChanged);
            m_dgv.AutoSizeColumnsMode  = DataGridViewAutoSizeColumnsMode.Fill;
            m_dgv.AllowUserToAddRows   = false;
            m_dgv.ColumnHeadersVisible = false;
            m_dgv.RowHeadersVisible    = true;
            m_dgv.RowHeadersWidth      = 10;
            m_dgv.ReadOnly             = true;

            ActualiserTextMenu();
            //m_dgv.ColumnHeadersVisible = false;

            //if (diffTable.CreationTable)
            //{
            //}
            //else if (diffTable.ChangementStructureTable)
            //{
            //}
            //else if (diffTable.ChangementClePrimaire)
            //{
            //}
            //else
            //{
            //    //Récupération de la ligne concernée

            //}
        }
Ejemplo n.º 3
0
 public CValeurCAVOO(CAuditVersionObjetOperation cavoo, EOrigineVersion origine)
 {
     m_valeur  = origine == EOrigineVersion.Cible ? cavoo.ValeurCible : cavoo.ValeurSource;
     m_origine = origine;
     m_cavoo   = cavoo;
 }