public void Init(CODEQTableFromBase obj) { m_tableFromBase = obj; if (m_tableFromBase.TableDefinition != null) { m_lblSource.Text = m_tableFromBase.TableDefinition.TableName; } else { m_lblSource.Text = "?"; } m_txtNomTable.Text = m_tableFromBase.NomFinal; m_chkUseCache.Checked = m_tableFromBase.UseCache; FillListeColonnes(); FillListeFormulesNommees(); if (m_controleOptions != null) { m_pageOptions.Control = null; m_controleOptions.Dispose(); } m_controleOptions = null; m_controleOptions = CAllocateurControleOptionTableDefinition.GetControleOptions(obj.TableDefinition); if (m_controleOptions == null) { if (m_tabControl.TabPages.Contains(m_pageOptions)) { m_tabControl.TabPages.Remove(m_pageOptions); } } else { if (!m_tabControl.TabPages.Contains(m_pageOptions)) { m_tabControl.TabPages.Add(m_pageOptions); } m_pageOptions.Control = (Control)m_controleOptions; m_controleOptions.FillFromTable(m_tableFromBase.TableDefinition); } CCAMLQuery query = obj.CAMLQuery; if (query == null) { query = new CCAMLQuery(); } IEnumerable <CCAMLItemField> fields = null; ITableDefinitionRequetableCAML tableCAML = obj.TableDefinition as ITableDefinitionRequetableCAML; if (tableCAML != null) { fields = tableCAML.CAMLFields; } else { if (obj.TableDefinition != null) { fields = obj.CAMLFields; } else { fields = new List <CCAMLItemField>(); } } m_panelCAML.Init(m_tableFromBase.Query, query, fields); m_panelPostFilter.Init(obj); }
//------------------------------------------------------- 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); }