Inheritance: fyiReporting.RDL.ReportLink
Beispiel #1
0
        internal void SetRuntimeValues(Report rpt, IDictionary parms)
        {
            // Fill the values to use in the report parameters
            foreach (string pname in parms.Keys)                // Loop thru the passed parameters
            {
                ReportParameter rp = (ReportParameter)_Items[pname];
                if (rp == null)
                {                                 // When not found treat it as a warning message
                    if (!pname.StartsWith("rs:")) // don't care about report server parameters
                    {
                        rpt.rl.LogError(4, "Unknown ReportParameter passed '" + pname + "' ignored.");
                    }
                    continue;
                }

                rp.SetRuntimeValue(rpt, parms[pname]);
            }

            return;
        }
Beispiel #2
0
        public virtual IExpr ConstantOptimization()
        {
            _ArgExpr = _ArgExpr.ConstantOptimization();

            if (_ArgExpr.IsConstant())
            {
                string o = _ArgExpr.EvaluateString(null, null);
                if (o == null)
                {
                    throw new Exception("Parameter collection argument is null");
                }
                ReportParameter rp = _Parameters[o] as ReportParameter;
                if (rp == null)
                {
                    throw new Exception(string.Format("Parameter collection argument {0} is invalid", o));
                }
                return(new FunctionReportParameter(rp));
            }

            return(this);
        }
        public virtual IExpr ConstantOptimization()
        {
            _ArgExpr = _ArgExpr.ConstantOptimization();

            if (_ArgExpr.IsConstant())
            {
                string o = _ArgExpr.EvaluateString(null, null);
                if (o == null)
                {
                    throw new Exception(Strings.FunctionParameterCollection_Error_ParameterCollectionNull);
                }
                ReportParameter rp = _Parameters[o] as ReportParameter;
                if (rp == null)
                {
                    throw new Exception(string.Format(Strings.FunctionParameterCollection_Error_ParameterCollectionInvalid, o));
                }
                return(new FunctionReportParameter(rp));
            }

            return(this);
        }
		IDictionary _Items;			// list of report items

		internal ReportParameters(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p)
		{
			if (xNode.ChildNodes.Count < 10)
				_Items = new ListDictionary();	// Hashtable is overkill for small lists
			else
				_Items = new Hashtable(xNode.ChildNodes.Count);

			// Loop thru all the child nodes
			foreach(XmlNode xNodeLoop in xNode.ChildNodes)
			{
				if (xNodeLoop.NodeType != XmlNodeType.Element)
					continue;
				if (xNodeLoop.Name == "ReportParameter")
				{
					ReportParameter rp = new ReportParameter(r, this, xNodeLoop);
                    if (rp.Name != null)
					    _Items.Add(rp.Name.Nm, rp);
				}
				else
					OwnerReport.rl.LogError(4, "Unknown ReportParameters element '" + xNodeLoop.Name + "' ignored.");
			}
		}
 internal UserReportParameter(Report rpt, ReportParameter rp)
 {
     _rpt = rpt;
     _rp = rp;
 }
 /// <summary>
 /// obtain value of ReportParameter
 /// </summary>
 public FunctionReportParameterLabel(ReportParameter parm)
     : base(parm)
 {
 }
        IExpr _arg;                         // when MultiValue parameter; methods may need arguments

		/// <summary>
		/// obtain value of ReportParameter
		/// </summary>
		public FunctionReportParameter(ReportParameter parm) 
		{
			p=parm;
            _type = ReportParameterMethodEnum.Value;
            _arg = null;
		}
 /// <summary>
 /// obtain value of ReportParameter
 /// </summary>
 public FunctionReportParameterLabel(ReportParameter parm) : base(parm)
 {
 }
 internal UserReportParameter(Report rpt, ReportParameter rp)
 {
     _rpt = rpt;
     _rp  = rp;
 }