PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Ewidencja Czasu Pracy - Poprawki
  przez wrares (69 odsłon)
Do programu Ewidencja Czasu Pracy , wprowadziliśmy poprawkę, która eliminuje błąd, przy wyliczaniu ilości godzin, które zostały podane we wszystkich arkuszach, a są wykorzystywane w zestawieniach. Podajemy także wyjaśnienie, zwrotu pustych wartości, przy sumowaniu wszystkich zapisów kiedy arkusz używany jest z programem OpenOffice.
Nim zaczniemy omawiać powyższe przypadki pobierzmy plik Kardeks... i wykonajmy następujące czynności
Cytat:


1) Założenie katalogu c:\Kardeks

2) Pobranie pliku na dysk lokalny do katalogu Kardeks

3) Rozpakowanie pliku Kardeks.zip



Po tych czynnościach, otrzymamy katalog, z plikami skryptów oraz docelowymi arkuszami.

Obecnie wykonujemy następujące zadanie
Cytat:


1) Uruchomienie skryptu kartoteka.pl i utworzenie arkusza w standardzie Excel o nazwie kartoteka.xls

2) Uruchomienie skryptu czytaj.pl i utworzenie arkusza w standardzie Excel o nazwie zestawienie.xls

3) Uruchamiamy program OpenOffice, a w Nim wczytujemy arkusz zestawienie.xls



Widzimy że pomimo istnienia danych dniówkowych w arkuszu kartoteka.xls, żadne podsumowanie nie zostało wygenerowano w arkuszu zestawienie.xls
Jak sobie z tym poradzić ?. Rozwiązanie jest proste

Cytat:


1) Uruchamiamy program OpenOffice

2) Wczytujemy arkusz kartoteka.xls

3) Dokonujemy dowolnej zmiany

4) Przy pytaniu w jakim formacie ma być zapisany arkusz - wybieramy Microsoft Excel

5) Ponownie wykonujemy skrypt czytaj.pl

6) Otrzymujemy podsumowanie ze wszystkich arkuszy



Drugi błąd dotyczy błędnego wyliczania godzin w zestawieniach. W poprzedniej wersji wpisanie w pierwszym arkuszu kartoteka.xls np 4 godzin, powodowało naliczenie w zestawieniu 36 godzin gdy arkuszy było 9 (9 x 4 = 36). I to pomimo tego, że dotyczyło tylko jednego pracownika. W tym wydaniu dopisaliśmy dodatkową funkcję w pliku czytaj.pl

 
sub czysc {
      
      $symbole{zm1} = 0;
      $symbole{zm2} = 0;
      $symbole{zm3} = 0;
      $symbole{n50} = 0;
      $symbole{n100} = 0;
      $symbole{Uw} = 0;
      $symbole{Um} = 0;
      $symbole{Ok} = 0;
      $symbole{Wy} = 0;
      $symbole{Uo} = 0;
      $symbole{Ub} = 0;
      $symbole{Sz} = 0;
      $symbole{Ch} = 0;
      $symbole{Od} = 0;
      $symbole{Op} = 0;
      $symbole{Nn} = 0;
      $symbole{Dl} = 0;
      $symbole{Bl} = 0;
      $symbole{Rh} = 0;
      $symbole{Iu} = 0;
      $symbole{godziny} = 0;
           
}


i wywołują ją tutaj

for ($i = 1; $i <= $liczba_arkuszy; $i++) {
  
      &suma_dla_wszystkich;      
  
      $wyniki{zm1}  += $symbole{zm1};
      $wyniki{zm2}  += $symbole{zm2};
      $wyniki{zm3}  += $symbole{zm3};
      $wyniki{n50}  += $symbole{n50};
      $wyniki{n100} += $symbole{n100};
      $wyniki{Uw}   += $symbole{Uw};
      $wyniki{Um}   += $symbole{Um};
      $wyniki{Ok}   += $symbole{Ok};
      $wyniki{Wy}   += $symbole{Wy};
      $wyniki{Uo}   += $symbole{Uo};
      $wyniki{Ub}   += $symbole{Ub};
      $wyniki{Sz}   += $symbole{Sz};
      $wyniki{Ch}   += $symbole{Ch};
      $wyniki{Od}   += $symbole{Od};
      $wyniki{Op}   += $symbole{Op};
      $wyniki{Nn}   += $symbole{Nn};
      $wyniki{Dl}   += $symbole{Dl};
      $wyniki{Bl}   += $symbole{Bl};
      $wyniki{Rh}   += $symbole{Rh};
      $wyniki{Iu}   += $symbole{Iu};
      $wyniki{godziny} += $symbole{godziny};
      
      &czysc;
      
   
}



Wszyscy którzy korzystają z tego rozwiązania powinni dokonać podmiany skryptów.






Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :