Visual Studio Lightswitch: Arvutatud väljade loomine

08.09.2010  |  Gunnar

Lightswitch toetab ka arvutatud andmevälju, mis lahendatakse ära programmiliselt. Keelena saab kasutada C# või VB.NET. Minu näited, nagu ikka, on C# ja kohalik VB.NET progeja peaks olema piisavalt võimekas, et sellest keelest ka piisavalt aru saada. Käesolevas kandes teen ühe kiire näite selle kohta, kuidas lisada isikute tabelisse täisnime väli, mida kasutatakse ühtlasi vaikimisi look-up väärtusena.

Alustuseks vaatame, milline on mu isikute tabeli ülesehitus. Esimesed kolm välja on tavalised andmeväljad andmebaasis, järgmised kaks on seoste väljad ja ülejäänud väljad on arvutatavad väljad. Meie peatume sellise välja nagu full_name juures.

Lightswitch: Isikute tabel
Kliki pildil hiirega, et seda originaalsuuruses vaadata.

Arvutatud välja defineerimine

Lightswitch: Täisnime veeru omadusedParemal on näha välja full_name omaduste aken. Is Computed on märgitud ja seda muuta ei saa.

Välja nimeks, kui seda kusagil kuvatakse, on Full name ja vaikimisi seda välja ekraanile ei näidata. See tähendab seda, et kui genereeritakse mõni vaade, siis Full name nimelist välja seal näha ei ole.

Full name ilmub mul aga isikute otsingus ja mujal, kus isikule lingina viide on, sest see väli on isikute tabeli Summary field. See tähendab seda, et kõik vaated, kus on isikule viide mõne teise tabeli koosseisus, on näha isiku täisnimi. See on palju informatiivsem kui näiteks eesnime või perekonnanime või ID kuvamine.

Selleks, et täisnime väli saaks omale väärtuse, peame paremal toodud aknas klikkima Edit Method linki. Lingil klikkimise peale avatakse meile koodiredaktor ning luuakse meetod, mis antud väljale väärtuse tagastab.

Kõik väärtused arvutatavatele väljadele küsib Lightswitch läbi meetodite, kus väärtus antakse meetodist Lightswitchile tagasi byref parameetri kaudu. Milleks just selline lahendus hea on, ei oska ma öelda, sest Lightswitchi sügavamasse sisemusse pole ma veel vaadanud. Eelisjärjekorras on hetkel ajuinvaliididena Visual Studio modelleerimisprojektid, kus on vaja üks tüütu ja keerukas küsimus lahendada ilma maailma suurima tarkvarafirma abita.

Välja väärtuse määramine

Nagu enne mainitud sai, siis Edit Method link viib meid otse sellesse kohta, kus arvutatud välja väärtus tuleb leida. Minu kood on antud kohas selline.

partial void full_name_Compute(ref string result)
{
    result = last_name + ", " + first_name;
}

See annab meile tulemuseks näiteks sellise isikute valimise dialoogi.

Lightswitch: Isikute valimise dialoog

Valimise dialoog on üks kohtadest, kus on kasutusel vastava tabeli Summary Field ja isikute korral on probleemi lahendus kenasti näga eeltoodud ekraanpaugul. Sarnaselt saab defineerida ka muid arvutatud välju.

Kommenteeri

sulge
Saada link e-postiga

© DT 2012 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress