Kashiash's Blog

o programowaniu inaczej : jak zrobić i się nie narobić

Ewidencja pojazdów – nowe tabele

Posted by kashiash w dniu 29 stycznia, 2011

Skoro ma być to ewidencja pojazdów to przydałoby się w niej przechowywać informację o wydatkach z tym pojazdem związanych.

W tym celu dodamy FuelLog oraz 2 tabele słownikowe na koncern paliwowy i rodzaj paliwa :

FuelLog
PkFuelLog KEY(Ful:Id),DUP,NOCASE
KeyVehicle KEY(Ful:Vehicle),DUP,NOCASE
KeyBrand KEY(Ful:Brand),DUP,NOCASE
KeyFuelType KEY(Ful:FuelType),DUP,NOCASE
Kolumny
Id LONG
Vehicle LONG
FillUpDate DATE
Quantity REAL
TotalCost REAL
Notes STRING(100)
StartingOdometer LONG
EndingOdometer LONG
OdometerChange LONG
Brand LONG
FuelType LONG
Brands
PkBrands KEY(Bra:Id),DUP,NOCASE
KeyBrand KEY(Bra:Brand),DUP,NOCASE
Kolumny
Id LONG
Brand STRING(51)
FuelTypes
PkFuelTypes KEY(Fty:Id),DUP,NOCASE
KeyFuelType KEY(Fty:FuelTypes),DUP,NOCASE
Kolumny
Id LONG
FuelTypes STRING(50)

Do tego określimy relacje pomiędzy tabelami :

FuelTypes <->> FuelLog

Vehicles <->> FuelLog

Brands <->> FuelLog

I W tabeli w zakładkach Validate check ustawimy odpowiednio wpisy w must be in file dla poł Vehicle, Brand i FuelType

Ustawiamy dla nich UseSpinner i DSP dla wyżej wspomnianych kolumn

 

W efekcie końcowym dostaniemy strukturę bazy jak poniżej:

Zapisujemy i generujemy kod naszej aplikacji.

Doszły nam 3 nowe tabele i potrzebujemy dla nich ikonek. Bez nich nie uda nam się uruchomić aplikacji.

Potrzebujemy brands.png, fuelstypes.png oraz fuellog.png, które należy wgrać do katalogu res/drawables.

Uruchamiamy nasza aplikację i naszym oczom powinien pojawić się następujący widok:

Jak widać zaczyna nam brakować miejsca, w pewnym stopniu pomogłoby zmniejszenie ikon z 48×48 na mniejsze, albo nie pokazywanie wszystkich tych przycisków na głównym menu aplikacji. Tym tematem zajmiemy się później, teraz popatrzmy co nam wyszło ;).

Ewidentnie mamy problem z miejscem, ale mamy w końcu nieocenionego MOBY!

W File User Options ustawiamy PromptsInLine(true) po przegenrowaniu:

To samo możemy ustawić na Vehicles : PromptsInLine(true).

W obecnej wersji aby wejść do listy z zakupami mieliśmy 2 możliwości: albo wchodzimy prosto z menu, albo z pojazdu poprzez przycisk menu.

Jeśli ustawimy UseTabHost(true) w FileUserOptions dla Vehicles, to program wygeneruje kod tak, że lista będzie widziana także na osobnej zakładce w oknie edycji pojazdu



W kolejnych krokach popracujemy nad listą danych wyswietlanych w pojazdach i logu tankowań, na razie pobawcie się nowa aplikacją androidową

Dlaczego to nie chce mi się skompilować ?

Jeśli otrzymujemy komunikat ze nasz projekt zawiera błędy i nie możemy go uruchomić zaglądamy na zakładkę PROBLEMS

poniżej przykład komunikatu na który pomaga wyczyszczenie projektu

Walkę ze wszystkimi problemami proponuje zaczynać od operacji wyczyszczenia projektu:

wybieramy Project/Clean i obserwujemy, co się wyświetla na zakładce Problems

komunikat najbardziej prawdopodobny w aplikacja wygenerowanej przez MOBY – brakuje nam ikonek.

Wgrywamy o wymaganej nazwie do katalogu res/drawables i powinno być po sprawie

Dodaj komentarz