Yra nemažai pavyzdžių, atnaujinimą pasirinktiniais sąrašais per SDK. Štai dar vienas.
Verslo problemas: InfoPath šablonas buvo sukurtas taip kad leidžia vartotojams įvesti internete pirkimo paraiškos. PO paraiškų skaičius turėtų būti tradicinis seka pagal sveikojo skaičiaus reikšmes ir apskaičiuojama automatiškai.
Pervežimų: Kurti pasirinktinį MOSS sąrašą, kuriame yra dviejų stulpelių: "ControlField" ir "ControlValue". Reikšmės stulpelyje yra kitą pirkimo paraiškos numeris. Atkreipkite dėmesį, kad bendras "kontrolės" vardų suteikimo konvencija numato būsimus tikrinimus laukus, kurie gali būti naudojami kaip reikalingas.
Techninis sprendimas: Sukurti interneto paslauga prieinama InfoPath kliento. Tinklo tarnybos grąžina atgal kitą pirkimo paraiškos numerį ir atnaujina sąrašą vertės.
Pamokas:
- Kai įtraukti šios žiniatinklio tarnybos kaip duomenų šaltinį į "InfoPath" forma, Radau jį reikia konvertuoti į a udc ir laikyti jį į duomenų ryšių biblioteka.
- Man taip pat atrodė būtina, kad kirsti domenų scenarijų per centrinių tarnybų administracija // programos tvarkymo // formos serverio konfigūracijos.
- Pirmą kartą formą bandė prieigai prie interneto paslauga, ji mano, o ir kartais, tai laiko. Aš fiddled su formos serverio konfigūracijos parametrus plėsti paskirtojo laiko pabaigos parametrai ir, atrodė, kad padėtų.
Kodas:
naudojant Sistemos;
naudojant System.Web;
naudojant System.Web.Services;
naudojant System.Web.Services.Protocols;
naudojant Microsoft.SharePoint;
naudojant System.Configuration;
[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
visuomenės klasės PoService : System.Web.Services.WebService
{
visuomenės PoService () {
//Anuliuoti šią eilutę jei naudojant suprojektuoti
//InitializeComponent();
}
/// <santrauka>
/// Gauti kitą PO numerį iš sharepoint po skaičiaus kontrolės sąrašo.
/// Prieaugio PO numeris į tą sąrašą.
/// </santrauka>
/// <Grąžina></Grąžina>
[WebMethod]
visuomenės eilutė GetNextPoNumber()
{
eilutė SpPoControlSiteName; // Tikrasis MOSS svetainės, kurioje yra PO teisių sąrašo pavadinimas.
eilutė SpPoControlListName; // Tikrasis MOSS sąrašą, kuriame yra Po kontrolės, pavadinimas.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
eilutė nextPoReqNumber = "xyzzy";
naudojant (SPSite svetainės = naujas SPSite(SpPoControlSiteName))
{
naudojant (SPWeb interneto = svetainėje. OpenWeb())
{
SPList currentList = interneto. Sąrašai[SpPoControlListName];
foreach (SPItem controlItem į currentList.Items)
{
Jei (((eilutė)controlItem["ControlField"]).Yra lygi("NextPoNumber"))
{
nextPoReqNumber = (eilutė)controlItem["ControlValue"];
LC int_nextPoReqNumber;
int_nextPoReqNumber = Konvertuoti.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Rasti, skaitymo ir atnaujinimo PO skaičių sąraše.
} // naudojant spweb interneto = site.openweb()
} // naudojant spsite svetainės = naujas spsite("http://localhost/mizuho")
grįžti nextPoReqNumber;
}
}