Elżbieta Wiśniewska

Elżbieta Wiśniewska Programista
ABAP/Konsultant SAP
ISU FI-CA, BIlLLING

Temat: SharePoint Desinger 2010

Witam,

Moim zadaniem jest wdrożenie wniosku urlopowego.

Ponieważ jestem początkującym projektantem proszę o pomoc w celu rozwiązania problemu różnicy dat.

Mamy pola data_rozp_urlopu i dara_zakon_urlopu. Do pola ilDni należy wstawić różnicę dni. Najlepiej jeszcze minus dni świąteczne !!

Proszę o rady !
ew
Marek Kembrowski

Marek Kembrowski Konsultant GD,
Microsoft Polska Sp.
z o.o.

Temat: SharePoint Desinger 2010

Być może ten wpis naprowadzi na własciwą drogę. Co prawda dotyczy sp 2007, ale calculated columns chyba aż tak bardzo się nie zmieniły

http://blog.pentalogic.net/2008/11/working-days-weekda...

W przypadku bardziej rozbudowanym, można się pobawić InfoPathem + ExcelServices, ale na początek może być to trochę zbyt skomplikowane. Poza tym Excel Services nie jest chyba dostępny w Sharepoint Foundation (jeśli to ma jakieś znaczenie).

http://www.bizsupportonline.net/blog/2011/02/calculate...
Mateusz Orłowski

Mateusz Orłowski The greatest
inspiration is the
deadline

Temat: SharePoint Desinger 2010

Kolumny obliczeniowe niestety nie wezmą pod uwagę świąt i innych dni wolnych od pracy w firmie.
Ja u siebie stworzyłem listę pt. kalendarz dni wolnych, na którą wrzucam wszystkie soboty, niedziele, dni wolne od pracy ustawowo, dni wolne od pracy zgodnie z polityką firmy, itd.
Następnie stworzyłem w Visual Studio dodatkową akcję do SharePoint Designera 2010, pt. "Oblicz dni robocze pomiędzy [data1] i [data2]", która korzysta z wcześniej stworzonej listy.
Jak będzie potrzeba, to mogę podesłać trochę kodu :)
Elżbieta Wiśniewska

Elżbieta Wiśniewska Programista
ABAP/Konsultant SAP
ISU FI-CA, BIlLLING

Temat: SharePoint Desinger 2010

Witam !

Dzięki za rady. Może doprecyzuję, otóż Ilośc dni jeset polem w formularzu InfoPath i skojarzonym z listą Urlopy . marzeniem uzytkowników jest aby podczas wypełniania pól we wniosku data_od i data_do ilość dni w formularzu była liczona.

W widoku listy mam te same kolumny co w formulrzu ( no prawie !)
Mateusz Orłowski

Mateusz Orłowski The greatest
inspiration is the
deadline

Temat: SharePoint Desinger 2010

Obliczenie różnicy między dwoma datami w formularzu InfoPath to nie problem, wystarczy wstawić formułę. Problem pojawia się, jeśli chcemy obliczać dni robocze. Wtedy trzeba by było wstawić jakiś "code behind" w formularzu InfoPath, który weźmie pod uwagę dni wolne.
Artykuł o formularzach z kodem jest np. tu.
Moim zdaniem prościej byłoby w formularzu wypełniania wniosku urlopowego zostawić daty OD i DO, a następnie uruchomić przepływ pracy, który obliczy dni robocze i np. wyśle maila do przełożonego z prośbą o akceptację, itd.Mateusz Orłowski edytował(a) ten post dnia 28.02.12 o godzinie 13:27
Elżbieta Wiśniewska

Elżbieta Wiśniewska Programista
ABAP/Konsultant SAP
ISU FI-CA, BIlLLING

Temat: SharePoint Desinger 2010

Skorzystałam z tego linka
http://www.bizsupportonline.net/infopath2007/calculate...

i działa dobrze w podglądzie formularza w INfoPath, a niestety nie działa na liście.
Elżbieta Wiśniewska

Elżbieta Wiśniewska Programista
ABAP/Konsultant SAP
ISU FI-CA, BIlLLING

Temat: SharePoint Desinger 2010

Dziękuję Wszystkim za pomoc,
ilość dni się oblicza (bez dni wolnych ), ale i tak jestem z tego dumna.

Z dniami wolnymi to bym prosiła o małą podpowiedź.

Na swoje usprawiedliwienie dodam, że nie znam się na narzędziach WEB i SP 2010, HTML itp.,

ale będzie dobrze ....
Paweł Kamiński

Paweł Kamiński Lead Sharepoint
Engineer

Temat: SharePoint Desinger 2010

Witaj,
Funkcjonalność której potrzebujesz uzyskać możesz z poziomu formularza InfoPath:
- tak jak napisał @Mateusz Orłowski - code behind np. c# do formularza, który odpyta listę na której będą zapisane dni wolne
- alternatywnie - napisanie metody web service, przyjmującej jako parametry 2 daty, zwracającej ilość dni "roboczych" z uwzględnieniem listy dni wolnych (odpytanie listy prze SPQuery).

Lista dni wolnych - wszystkie dni wolne (również weekendy) + specyficzne dla danej firmy.

Oczywiście, żadne z zaproponowanych wcześniej rozwiązań nie przewiduje innej "strategii urlopowej" niż standardowa - czyli dzień roboczy = 8h pracy, stała ilość godzin każdego dnia.

A widziałem już znacznie bardziej skomplikowane strategie zatrudnienia.
Daj znać czy się udało - jeśli trzeba, pomożemy.
Elżbieta Wiśniewska

Elżbieta Wiśniewska Programista
ABAP/Konsultant SAP
ISU FI-CA, BIlLLING

Temat: SharePoint Desinger 2010

Dzięki za chęć pomocy, ale nie skorzystam z SPQuery, bo mamy w firmie tylko SP Desinger 2010, bez serwera i nawet nie wiem , gdzie wpisać kod wyjaśniony dokładnie tutaj:

[url]http://msdn.microsoft.com/en-us/library/microsoft.shar...[url]

Niestety nie wiem nawet jak wstawić 'code behind np. c# do formularza" ???

Wpisałam formułki do pól w formularzu INfoPath i liczy ilość dni.
ex.

kod w polu data_od:
(numer(podciąg(data_do; 9,2)) + zaokr_w_dół((153 * (numer(podciąg(data_do; 6,2)) + 12 * (zaokr_w_dół((14 - numer(podciąg(data_do; 6; 2))) / 12)) - 3) + 2) / 5) + (numer(podciąg(data_do; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_do; 6; 2))) / 12))) * 365 + zaokr_w_dół((numer(podciąg(data_do; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_do; 6; 2))) / 12))) / 4) - zaokr_w_dół((numer(podciąg(data_do; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_do; 6; 2))) / 12))) / 100) + zaokr_w_dół((numer(podciąg(data_do; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_do; 6; 2))) / 12))) / 400) - 32045) - (numer(podciąg(data_od; 9; 2)) + zaokr_w_dół((153 * (numer(podciąg(data_od; 6; 2)) + 12 * (zaokr_w_dół((14 - numer(podciąg(data_od; 6; 2))) / 12)) - 3) + 2) / 5) + (numer(podciąg(data_od; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_od; 6; 2))) / 12))) * 365 + zaokr_w_dół((numer(podciąg(data_od; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_od; 6; 2))) / 12))) / 4) - zaokr_w_dół((numer(podciąg(data_od; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_od; 6; 2))) / 12))) / 100) + zaokr_w_dół((numer(podciąg(data_od; 1; 4)) + 4800 - (zaokr_w_dół((14 - numer(podciąg(data_od; 6; 2))) / 12))) / 400) - 32045)

2. Zastanawiam się czy można by stworzyć kalendarz wolnych dni i to sprawdzać dodatkowo we wniosku urlopowym ?

Pozdrawiam,
ew

Następna dyskusja:

SharePoint Desinger 2010 - ...




Wyślij zaproszenie do