Example #1
0
    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() + "')");
        }
    }
Example #2
0
    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);
    }