private void AddCustomTableToDS(DataRow customRow, string paramname, bool IsAlias) { string parenttable = customRow["tablename"].ToString(); string RealTable = parenttable; //if (DS.Tables[parenttable] != null && DS.Tables[parenttable + AliasCount.ToString()] != null) return; // Esci se la tabella è già presente nel DS //Aggiunge il nuovo DataTable se non c'è già if (DS.Tables[parenttable] == null || IsAlias) { DataTable T = myDA.CreateTableByName(parenttable, null); if (IsAlias) { string AliasTable = parenttable + AliasCount; T.TableName = AliasTable; parenttable = AliasTable; DataAccess.SetTableForReading(T, RealTable); } if (DS.Tables.Contains(T.TableName)) { T = DS.Tables[T.TableName]; } else { DS.Tables.Add(T); } string relatedcolname = customRow["relationfield"].ToString(); DataColumn ParentCol = T.Columns[relatedcolname]; DataColumn ChildCol = myPrymaryTable.Columns[paramname]; string relname = parenttable + myPrymaryTable.TableName; if (DS.Relations[relname] == null) { DS.Relations.Add(relname, ParentCol, ChildCol, false); } } DataTable ParentTable = DS.Tables[parenttable]; string Filter = customRow["filter"].ToString().Trim(); if (Filter != "") { Filter = myDA.Compile(Filter, true); GetData.SetStaticFilter(ParentTable, Filter); } string Extra = customRow["extraparameter"].ToString(); if (Extra != "") { Extra = myDA.Compile(Extra, true); ParentTable.ExtendedProperties[MetaData.ExtraParams] = Extra; } //Aggiunge filtro su esercizio se chiave primaria contiene // un campo di nome esercizio if (QueryCreator.IsPrimaryKey(ParentTable, "ayear")) { GetData.SetStaticFilter(ParentTable, "(ayear='" + Meta.GetSys("esercizio").ToString() + "')"); } }
private bool AddTableToDS(DataRow Param, bool IsAlias) { string paramname = Param["paramname"].ToString(); string datasourceName = Param["datasource"].ToString(); string RealTable = datasourceName; string CodeFieldName = Param["valuemember"].ToString(); //Aggiunge il nuovo DataTable se non c'è già oppure se è un alias if (DS.Tables[datasourceName] == null || IsAlias) { DataTable T = myDA.CreateTableByName(datasourceName, null); if (IsAlias) { string AliasTable = datasourceName + AliasCount; T.TableName = AliasTable; datasourceName = AliasTable; DataAccess.SetTableForReading(T, RealTable); } if (DS.Tables.Contains(T.TableName)) { T = DS.Tables[T.TableName]; } else { DS.Tables.Add(T); } if (T.Columns[CodeFieldName] == null) { return(false); } if (myPrymaryTable.Columns[paramname] == null) { return(false); } //Add datasource->PrimaryTable Relation DataColumn ParentCol = T.Columns[CodeFieldName]; DataColumn ChildCol = myPrymaryTable.Columns[paramname]; string relname = datasourceName + myPrymaryTable.TableName; if (DS.Relations[relname] == null) { DS.Relations.Add(relname, ParentCol, ChildCol, false); } } //Per i parametri che hanno il campo filter avvalorato e che hanno il iscombobox = 'S' //nella tabella reportparameter, imposto un filtro statico sulla tabella del dataset DataTable datasource = DS.Tables[datasourceName]; string Filter = Param["filter"].ToString().Trim(); if (Filter != "") { Filter = myDA.Compile(Filter, true); GetData.SetStaticFilter(datasource, Filter); } if (datasourceName.ToLower().IndexOf("level") >= 0) { if (datasource.Columns["nlevel"] != null) { GetData.SetSorting(datasource, "nlevel"); if (Filter != "") { GetData.CacheTable(datasource, Filter, "nlevel", true); } else { GetData.CacheTable(datasource, null, "nlevel", true); } } } //Aggiunge filtro su esercizio se chiave primaria contiene // un campo di nome esercizio if ((Filter == "") && (QueryCreator.IsPrimaryKey(datasource, "ayear"))) { GetData.SetStaticFilter(datasource, "(ayear='" + Meta.GetSys("esercizio").ToString() + "')"); } return(true); }