SDK 통해 사용자 지정 목록을 업데이 트의 많은 좋은 예입니다.. 여기는 또 다른.
비즈니스 문제: InfoPath 양식을 설계 되었습니다 수 있습니다 사용자가 온라인 입력 요청 구매. 포 징 발 번호 전통적인 순서 이어야 한다 정수 값을 기반으로 하 고 자동으로 계산.
비즈니스 솔루션: 두 개의 열이 포함 된 사용자 정의 이끼 목록 만들기: "ControlField" 그리고 "과". 값 열에 다음 구매 요청 서 번호 포함. Note는 일반 "제어" 필요에 따라 사용할 수 있는 미래의 컨트롤 필드에 대 한 명명 규칙을 제공 합니다..
기술 솔루션: InfoPath 클라이언트에 의해 액세스 하는 웹 서비스 만들기. 웹 서비스 반환 합니다 다시 다음 구매 요청 서 번호 및 목록의 값을 업데이트.
교훈:
- InfoPath 양식으로이 웹 서비스를 데이터 소스로 추가 하는 경우, 나는 udc를 변환 하 고 데이터 연결 라이브러리에 저장 하는 데 필요한 발견.
- 나 또한 중앙 서비스 관리를 통해 교차 도메인 스크립팅을 사용 하도록 설정 하는 데 필요한 발견 // 응용 프로그램 관리 // 폼 서버 구성.
- 처음으로 양식을 웹 서비스에 액세스 하 려, 그것은 걸립니다 그리고 때때로, 그것은 시간을 것입니다.. 시간 제한 설정에 폼 서버 구성에서 설정 fiddled 고 그 도움을 보 였.
코드:
사용 하 여 시스템;
사용 하 여 System.Web;
사용 하 여 System.Web.Services;
사용 하 여 System.Web.Services.Protocols;
사용 하 여 Microsoft.SharePoint;
사용 하 여 System.Configuration;
[웹 서비스(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
공용 클래스 PoService : System.Web.Services.웹 서비스
{
공용 PoService () {
//다음 줄 사용 하는 경우 디자인 구성 요소 주석
//InitializeComponent();
}
/// <요약>
/// Sharepoint가 번호 컨트롤 목록에서 다음 사서함 번호를 가져올.
/// 그 목록에서 주문서 번호를 증가.
/// </요약>
/// <반환></반환>
[WebMethod]
공용 문자열 GetNextPoNumber()
{
문자열 SpPoControlSiteName; // 포 제어 목록을 호스팅하는 실제 MOSS 사이트의 이름.
문자열 SpPoControlListName; // 포 컨트롤을 포함 하는 실제 모스 목록 이름.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
문자열 nextPoReqNumber = "xyzzy";
사용 하 여 (SPSite 사이트 = 새로운 내용 SPSite(SpPoControlSiteName))
{
사용 하 여 (SPWeb 웹 사이트를 =. OpenWeb())
{
SPList currentList = 웹. 목록[SpPoControlListName];
foreach (SPItem controlItem 에서 currentList.Items)
{
만약 (((문자열)controlItem["ControlField"]).같음("NextPoNumber"))
{
nextPoReqNumber = (문자열)controlItem["과"];
int int_nextPoReqNumber;
int_nextPoReqNumber = 변환.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["과"] int_nextPoReqNumber =;
controlItem.Update();
}
} // 찾기, 읽기 및 업데이트 목록에서 주문서 번호.
} // spweb 웹을 사용 하 여 site.openweb =()
} // spsite 사이트를 사용 하 여 새로운 spsite =("http://localhost/미즈호 ")
반환 nextPoReqNumber;
}
}