Hello Telerik Team,
I am getting the error."An error has occured while processing textbox:The expression contains undefined
function call FormType()".
I have a report..where in i used a user function called "FormType".
My datasource for teh report is sharepoint list.
I am passing a parameter to the user function in the code.My user functions retrieves three values(one each time based on the conditions)But when i select the user function..in the edit expression dialog box..
i am not writing any parameter inside the user function as i am not sure what to write there.
I have gone through http://www.telerik.com/support/kb/reporting/designing-reports/the-expression-contains-undefined-function-call-myuserfunction-error.aspx
and thought i might fall in 2nd cateogry..but unable to find a solution for that
Please help me.
Here is the code.
InitializeComponent();
string strType;
SPSite oSite = new SPSite("spsiteurl");
SPWeb oWeb = oSite.OpenWeb();
string[] parameters = { "10", "100", "1000" };
Telerik.Reporting.ReportParameter param1 = new Telerik.Reporting.ReportParameter();
param1.Name = "ItemID";
param1.Type = Telerik.Reporting.ReportParameterType.Integer;
param1.AllowBlank = false;
param1.AllowNull = true;
param1.Text = "ItemID";
param1.Visible = true;
this.ReportParameters.Add(param1);
SPQuery qry = new SPQuery();
SPList oList = oWeb.Lists["customlist"];
string camlQuery = CreateCAMLQuery(parameters);
qry.Query = camlQuery;
SPListItemCollection listItemsCollection = oList.GetItems(qry);
StringBuilder sb1 = new StringBuilder();
for (int i = 0; i < parameters.Length; i++)
{
foreach (SPListItem item in listItemsCollection)
{
if (parameters[i] != "")
{
sb1 = new StringBuilder();
if (parameters[i] == item["ItemID"].ToString())
{
sb1.Append(parameters[i].ToString() + "-" + item["FormType"].ToString() + ",");
strType = FormType(sb1.ToString());
break;
}
}
}
}
DataTable listItemsTable = oList.GetItems(qry).GetDataTable();
this.DataSource = listItemsTable;
}
private static string CreateCAMLQuery(string[] parameters)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < parameters.Length; i++)
{
if (i >= 2 && !sb.ToString().EndsWith(@"</Or>"))
{
sb.Insert(0, "<Or>");
sb.Insert(sb.Length, "</Or>");
}
sb.Append("<Eq>");
sb.Append("<FieldRef Name='ItemID'/>");
sb.AppendFormat("<Value Type='Choice'>" + parameters[i] + "</Value>", i);
sb.Append("</Eq>");
if (i >= 2 && !sb.ToString().EndsWith(@"</Or>"))
{
sb.Insert(0, "<Or>");
sb.Insert(sb.Length, "</Or>");
}
}
sb.Insert(0, "<Where>");
sb.Append("</Where>");
return sb.ToString();
}
public static string FormType(string strFormType)
{
string[] FormTypeValues = strFormType.Split(",".ToCharArray());
string[] values = FormTypeValues[0].Split("-".ToCharArray());
string ItemId = values[0];
string formT = values[1];
switch (formT)
{
case "PM":
formT = "Parking";
strFormType = formT;
break;
case "PCO":
formT = "Nonparking";
strFormType = formT;
break;
}
return strFormType;
}
I appreciate your support
Thank you,
Smith