Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Witam wszystkich,

W widoku 'Alokacja zasobów' wyświetlam 'Obciążenie zasobów'(pracownicy) z kolumnami 'Nazwa zadania sumarycznego' oraz 'Praca' z sumaryczną liczbą godzin, np. 200 w miesiącu.
Chciałbym jednak, aby w kolumnie 'Praca' (lub nowej) wyświetlana była liczba godzin w zależności od tego, jaki określę przedział czasu pracy dla danego pracownika - ograniczę np. do dwóch tygodni.

Będę wdzięczny za pomocne informacje.
Pozdrawiam.

[Edit]
MS Project 2007Marcin Samelak edytował(a) ten post dnia 07.09.08 o godzinie 12:52
Tomasz Kraiński

Tomasz Kraiński PM / PPM consulting
/ coaching /
training

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Nie do końca rozumiem intencję.
Sugeruję zastosowanie standardowego raportu "Obciążenie Zasobów"
Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Nie o raporcie myślałem.

W kolumnie 'Praca' (lub innej) chciałbym aby ilość godzin zmieniała się w zależności od określonego przeze mnie przedziału czasu.
Będzie to bajka jeśli ilość godzin będzie sie zmieniała w zalezności od tego, ile dni (mcy) widzę obok lub poprzez zaznaczenie.
Link do screena:
Obrazek
Tomasz Kraiński

Tomasz Kraiński PM / PPM consulting
/ coaching /
training

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

To się poddaję, bo sugestię żeby zmienić skalę czasu (n.p. na tygodniową) z prawej strony traktuję jako zbyt trywialną. ;)
Dariusz Waldemar Moczyński

Dariusz Waldemar Moczyński Usługi Informatyczne

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

VBA - kłania się.
Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Dariusz Waldemar Moczyński:
VBA - kłania się.

Przyszło mi to do głowy.
Zastanawiam się teraz nad rozwiązaniem dla przeciętnego śmiertelnika.
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Marcin Samelak:
Dariusz Waldemar Moczyński:
VBA - kłania się.

Przyszło mi to do głowy.
Zastanawiam się teraz nad rozwiązaniem dla przeciętnego śmiertelnika.

To jest rozwiązanie dla przeciętnego śmiertelnika:
"To się poddaję, bo sugestię żeby zmienić skalę czasu (n.p. na tygodniową) z prawej strony traktuję jako zbyt trywialną. ;) "
Kamil Kozieł

Kamil Kozieł Dyrektor
zarządzający - IT
School

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Potrzebujesz trzech dodatkowych kolumn.

1. Daty początkowej
2. Daty końcowej
3. Pola z czasem trwania

Pole z czasem trwania obliczasz za pomocą formuły, która uwzględnia datę początkową i datę końcową.

Pozdrawiam,
Kamil
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Kamil Kozieł:
Potrzebujesz trzech dodatkowych kolumn.

1. Daty początkowej
2. Daty końcowej
3. Pola z czasem trwania

Pole z czasem trwania obliczasz za pomocą formuły, która uwzględnia datę początkową i datę końcową.

Pozdrawiam,
Kamil

Kolumna "Praca" zawiera sumaryczną ilość pracy:
1. nad zadaniem - na widoku zadaań (np. Wykres Gantta)
2. zasobu w projekcie - na widoku zadobów (np. arkusz zasobów)
3. zasobu nad CAŁYM zadaniem - na widoku przydziałów (np. obciążenie zasobów)

Jeśli znasz nazwę funkcji, która jest w stanie oprzeć się na datach (pewnie jakieś funkcje kalendarza, jeśli w ogóle), to pewnie dałoby się to policzyć. Musiałby się chyba nazywać:
SUMOFWORKBETWEENTWODATES :)))

Nie mam przed sobą Projecta, więc nie jestem w stanie stwierdzić tego na pewno. Ale na 99% moim zdaniem nie można tego policzyć, bo kolumna praca już jest sumą :)

pozdr
Iza
Kamil Kozieł

Kamil Kozieł Dyrektor
zarządzający - IT
School

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Izabela Korzińska:
Kamil Kozieł:
Potrzebujesz trzech dodatkowych kolumn.

1. Daty początkowej
2. Daty końcowej
3. Pola z czasem trwania

Pole z czasem trwania obliczasz za pomocą formuły, która uwzględnia datę początkową i datę końcową.

Pozdrawiam,
Kamil

Kolumna "Praca" zawiera sumaryczną ilość pracy:
1. nad zadaniem - na widoku zadaań (np. Wykres Gantta)
2. zasobu w projekcie - na widoku zadobów (np. arkusz zasobów)
3. zasobu nad CAŁYM zadaniem - na widoku przydziałów (np. obciążenie zasobów)

Jeśli znasz nazwę funkcji, która jest w stanie oprzeć się na datach (pewnie jakieś funkcje kalendarza, jeśli w ogóle), to pewnie dałoby się to policzyć. Musiałby się chyba nazywać:
SUMOFWORKBETWEENTWODATES :)))

Nie mam przed sobą Projecta, więc nie jestem w stanie stwierdzić tego na pewno. Ale na 99% moim zdaniem nie można tego policzyć, bo kolumna praca już jest sumą :)

pozdr
Iza

Cóż, czasem 1% może mieć większe znaczenie niż 99% ;)

1. Jak wspomniałem poprzednio potrzebujesz dwóch kolumn z datami.
2. W kolumnie typu numer wstawiasz formułę:

(ProjDateDiff([Data1];[Data2];[Kalendarz bazowy])/480)*([Praca]/480/(projdatediff([Rozpoczęcie];[Zakończenie];[Kalendarz bazowy])/480))

Najważeniejsze, to przy jej tworzeniu pamiętać o żelaznaj zasadzie w Projekcie: Praca = Czas trwania x Jednostki

To rozwiązanie pozwala obliczyć pracę zasobu między dwiema datami. Bardzo podbne w Wykresie Gantta lub dowolnym innym tabelarycznym widoku zadaniowym można utworzyć dla całego zadania.

Poniżej link do zjęcia:

http://www.itschool.pl/sum.png


Obrazek
Kamil Kozieł edytował(a) ten post dnia 11.09.08 o godzinie 10:24
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Kamil Kozieł:
Cóż, czasem 1% może mieć większe znaczenie niż 99% ;)

1. Jak wspomniałem poprzednio potrzebujesz dwóch kolumn z datami.
2. W kolumnie typu numer wstawiasz formułę:

(ProjDateDiff([Data1];[Data2];[Kalendarz bazowy])/480)*([Praca]/480/(projdatediff([Rozpoczęcie];[Zakończenie];[Kalendarz bazowy])/480))

Najważeniejsze, to przy jej tworzeniu pamiętać o żelaznaj zasadzie w Projekcie: Praca = Czas trwania x Jednostki

To rozwiązanie pozwala obliczyć pracę zasobu między dwiema datami. Bardzo podbne w Wykresie Gantta lub dowolnym innym tabelarycznym widoku zadaniowym można utworzyć dla całego zadania.

Kamil,
Zrób to samo dla zasobu, pracującego przez 2 tygodnie od 8 do 19 września tyle godzin dziennie:
Dzień: 8, 9, 10, 11, 12, 15, 16, 17, 18, 19
Praca(w godz.): 8, 8, 0, 0, 4, 0, 0, 8, 8, 4

Data1 := 2008-09-11
Data2 := 2008-09-16

Jeśli Ci wyjdzie w wyniku pół dnia pracy, to wygrałeś :) Dla pewności - nie ustalaj dni wolnych w kalendarzu bazowym innych, niż standardowe :)

Moim zdaniem to ładne równianie działa, kiedy nie ma przerwy w pracy. Ale jak już wspominałam - nie mam przed sobą Projecta.

pozdr
Iza
Kamil Kozieł

Kamil Kozieł Dyrektor
zarządzający - IT
School

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Izabela Korzińska:
Kamil Kozieł:
Cóż, czasem 1% może mieć większe znaczenie niż 99% ;)

1. Jak wspomniałem poprzednio potrzebujesz dwóch kolumn z datami.
2. W kolumnie typu numer wstawiasz formułę:

(ProjDateDiff([Data1];[Data2];[Kalendarz bazowy])/480)*([Praca]/480/(projdatediff([Rozpoczęcie];[Zakończenie];[Kalendarz bazowy])/480))

Najważeniejsze, to przy jej tworzeniu pamiętać o żelaznaj zasadzie w Projekcie: Praca = Czas trwania x Jednostki

To rozwiązanie pozwala obliczyć pracę zasobu między dwiema datami. Bardzo podbne w Wykresie Gantta lub dowolnym innym tabelarycznym widoku zadaniowym można utworzyć dla całego zadania.

Kamil,
Zrób to samo dla zasobu, pracującego przez 2 tygodnie od 8 do 19 września tyle godzin dziennie:
Dzień: 8, 9, 10, 11, 12, 15, 16, 17, 18, 19
Praca(w godz.): 8, 8, 0, 0, 4, 0, 0, 8, 8, 4

Data1 := 2008-09-11
Data2 := 2008-09-16

Jeśli Ci wyjdzie w wyniku pół dnia pracy, to wygrałeś :) Dla pewności - nie ustalaj dni wolnych w kalendarzu bazowym innych, niż standardowe :)

Moim zdaniem to ładne równianie działa, kiedy nie ma przerwy w pracy. Ale jak już wspominałam - nie mam przed sobą Projecta.

pozdr
Iza

Iza,

Przypuszczam, że Autor posta, zadając to pytanie, raczej chciał wiedzieć jak to zrobić, a nie jak tego nie robić i słyszeć, że mam przed sobą projecta...

Moje rozwiązanie działa jeżeli:

- Zadanie nie jest przerwane
lub
- Dostosujemy odpowiedni kalendarz, co nie jest specjalnie trudne.

Jeżeli potrzebujemy uniwersalnego rozwiązania to faktycznie potrzeby będzie VBA, a konkretnie jedno z następujących makr:

Zakres wrzucony do pola czas trwania:

Sub PracaPrzedzialtemp()

Dim z As Resource
Dim Przedzial As TimeScaleValues, Ile As Long

Dim Praca As Double
Dim SumPraca As Double

Dim Rozp As Date
Dim Zak As Date

For Each z In ActiveProject.Resources

SumPraca = 0

Rozp = z.Start1
Zak = z.Finish1

Set Przedzial = z.TimeScaleData(Rozp, Zak, TimeScaleUnit:=pjTimescaleDays)

For Ile = 1 To Przedzial.Count

If Przedzial(Ile).Value = "" Then
Praca = 0
Else
Praca = Przedzial(Ile).Value
End If

SumPraca = SumPraca + Praca

Next Ile

z.Duration1 = SumPraca

Next z
End Sub

Zakres wrzucony do pola numer:

Sub PracaPrzedzial()

Dim z As Resource
Dim Przedzial As TimeScaleValues, Ile As Long

Dim Praca As Double
Dim SumPraca As Double

Dim Rozp As Date
Dim Zak As Date

For Each z In ActiveProject.Resources

SumPraca = 0

Rozp = z.Start1
Zak = z.Finish1

Set Przedzial = z.TimeScaleData(Rozp, Zak, TimeScaleUnit:=pjTimescaleDays)

For Ile = 1 To Przedzial.Count

If Przedzial(Ile).Value = "" Then
Praca = 0
Else
Praca = Przedzial(Ile).Value
End If

SumPraca = SumPraca + Praca

Next Ile

z.Number1 = SumPraca / 60

Next z
End Sub

Peace :PKamil Kozieł edytował(a) ten post dnia 19.10.09 o godzinie 00:31
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Kamil Kozieł:

Iza,

Przypuszczam, że Autor posta, zadając to pytanie, raczej chciał
wiedzieć jak to zrobić, a nie jak tego nie robić i słyszeć, że mam przed sobą projecta...

itd...

To nie tak - po prostu:
1. przeczytałam dokładnie prośbę Marcina
2. obejrzałam screena, którego podesłał - na nim widać, że praca, którą chce sumować nie jest ciągła
3. Rzuciłam okiem na Twój wzór i doszłam do wniosku, że działa tylko dla pracy ciągłej (lub ciągłej wg kalendarza)
4. Podałam kontrprzykład na to, że Twój wzór nie rozwiązuje problemu Marcina.

Nie pisz, proszę, że ja szukam dziury w całym, bo tak nie jest. Tylko sprawdziłam, że Twoje rozwiązanie nie jest rozwiązaniem problemu Marcina. Kontrprzykład jest najlepszym sposobem, żeby to pokazać.
Prawdopodobnie makro, które wkleiłeś rozwiąże jego problem.

pozdr
Iza
Kamil Kozieł

Kamil Kozieł Dyrektor
zarządzający - IT
School

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Izabela Korzińska:
>...
Nie pisz, proszę, że ja szukam dziury w całym, bo tak nie jest. Tylko sprawdziłam, że Twoje rozwiązanie nie jest rozwiązaniem problemu Marcina. Kontrprzykład jest najlepszym sposobem, żeby to pokazać.
Prawdopodobnie makro, które wkleiłeś rozwiąże jego problem.

pozdr
Iza


Ok, ale ciągle uważam, że dla wybranego zasobu przy odpowiednim kalendarzu, pierwsze rozwiązanie jest słuszne i stosunkowo proste nawet dla nie-programistów.

A z makr przynajmniej ktoś skorzysta.

Pozdrawiam Serdecznie:)
Łukasz Werno

Łukasz Werno Synergia-concept.pl

Temat: Obciążenie zasobów - godziny pracy w przedziale czasu

Marcin Samelak:
Dariusz Waldemar Moczyński:
VBA - kłania się.

Przyszło mi to do głowy.
Zastanawiam się teraz nad rozwiązaniem dla przeciętnego śmiertelnika.

Polecam:
http://www.scribd.com/doc/2052714/VBA-UNLEASHED?query2...Łukasz Werno edytował(a) ten post dnia 11.09.08 o godzinie 16:22



Wyślij zaproszenie do