internal void SetParameterMethod(string pm, IExpr[] args) { if (!this.p.MultiValue) throw new ArgumentException(string.Format("{0} must be a MultiValue parameter to accept methods", this.p.Name.Nm)); if (pm == null) { _type = ReportParameterMethodEnum.Index; } else switch (pm) { case "Contains": _type = ReportParameterMethodEnum.Contains; break; case "BinarySearch": _type = ReportParameterMethodEnum.BinarySearch; break; case "Count": _type = ReportParameterMethodEnum.Count; if (args != null) throw new ArgumentException("Count does not have any arguments."); break; case "IndexOf": _type = ReportParameterMethodEnum.IndexOf; break; case "LastIndexOf": _type = ReportParameterMethodEnum.LastIndexOf; break; case "Value": _type = ReportParameterMethodEnum.Value; break; default: throw new ArgumentException(string.Format("{0} is an unknown array method.", pm)); } if (_type != ReportParameterMethodEnum.Count) { if (args == null || args.Length != 1) throw new ArgumentException(string.Format("{0} must have exactly one argument.", pm)); _arg = args[0]; } return; }
internal void SetParameterMethod(string pm, IExpr[] args) { if (!this.p.MultiValue) { throw new ArgumentException(string.Format("{0} must be a MultiValue parameter to accept methods", this.p.Name.Nm)); } if (pm == null) { _type = ReportParameterMethodEnum.Index; } else { switch (pm) { case "Contains": _type = ReportParameterMethodEnum.Contains; break; case "BinarySearch": _type = ReportParameterMethodEnum.BinarySearch; break; case "Count": _type = ReportParameterMethodEnum.Count; if (args != null) { throw new ArgumentException("Count does not have any arguments."); } break; case "IndexOf": _type = ReportParameterMethodEnum.IndexOf; break; case "LastIndexOf": _type = ReportParameterMethodEnum.LastIndexOf; break; case "Value": _type = ReportParameterMethodEnum.Value; break; default: throw new ArgumentException(string.Format("{0} is an unknown array method.", pm)); } } if (_type != ReportParameterMethodEnum.Count) { if (args == null || args.Length != 1) { throw new ArgumentException(string.Format("{0} must have exactly one argument.", pm)); } _arg = args[0]; } return; }
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 FunctionReportParameter(ReportParameter parm) { p=parm; _type = ReportParameterMethodEnum.Value; _arg = null; }