Có rất nhiều ví dụ điển hình của Cập nhật danh sách tùy chỉnh qua SDK. Đây là thêm một.
Vấn đề kinh doanh: InfoPath hình thức đã được thiết kế cho phép người dùng để nhập trực tuyến mua nhiều. Trưng dụng PO số nên là truyền thống tự dựa trên giá trị số nguyên và tính toán tự động.
Giải pháp kinh doanh: Tạo một danh sách MOSS tùy chỉnh có chứa hai cột: "ControlField" và "ControlValue". Giá trị cột có chứa số trưng dụng mua hàng tiếp theo. Lưu ý rằng chung "kiểm soát" quy ước đặt tên cung cấp cho các lĩnh vực kiểm soát tương lai có thể được sử dụng khi cần thiết.
Giải pháp kỹ thuật: Tạo ra một dịch vụ web truy cập bởi các khách hàng InfoPath. Dịch vụ web trả về trở lại trưng dụng số tiếp theo của mua và Cập Nhật giá trị của danh sách.
Bài học:
- Khi thêm dịch vụ web này như là một nguồn dữ liệu mẫu InfoPath, Tôi tìm thấy nó cần thiết để chuyển nó sang một udc và lưu nó vào một thư viện kết nối dữ liệu.
- Tôi cũng tìm thấy nó cần thiết để cho phép tên miền chéo kịch bản thông qua Trung tâm dịch vụ quản lý // quản lý ứng dụng // hình thức cấu hình máy chủ.
- Lần đầu tiên các hình thức đã cố gắng để truy cập vào các dịch vụ web, phải mất một lúc và thỉnh thoảng, nó sẽ thời gian ra. Tôi fiddled với cài đặt trong hình thức cấu hình máy chủ để mở rộng các thiết lập thời gian chờ và điều đó dường như để giúp.
Mã:
bằng cách sử dụng Hệ thống;
bằng cách sử dụng System.Web;
bằng cách sử dụng System.Web.Services;
bằng cách sử dụng System.Web.Services.Protocols;
bằng cách sử dụng Microsoft.SharePoint;
bằng cách sử dụng System.Configuration;
[WebService(Không gian tên = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
công cộng lớp học PoService : System.Web.Services.WebService
{
công cộng PoService () {
//Bỏ ghi chú dòng sau nếu sử dụng thiết kế thành phần
//InitializeComponent();
}
/// <tóm tắt>
/// Có được số PO tiếp theo từ danh sách kiểm soát số sharepoint po.
/// Tăng số PO trên danh sách đó.
/// </tóm tắt>
/// <trả về></trả về>
[WebMethod]
công cộng chuỗi GetNextPoNumber()
{
chuỗi SpPoControlSiteName; // Tên của trang web thực tế của MOSS lưu trữ danh sách điều khiển PO.
chuỗi SpPoControlListName; // Tên danh sách MOSS thực tế có Po control.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
chuỗi nextPoReqNumber = "xyzzy";
bằng cách sử dụng (SPSite Trang web = mới SPSite(SpPoControlSiteName))
{
bằng cách sử dụng (SPWeb web = trang web. OpenWeb())
{
Splist.Update() currentList = trang web. Danh sách[SpPoControlListName];
foreach (SPItem controlItem ở currentList.Items)
{
Nếu (((chuỗi)controlItem["ControlField"]).Bằng("NextPoNumber"))
{
nextPoReqNumber = (chuỗi)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Chuyển đổi.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Vị trí, đọc và cập nhật số PO trong danh sách.
} // bằng cách sử dụng spweb web = site.openweb()
} // bằng cách sử dụng trang web spsite = mới spsite("http://localhost/mizuho")
trở lại nextPoReqNumber;
}
}