Infopath Web Service with Parameters

 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 实现后的图


WebService源代码下载:Download

注:源代码需引用Microsoft.SharePoint.dll  and  CodeArt.SharePoint.CamlQuery

原文地址:https://www.cnblogs.com/gzh4455/p/2487282.html