コード例 #1
0
        //------------------------------------------------------------
        public DataTable GetTable(ITableDefinition tableDef)
        {
            if (tableDef == null)
            {
                return(null);
            }
            CEasyQuerySource source = GetSourceFromId(tableDef.SourceId);

            if (source != null)
            {
                return(source.GetTable(tableDef));
            }
            return(null);
        }
コード例 #2
0
        //----------------------------------
        public CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            int nNb = m_dicSources.Count;

            serializer.TraiteInt(ref nNb);
            switch (serializer.Mode)
            {
            case ModeSerialisation.Ecriture:
                foreach (KeyValuePair <string, CEasyQuerySource> kv in m_dicSources)
                {
                    string           strId  = kv.Key;
                    CEasyQuerySource source = kv.Value;
                    result = serializer.TraiteObject <CEasyQuerySource>(ref source);
                    if (!result)
                    {
                        return(result);
                    }
                }
                break;

            case ModeSerialisation.Lecture:
                Dictionary <string, CEasyQuerySource> sources = new Dictionary <string, CEasyQuerySource>();
                for (int n = 0; n < nNb; n++)
                {
                    CEasyQuerySource source = null;
                    result = serializer.TraiteObject <CEasyQuerySource>(ref source);
                    if (!result)
                    {
                        return(result);
                    }
                    sources[source.SourceId] = source;
                }
                m_dicSources = sources;
                break;
            }
            return(result);
        }
コード例 #3
0
 //------------------------------------------------
 public static void Autoexec()
 {
     CEasyQuerySource.RegisterImageForFolder(c_strImageKey, Resource1.table16);
 }
コード例 #4
0
 //------------------------------------------------
 public CTableDefinitionBase(CEasyQuerySource laBase)
 {
     m_base = laBase;
 }
コード例 #5
0
 //------------------------------------------------
 public abstract CResultAErreur GetDatas(CEasyQuerySource source, params string[] strIdsColonnesSource);
コード例 #6
0
 public string GetValue(CEasyQuerySource source)
 {
     return(m_strValeur);
 }
コード例 #7
0
 //--------------------------------------------------
 public CEasyQuerySourceFolder(string strName, CEasyQuerySource source)
 {
     m_strId   = Guid.NewGuid().ToString();
     m_strName = strName;
     m_source  = source;
 }
コード例 #8
0
ファイル: CEasyQuery.cs プロジェクト: ykebaili/sc2idlls
 //---------------------------------------------------
 public CEasyQuery(CEasyQuerySource source)
 {
     Size = new Size(3000, 3000);
     m_listeSources.AddSource(source);
 }
コード例 #9
0
ファイル: CEasyQuery.cs プロジェクト: ykebaili/sc2idlls
 //---------------------------------------------------
 public void RemoveSource(CEasyQuerySource source)
 {
     m_listeSources.RemoveSource(source);
 }
コード例 #10
0
ファイル: CEasyQuery.cs プロジェクト: ykebaili/sc2idlls
 //---------------------------------------------------
 public void AddSource(CEasyQuerySource source)
 {
     m_listeSources.AddSource(source);
 }
コード例 #11
0
        //-------------------------------------------------------
        protected override CResultAErreur GetDatasHorsCalculees(CListeQuerySource sources)
        {
            CEasyQuery     query  = Query;
            CResultAErreur result = CResultAErreur.True;

            if (result && TableDefinition == null)
            {
                result.EmpileErreur(I.T("Table object must be specified |20001"));
            }
            if (query == null || sources == null)
            {
                result.EmpileErreur(I.T("Query needs a source to provide datas|20000"));
            }
            CEasyQuerySource source = sources.GetSourceFromId(TableDefinition.SourceId);

            if (source == null)
            {
                result.EmpileErreur(I.T("Query needs a source to provide datas|20000"));
            }


            if (result)
            {
                IEnumerable <string> lstCols = new List <string>();

                if (m_definitionTable != null && m_listeColonnes != null && m_listeColonnes.Count() != m_definitionTable.Columns.Count())
                {
                    lstCols = from c in m_listeColonnes where c is CColumnEQFromSource select((CColumnEQFromSource)c).IdColumnSource;
                }


                ITableDefinitionRequetableCAML tblCAML = TableDefinition as ITableDefinitionRequetableCAML;
                if (tblCAML != null && m_CAMLQuery != null)
                {
                    result = tblCAML.GetDatasWithCAML(source, Parent as CEasyQuery, m_CAMLQuery, lstCols.ToArray());
                }
                else
                {
                    result = TableDefinition.GetDatas(source, lstCols.ToArray());
                }

                if (result && result.Data is DataTable)
                {
                    DataTable table = result.Data as DataTable;
                    foreach (DataColumn col in new ArrayList(table.Columns))
                    {
                        IColumnDefinition  def   = TableDefinition.Columns.FirstOrDefault(c => c.ColumnName.ToUpper() == col.ColumnName.ToUpper());
                        IColumnDeEasyQuery laCol = null;
                        if (def == null || (laCol = GetColonneFor(def)) == null)
                        {
                            table.Columns.Remove(col);
                        }
                        else
                        {
                            col.ColumnName = laCol.ColumnName;
                            col.ExtendedProperties[CODEQBase.c_extPropColonneId] = laCol.Id;
                        }
                    }
                    if (tblCAML == null && m_CAMLQuery != null)
                    {
                        string strRowFilter = m_CAMLQuery.GetRowFilter(Parent as CEasyQuery);
                        if (strRowFilter.Length > 0)
                        {
                            HashSet <DataRow> rows = new HashSet <DataRow>();
                            foreach (DataRow row in table.Select(strRowFilter))
                            {
                                rows.Add(row);
                            }
                            foreach (DataRow row in new ArrayList(table.Rows))
                            {
                                if (!rows.Contains(row))
                                {
                                    table.Rows.Remove(row);
                                }
                            }
                            table.AcceptChanges();
                        }
                    }
                    //Vérifie et corrige le type des colonnes
                    foreach (CColumnEQFromSource col in Columns)
                    {
                        DataColumn colDeTable = table.Columns[col.ColumnName];
                        if (colDeTable != null && col.DataType != colDeTable.DataType)
                        {
                            col.DataType = colDeTable.DataType;
                        }
                    }
                }
            }
            if (!result)
            {
                result.EmpileErreur(I.T("Error on table @1|20002"));
            }
            return(result);
        }