public string EvaluateString(Report rpt, Row row)
		{
			if (rpt == null || rpt.UserID == null)
				return Environment.UserName;
			else
				return rpt.UserID;
		}
		internal DynamicExpression(Report rpt, ReportLink p, string expr, Row row)
		{
			_Source=expr;
			_Expr = null;
            _rl = p;
            _Type = DoParse(rpt);
		}
		public int EvaluateInt32(Report rpt, Row row)
		{
			bool bSave=true;
			IEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return int.MinValue;

			Row startrow=null;
			foreach (Row r in re)
			{
				startrow = r;			// We just want the first row
				break;
			}

			int count;

			object currentValue = _Expr.Evaluate(rpt, row);
			int incr = currentValue == null? 0: 1;
			if (row == startrow)
			{
				// must be the start of a new group
				count = incr;
			}
			else
			{
				count = GetValue(rpt) + incr;
			}

			SetValue(rpt, count);
			return count;
		}
		public object Evaluate(Report rpt, Row row)
		{
			bool bSave=true;
			IEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return null;

			object v = GetValue(rpt);
			if (v == null)
			{
				object max_value=null;
				object current_value;

				foreach (Row r in re)
				{
					current_value = _Expr.Evaluate(rpt, r);
					if (current_value == null || (current_value is double && double.IsNaN((double)current_value)))
						continue;
					else if (max_value == null)
						max_value = current_value;
					else if (Filter.ApplyCompare(_tc, max_value, current_value) < 0)
						max_value = current_value;
				}
				v = max_value;
				if (bSave)
					SetValue(rpt, v);
			}
			return v;
		}
		public double EvaluateDouble(Report rpt, Row row)
		{
			bool bSave=true;
			IEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return double.NaN;

			ODouble v = GetValueDouble(rpt);
			if (v != null)
				return v.d;

			double sum=0;
			int count=0;
			double temp;
			foreach (Row r in re)
			{
				temp = _Expr.EvaluateDouble(rpt, r);
				if (temp.CompareTo(double.NaN) != 0)
				{
					sum += temp;
					count++;
				}
			}
			double result;
			if (count > 0)
				result = (sum/count);
			else
				result = double.NaN;

			if (bSave)
				SetValue(rpt, result);

			return result;
		}
		public string EvaluateString(Report rpt, Row row)
		{
			if (rpt == null || rpt.ClientLanguage == null)
				return CultureInfo.CurrentCulture.ThreeLetterISOLanguageName;
			else
				return rpt.ClientLanguage;
		}
		public object Evaluate(Report rpt, Row row)
		{
			object v = null;
			if (row == null)
				return null;
			bool bSave=true;
			RowEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return null;

			Row crow=null;
			bool bNext=false;
			foreach (Row r in re)
			{
				if (bNext)
				{
					crow = r;
					break;
				}
				if (r == row)
					bNext = true;
			}
			if (crow != null)
				v = _Expr.Evaluate(rpt, crow);
			return v;
		}
Example #8
0
		public double EvaluateDouble(Report rpt, Row row)
		{
			bool bSave=true;
			IEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return 0;

			int v = GetValue(rpt);
			if (v < 0)
			{
				object temp;
				int count=0;
				foreach (Row r in re)
				{
					temp = _Expr.Evaluate(rpt, r);
					if (temp != null)
					{
						count++;
					}
				}
				v = count;

				if (bSave)
					SetValue(rpt, v);
			}
			return (double) v;
		}
		internal float GetX2(Report rpt)
		{
			float x2=GetOffsetCalc(rpt)+LeftCalc(rpt);
			if (Width != null)
				x2 += Width.Points;
			return x2;
		}		
		public double EvaluateDouble(Report rpt, Row row)
		{
			bool bSave=true;
			RowEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return 0;

			int v = GetValue(rpt);
			if (v < 0)
			{
				object temp;
				int count = Math.Max(2, re.LastRow - re.FirstRow);
				Hashtable ht = new Hashtable(count);
				foreach (Row r in re)
				{
					temp = _Expr.Evaluate(rpt, r);
					if (temp != null)
					{
						object o = ht[temp];	// search for it
						if (o == null)			// if not found; add it to the hash table
						{
							ht.Add(temp, temp);
						}
					}
				}
				v = ht.Count;
				if (bSave)
					SetValue(rpt, v);
			}
			return (double) v;
		}
Example #11
0
        public byte[] GetFileBytes(Report report)
        {
            var pages = report.BuildPages();
            int width = (int)report.PageWidthPoints;
            int height = (int)report.PageHeightPoints;
            string filename = string.Format("gen-{0}.pdf", Guid.NewGuid());
			
            try
            {
                using (Cairo.PdfSurface pdf = new Cairo.PdfSurface(filename, width, height))
                {
                    using (Cairo.Context g = new Cairo.Context(pdf))
                    {
						
                        var render = new  fyiReporting.RdlGtkViewer.RenderCairo(g);
                        render.RunPages(pages);
                    }
                }
                byte[] bytes = File.ReadAllBytes(filename);
                return bytes;
				
            }
            finally
            {
                if (File.Exists(filename))
                {
                    File.Delete(filename);
                }
            }
        }
		internal void Save(Report rpt, System.IO.Stream stream, ImageFormat im)
		{
			if (_bm == null)
				Draw(rpt);
            _mf.Save(stream, im);
	//		_bm.Save(stream, im);
		}
		// Evaluate is for interpretation  (and is relatively slow)
		public object Evaluate(Report rpt, Row row)
		{
			double d = EvaluateDouble(rpt, row);
			if (d.CompareTo(double.NaN) == 0)
				return null;
			return (object) d;
		}
Example #14
0
        TextWriter tw; // where the output is going

        #endregion Fields

        #region Constructors

        public RenderXml(Report rep, IStreamGen sg)
        {
            r = rep;
            tw = sg.GetTextWriter();
            stkReportItem = new Stack();
            stkContainers = new Stack();
        }
		internal void CleanUp(Report rpt)		// closes any connections
		{
			foreach (DataSourceDefn ds in _Items.Values)
			{
				ds.CleanUp(rpt);
			}
		}
		public object Evaluate(Report rpt, Row row)
		{
			bool bSave=true;
			IEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return null;

			Row startrow=null;
			foreach (Row r in re)
			{
				startrow = r;			// We just want the first row
				break;
			}

			object v = GetValue(rpt);
			object current_value = _Expr.Evaluate(rpt, row);
			if (row == startrow)
			{}
			else
			{
				if (current_value == null)
					return v;
				else if (v == null)
				{}
				else if (Filter.ApplyCompare(_tc, v, current_value) > 0)
				{}
				else
					return v;
			}
			SetValue(rpt, current_value);
			return current_value;
		}
Example #17
0
        IStreamGen _sg; // stream generater

        #endregion Fields

        #region Constructors

        public RenderExcel(Report rep, IStreamGen sg)
        {
            r = rep;
            _sg = sg;					// We need this in future

            _Excel = new ExcelValet();
        }
		public double EvaluateDouble(Report rpt, Row row)
		{
			bool bSave=true;
			IEnumerable re = this.GetDataScope(rpt, row, out bSave);
			if (re == null)
				return double.NaN;

			Row startrow=null;
			foreach (Row r in re)
			{
				startrow = r;			// We just want the first row
				break;
			}
			double currentValue = _Expr.EvaluateDouble(rpt, row);
			WorkClass wc = GetValue(rpt);
			if (row == startrow)
			{
				// must be the start of a new group
				wc.Value = currentValue;
				wc.Count = 1;
			}
			else
			{
				wc.Value = ((double) wc.Value + currentValue);
				wc.Count++;
			}

			return (double) wc.Value / wc.Count;
		}
		// 
		public virtual object Evaluate(Report rpt, Row row)
		{
			if (row == null)
				return null;
			Field f;
			string field = _ArgExpr.EvaluateString(rpt, row);
			if (field == null)
				return null;
			f = _Fields[field] as Field;
			if (f == null)
				return null;

			object o;
			if (f.Value != null)
				o = f.Value.Evaluate(rpt, row);
			else
				o = row.Data[f.ColumnNumber];

			if (o == DBNull.Value)
				return null;

			if (f.RunType == TypeCode.String && o is char)	// work around; mono odbc driver confuses string and char
				o = Convert.ChangeType(o, TypeCode.String);
			
			return o;
		}
		internal void SupplyValues(Report rpt, out string[] displayValues, out object[] dataValues)
		{
			displayValues = new string[_Items.Count];
			dataValues = new object[_Items.Count];
			int index=0;
			// go thru the parameters extracting the data values
			foreach (ParameterValue pv in _Items)
			{
				if (pv.Value == null)
					dataValues[index] = null;
				else
					dataValues[index] = pv.Value.Evaluate(rpt, null);
				if (pv.Label == null)
				{	// if label is null use the data value; if not provided use ""
					if (dataValues[index] == null)
						displayValues[index] = "";
					else
						displayValues[index] = dataValues[index].ToString();
				}
				else
				{
					displayValues[index] = pv.Label.EvaluateString(rpt, null);
					if (displayValues[index] == null)
						displayValues[index] = "";
				}
				index++;
			}
			return;
		}
Example #21
0
		internal System.Drawing.Image Image(Report rpt)
		{
			if (_bm == null)
				Draw(rpt);

			return _bm;
		}
Example #22
0
        public ProcessReport(Report rep)
        {
            if (rep.rl.MaxSeverity > 4)
                throw new Exception("Report has errors.  Cannot be processed.");

            r = rep;
            _sg = null;
        }
Example #23
0
        public ProcessReport(Report rep, IStreamGen sg)
        {
            if (rep.rl.MaxSeverity > 4)
                throw new Exception("Report has errors.  Cannot be processed.");

            r = rep;
            _sg = sg;
        }
Example #24
0
		public ProcessReport(Report rep)
		{
			if (rep.rl.MaxSeverity > 4)
				throw new Exception(Strings.ProcessReport_Error_ReportHasErrors);

			r = rep;
			_sg = null;
		}
Example #25
0
File: Pages.cs Project: mnisl/OD
		float _PageWidth;				// default width for all pages
	
		public Pages(Report r)
		{
			_report = r;
            _pages = new List<Page>();	// array of Page objects

			_bm = new Bitmap(10, 10);	// create a small bitmap to base our graphics
			_g = Graphics.FromImage(_bm); 
		}
		float _PageWidth;				// default width for all pages
	
		public Pages(Report r)
		{
			_report = r;
            _pages = new List<Page>();	// array of Page objects

			_bm = Bitmap.CreateBitmap(10, 10, System.Drawing.Imaging.PixelFormat.Format16bppRgb565);	// create a small bitmap to base our graphics
			_g = Graphics.FromImage(_bm);
		}
Example #27
0
        public void SetReport(Report report, Page pages)
        {
            this.pages = pages;
            this.report = report;

            this.MinHeight = (int)report.PageWidthPoints + (rep_padding * 2);
            this.MinWidth = (int)report.PageHeightPoints + (rep_padding * 2);
        }
Example #28
0
        public void SetReport(Report report, Page pages)
        {
            this.pages = pages;
            this.report = report;

            this.QueueResize();
            GdkWindow.Invalidate();
        }
        public decimal EvaluateDecimal(Report rpt, Row row)
        {
            double d = EvaluateDouble(rpt, row);
            if (d.CompareTo(double.NaN) == 0)
                return decimal.MinValue;

            return Convert.ToDecimal(d);
        }
Example #30
0
		internal void Load(Report rpt)
		{
			foreach (ReportClass rc in _Items)
			{
				rc.Load(rpt);
			}
			return;
		}
Example #31
0
        private bool DoReportPreview()
        {
            if (tbReportSyntax.Text.Length < 1)
            {
                if (!DoReportSyntax())
                {
                    return(false);
                }
            }

            rdlViewer1.SourceRdl = tbReportSyntax.Text;
            fyiReporting.RDL.Report  rpt = rdlViewer1.Report;
            fyiReporting.RDL.DataSet ds  = rpt.DataSets["Data"];
            ds.SetData(DataTableConvert.ToDataTable(this.DataEntity));
            rdlViewer1.Rebuild();

            return(true);
        }
Example #32
0
		public virtual bool EvaluateBoolean(Report rpt, Row row)
		{
			if (row == null)
				return false;
			return Convert.ToBoolean(Evaluate(rpt, row));
		}
Example #33
0
        public int EvaluateInt32(Report rpt, Row row)
        {
            string result = EvaluateString(rpt, row);

            return(Convert.ToInt32(result));
        }
Example #34
0
 public decimal EvaluateDecimal(Report rpt, Row row)
 {
     return(decimal.MinValue);
 }
Example #35
0
 // Evaluate is for interpretation  (and is relatively slow)
 public object Evaluate(Report rpt, Row row)
 {
     return(EvaluateDouble(rpt, row));
 }
Example #36
0
        public DateTime EvaluateDateTime(Report rpt, Row row)
        {
            double result = EvaluateDouble(rpt, row);

            return(Convert.ToDateTime(result));
        }
Example #37
0
        public decimal EvaluateDecimal(Report rpt, Row row)
        {
            double result = EvaluateDouble(rpt, row);

            return(Convert.ToDecimal(result));
        }
Example #38
0
        public bool EvaluateBoolean(Report rpt, Row row)
        {
            object result = Evaluate(rpt, row);

            return(Convert.ToBoolean(result));
        }
Example #39
0
 internal float RunTextCalcHeight(Report rpt, Graphics g, Row row)
 {
     return(RunTextCalcHeight(rpt, g, row, null));
 }
Example #40
0
        override internal void RunPage(Pages pgs, Row row)
        {
            Report         r   = pgs.Report;
            TextboxRuntime tbr = TextboxRuntime.GetTextboxRuntime(r, this);

            tbr.RunCount++;                     // Increment the run count

            bool bHidden = IsHidden(r, row);

            SetPagePositionBegin(pgs);

            string t;

            if (bHidden)
            {
                t = "";
            }
            else
            {
                t = RunText(r, row);    // get the text
            }
            bool bDup = RunTextIsDuplicate(tbr, t, pgs.CurrentPage);

            if (bDup)
            {
                if (!(this.IsTableOrMatrixCell(r)))                     // don't put out anything if not in Table or Matrix
                {
                    bHidden = true;
                }
                t = "";                         // still need to put out the cell
            }
            PageText     pt;
            PageTextHtml pth = null;

            if (IsHtml(r, row))
            {
                pt = pth = new PageTextHtml(t);
            }
            else
            {
                pt = new PageText(t);
            }
            SetPagePositionAndStyle(r, pt, row);
            if (this.CanGrow && tbr.RunHeight == 0)             // when textbox is in a DataRegion this will already be called
            {
                this.RunTextCalcHeight(r, pgs.G, row, pt is PageTextHtml? pt as PageTextHtml: null);
            }
            pt.H = Math.Max(pt.H, tbr.RunHeight);                       // reset height
            if (pt.SI.BackgroundImage != null)
            {
                pt.SI.BackgroundImage.H = pt.H;                         //   and in the background image
            }
            pt.CanGrow = this.CanGrow;

            // check TextAlign: if General then correct based on data type
            if (pt.SI.TextAlign == TextAlignEnum.General)
            {
                if (DataType.IsNumeric(this.Value.GetTypeCode()))
                {
                    pt.SI.TextAlign = TextAlignEnum.Right;
                }
            }

            // Hidden objects don't affect the current page?
            if (!bHidden)
            {
                // Force page break if it doesn't fit on a page
                if (this.IsInBody &&                                             // Only force page when object directly in body
                    pgs.CurrentPage.YOffset + pt.Y + pt.H >= pgs.BottomOfPage && // running off end of page
                    !pgs.CurrentPage.IsEmpty())                                  // if page is already empty don't force new
                {                                                                // force page break if it doesn't fit on the page
                    pgs.NextOrNew();
                    pgs.CurrentPage.YOffset = OwnerReport.TopOfPage;
                    if (this.YParents != null)
                    {
                        pt.Y = 0;
                    }
                }

                Page p = pgs.CurrentPage;
                RecordPageReference(r, p, row);                 // save information for late page header/footer references
                p.AddObject(pt);
                if (!bDup)
                {
                    tbr.PreviousText = t;       // previous text displayed
                    tbr.PreviousPage = p;       //  page previous text was shown on
                }
            }

            SetPagePositionEnd(pgs, pt.Y + pt.H);
            if (pth != null)
            {
                pth.Reset();
            }
            if (this.CanGrow && !Value.IsConstant())
            {
                tbr.RunHeight = 0;                                                      // need to recalculate
            }
        }
Example #41
0
        internal void ResetPrevious(Report rpt)
        {
            TextboxRuntime tbr = TextboxRuntime.GetTextboxRuntime(rpt, this);

            ResetPrevious(tbr);
        }
Example #42
0
        public bool EvaluateBoolean(Report rpt, Row row)
        {
            string result = EvaluateString(rpt, row);

            return(Convert.ToBoolean(result));
        }
Example #43
0
 // Evaluate is for interpretation  (and is relatively slow)
 public object Evaluate(Report rpt, Row row)
 {
     return(EvaluateString(rpt, row));
 }
Example #44
0
        public double EvaluateDouble(Report rpt, Row row)
        {
            string result = EvaluateString(rpt, row);

            return(Convert.ToDouble(result));
        }
Example #45
0
        public decimal EvaluateDecimal(Report rpt, Row row)
        {
            string result = EvaluateString(rpt, row);

            return(Convert.ToDecimal(result));
        }
Example #46
0
        public double EvaluateDouble(Report rpt, Row row)
        {
            object result = Evaluate(rpt, row);

            return(Convert.ToDouble(result));
        }
Example #47
0
        public string EvaluateString(Report rpt, Row row)
        {
            object result = Evaluate(rpt, row);

            return(Convert.ToString(result));
        }
Example #48
0
        internal int RunCount(Report rpt)
        {
            TextboxRuntime tbr = TextboxRuntime.GetTextboxRuntime(rpt, this);

            return(tbr.RunCount);
        }
Example #49
0
        public DateTime EvaluateDateTime(Report rpt, Row row)
        {
            string result = EvaluateString(rpt, row);

            return(Convert.ToDateTime(result));
        }
Example #50
0
		public virtual double EvaluateDouble(Report rpt, Row row)
		{
			if (row == null)
				return Double.NaN;
			return Convert.ToDouble(Evaluate(rpt, row), NumberFormatInfo.InvariantInfo);
		}
Example #51
0
        public string EvaluateString(Report rpt, Row row)
        {
            double result = EvaluateDouble(rpt, row);

            return(result.ToString());
        }
Example #52
0
		public virtual decimal EvaluateDecimal(Report rpt, Row row)
		{
			if (row == null)
				return decimal.MinValue;
			return Convert.ToDecimal(Evaluate(rpt, row), NumberFormatInfo.InvariantInfo);
		}
Example #53
0
        public bool EvaluateBoolean(Report rpt, Row row)
        {
            double result = EvaluateDouble(rpt, row);

            return(Convert.ToBoolean(result));
        }
Example #54
0
 public virtual int EvaluateInt32(Report rpt, Row row)
 {
     if (row == null)
         return int.MinValue;
     return Convert.ToInt32(Evaluate(rpt, row), NumberFormatInfo.InvariantInfo);
 }
Example #55
0
        public string EvaluateString(Report rpt, Row row)
        {
            bool result = EvaluateBoolean(rpt, row);

            return(result.ToString());
        }
Example #56
0
		public virtual string EvaluateString(Report rpt, Row row)
		{
			if (row == null)
				return null;
			return Convert.ToString(Evaluate(rpt, row));
		}
Example #57
0
 private void SetValue(Report rpt, int i)
 {
     rpt.Cache.AddReplace(_key, new OInt(i));
 }
Example #58
0
		public virtual DateTime EvaluateDateTime(Report rpt, Row row)
		{
			if (row == null)
				return DateTime.MinValue;
			return Convert.ToDateTime(Evaluate(rpt, row));
		}
Example #59
0
        private int GetValue(Report rpt)
        {
            OInt oi = rpt.Cache.Get(_key) as OInt;

            return(oi == null? -1: oi.i);
        }
Example #60
0
 public void ClearCache(Report rpt)
 {
     rpt.Cache.Remove(_key);
 }