Infopath Web Service 带参数查询
WebService.cs其中一个方法为GetCalculate,下面是其具体的代码
[WebMethod] public CalculateInfo GetCalulate(DateTime dtBegin,string sBegin,DateTime dtEnd,string sEnd) { CalculateInfo oCalculate = new CalculateInfo(); if (dtBegin == null || dtEnd == null || string.IsNullOrEmpty(sBegin) || string.IsNullOrEmpty(sEnd)) return oCalculate; TimeSpan ts = dtEnd.Subtract(dtBegin); if (ts.TotalDays < 0) return oCalculate; if (ts.TotalDays == 0 && sBegin.CompareTo(sEnd) > 0) return oCalculate; if (sEnd.CompareTo(sBegin) > -1) { oCalculate.Day = ts.Days.ToString(); oCalculate.Hour = (Convert.ToInt32(sEnd) - Convert.ToInt32(sBegin)).ToString(); } else { oCalculate.Day = (ts.Days - 1).ToString(); oCalculate.Hour = (24 - Convert.ToInt32(sBegin) + Convert.ToInt32(sEnd)).ToString(); } return oCalculate; }
由上面可知,此方法有四个参数,返回的是一个类,下面是这个类的代码
public class CalculateInfo { public string Day = "0"; public string Hour = "0"; }
实现步骤:
1. 部署WebService(我是部署为Web应用程序)
2. 在InfoPath中添加Soap连接,在表单加载时不查询
3.设置参数(用设置域值的方法)
4.设置域值
实现后的如下:
WebService源代码下载:Download
注:源代码需引用Microsoft.SharePoint.dll and CodeArt.SharePoint.CamlQuery