Exemplo n.º 1
0
 override public void FinalPass()
 {
     if (_Query != null)                                 // query must be resolved before fields
     {
         _Query.FinalPass();
     }
     if (_Fields != null)
     {
         _Fields.FinalPass();
     }
     if (_Filters != null)
     {
         _Filters.FinalPass();
     }
     return;
 }
Exemplo n.º 2
0
        // Handle parsing of function in final pass
        override public void FinalPass()
        {
            base.FinalPass();

            if (this is Table)
            {   // Grids don't have any data responsibilities
                Table t = this as Table;
                if (t.IsGrid)
                {
                    return;
                }
            }

            // DataRegions aren't allowed in PageHeader or PageFooter;
            if (this.InPageHeaderOrFooter())
            {
                OwnerReport.rl.LogError(8, String.Format("The DataRegion '{0}' is not allowed in a PageHeader or PageFooter", this.Name == null? "unknown": Name.Nm));
            }

            ResolveNestedDataRegions();

            if (_ParentDataRegion != null)                      // when nested we use the dataset of the parent
            {
                _DataSetDefn = _ParentDataRegion.DataSetDefn;
            }
            else if (_DataSetName != null)
            {
                if (OwnerReport.DataSetsDefn != null)
                {
                    _DataSetDefn = (DataSetDefn)OwnerReport.DataSetsDefn.Items[_DataSetName];
                }
                if (_DataSetDefn == null)
                {
                    OwnerReport.rl.LogError(8, String.Format("DataSetName '{0}' not specified in DataSets list.", _DataSetName));
                }
            }
            else
            {                           // No name but maybe we can default to a single Dataset
                if (_DataSetDefn == null && OwnerReport.DataSetsDefn != null &&
                    OwnerReport.DataSetsDefn.Items.Count == 1)
                {
                    foreach (DataSetDefn d in OwnerReport.DataSetsDefn.Items.Values)
                    {
                        _DataSetDefn = d;
                        break;                          // since there is only 1 this will obtain it
                    }
                }
                if (_DataSetDefn == null)
                {
                    OwnerReport.rl.LogError(8, string.Format("{0} must specify a DataSetName.", this.Name == null? "DataRegions": this.Name.Nm));
                }
            }

            if (_NoRows != null)
            {
                _NoRows.FinalPass();
            }
            if (_Filters != null)
            {
                _Filters.FinalPass();
            }

            return;
        }