SharePoint List – Custom Progress Calculated Column


În SharePoint folosim de multe ori coloanele calculate în liste pentru a determina anumite valori pe baza altor coloane. De cele mai multe ori aceste operațiuni se rezumă la operațiuni simple de adunare, scădere, și în cazuri mai avansate la folosirea funcțiilor dedicate pentru a reprezenta starea unui element de listă. La această adresă aveți o listă destul de bogată de formule și funcții pentru câmpurile calculate.

Într-un proiect curent am descoperit cât de utilă pentru utilizatorii finali poate fi crearea unei liste de gestionare a activităților, un fel de plan de proiect care presupune execuția unor pași determinați/cunoscuți în ordinea lor.

Custom project list

Coloanele Step1, Step2, Step3 si Step4 sunt coloane de tip Choice și pot avea valorile? Not started, In progress sau Done! În funcție de starea fiecărei coloane se poate determina valoarea coloanei calculate Progress care are la bază următoare formulă:

=IF(AND(Step1="Done!";Step2="Done!";Step3="Done!";Step4="Done!");1;
(IF(AND(Step1="Done!";Step2="Done!";Step3="Done!";Step4="In progress");0,85;
(IF(AND(Step1="Done!";Step2="Done!";Step3="Done!");0,75;
(IF(AND(Step1="Done!";Step2="Done!";Step3="In progress");0,65;
(IF(AND(Step1="Done!";Step2="Done!");0,5;
(IF(AND(Step1="Done!";Step2="In progress");0,35;
(IF(Step1="Done!";0,25;
(IF(Step1="In progress";0,15;0)))))))))))))
))

Formula este în Romanian format. Pentru cei care o vor în Engleză trebuie să înlocuiască caracterul virgulă cu punct și apoi punct și virgulă cu virgulă.

În mod normal se spune că în coloanele calculate există o limitare de 7 IF-uri imbricate, dar se pare că în articolul Maximum number of IF statements in a Calculated Column? veți găsi o metodă de concatenare a mai multor IF-uri pentru a putea scrie formule mai complexe.

Următoarea etapă în proiectarea unei astfel de liste este aceea de a valida datele introduse în așa fel încât fiecare pas să înceapă abia după ce s-a finalizat cel anterior. Aici este o adevărată problemă pentru că în caseta Formula de la : List Settings : Validation Settings este permis doar un număr limitat de caractere, și trebuie găsită o altă metodă de a scrie funcția logică prin limitarea numărului de coloane introduse și a valorilor posibile de luat. De aceea eu am preferat să folosesc o funcție AND() de intercorelare cumulativă a rezultatului evaluării mai multor funcții logice IF().

Cam așa ar arăta formula de validare a listei:

=AND(
IF(Step1<>"Done!";Step2="Not started";OR(Step2<>"Not started";Step2="Not started"));
IF(Step2<>"Done!";Step3="Not started";OR(Step3<>"Not started";Step3="Not started"));
IF(Step3<>"Done!";Step4="Not started";OR(Step4<>"Not started";Step4="Not started"))
)

În traducere, dacă Step1 nu este finalizat, înregistrarea este validă doar dacă Step2=”Not started”. Dacă Step1 este finalizat (valoarea Done!) atunci pasul 2 poate avea orice stare diferită de Not started sau chiar egală cu aceasta. Este un artificiu și mie mi-a luat ceva timp să ajung la formulele acestea. Sper voi doar să beneficiați de ele ;)

În cazul în care doriți să testați live lista, o găsiți la adresa: http://portal.feaa.uaic.ro/Test/Lists/Custom%20Project/AllItems.aspx

Enjoy!

Anunțuri

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s