Professional Documents
Culture Documents
Odvjetniki ured
Boris Handiski
1. Uvod
1. Uvod
Tema ovog diplomskog rada je izrada raunalne aplikacije za automatizaciju
poslovanja odvjetnika u hrvatskom pravnom sustavu.
Prilikom kratkotrajnog rada u jednom tajnikom uredu, uoio sam dvije velike
neefikasnosti u radu: prvo, veliku
koliinu papirologije koja je bila nuna za
svakodnevne poslove, kao npr. izdavanje putnih naloga, potvrda, urudbiranje, uz
ponavljanje aktivnosti tipa ispunjavanja kuica istim standarnim tekstom (npr. redni
broj dokumenta itd.), ispravljanje pogreaka korektorom, traenja starih dokumenata
po ladicama, ili jo gore po mapama zaposlenika, koje naravno, osim to su bile pune
praine, nisu bile sortirane po prezimenu.
Drugi problem je bila uporaba raunala prilikom izrade Word dokumenata. Svaki novi
Word dokument je imao poseban format (zbog nekoritenja obrazaca) i to je jo
gore, nije bilo naina da se jednom izraeni dokument brzo pronae i otvori na
raunalu.
Ovo neugodno iskustvo potaknulo me da za temu diplomskog rada uzmem upravo
podruje uredskog poslovanja i izradu aplikacije koja e automatizacijom olakati rad
uredskog korisnika. Budui da je moj brat odvjetnik, uinilo mi se pogodnim da
iskoristim pravo pristupa dokumentima i informacijama koje ta rodbinska veza
osigurava kao i dodatnu pogodnost da ovaj rad nee imati samo svrhu ispunjenja
mojih studentskih obaveza, ve i praktinu korist olakavanja rada stvarnoj osobi u
stvarnom svijetu. Tako se rodila ideja o izradi aplikacije za automatizaciju rada
odvjetnika, neto to je zvualo dovoljno originalno za temu diplomskog rada dok je
istovremeno imalo opravdanje u stvarnim potrebama korisnika.
Koliko sam u svome pokuaju uspio, ostavljam na reviziju strunoj komisiji, uz
primjedbu da sam tokom izrade mogao uoiti brojne naine na koje bi se
funkcionalnost aplikacije mogla proiriti, kao i na vlastitu nemogunost da neke strane
poslovanja automatiziram, obzirom na koliinu vremena i moje limitirane sposobnosti.
Aplikacija koju prilaem nije svakako optimalna aplikacija na tritu i u mnogim
svojstvima moe se uiniti neprikladna; ipak, nadam se da se moj trud zadovoljiti
kako komisiju, tako i (potencijalnog) krajnjeg korisnika.
U izradi diplomskog rada slijedio sam postupke sistem-analize, od poetnog
upoznavanja sa strukturom poslovanja i koritenih podataka (vidi 2. i 3.1.), uoavanja
problema u sadanjem radu (3.2.), definiranja ciljeva informatizacije (3.3.), zatim
kroz fazu analize izradom modela funkcija, procesa i podataka (vidi 3.5., 3.6. i 3.7.)
koji e posluiti kao osnova za izradu baze podataka i pisanje programskog koda u fazi
izrade.
2. Prikupljanje informacija
2. Prikupljanje informacija
2.1. Intervju
Intervju [1] je razgovor izmeu (najee) dvoje ljudi, s ciljem utvrivanja injenica o
sustavu kojeg analiziramo. Intervju je primarna tehnika prikupljanja informacija jer
omoguava neposredan pristup u rad poslovne organizacije. Razlog tome je to se
neusiljenim, elastinim razgovorom moe doi do injenica koje ostale metode (npr.
prikupljanje dokumenata, promatranje rada) zbog svoje neizravnosti i udaljenosti od
subjekta promatranja ne omoguuvaju. Intervju se priprema utvrivanjem liste
pitanja koja se ele postaviti, dok se dodatna pitanja formuliraju kao reakcija na
odgovore ispitanog, ime se brzo dolazi do vanih informacija o sustavu.
Ciljevi
1.
2.
3.
4.
5.
Slijedi prijepis razgovora. (neka pitanja i odgovori su rezultat kasnijih pitanja koja su
proputena tijekom prvog sastanka). Intervju je voen na radnom mjestu odvjetnika,
dok su kasniji upiti obavljeni preko telefona i u drugim neformalnim prilikama. Pitanja
su oznaena dvotokom (:), dok su odgovori dani ispod njih.
:ime se bavi odvjetniki ured?
Ured zastupa stranke pred sudom, za njih komunicira s ostalim entitetima, poput
dravnim tijelima i os. drutvima.
Stranke:
:Kako stranka pristupa uredu?
Obino telefonskim pozivom, stranka moe doi i osobno u ured.
:to ini odvjetnik nakon zaprimanja zahtjeva?
Odvjetnik uzme osobne podatke od stranke i trai informacije o sluaju.
:Kako poinje postupak?
Odvjetnik prihvaa zastupanje i otvara se folder (mapa) s imenom stranke. Pokree
se proces nabave i pisanja dokumenata specifinih za sluaj.
:Kako se unutar ureda dodjeljuju predmeti?
Nema neke vrste formule. Predmet preuzima odvjetnik koji je primio poziv od
stranke.
:Kakva je komunikacija sa strankom tokom postupka?
Od nje se mogu traiti dokumenti, telefonski je se moe obavijestiti o toku postupka.
:Da li se predmet moe prekinuti?
Moe.
:Tipovi stranaka?
Fizike i pravne osobe.
Rad sa sudom:
:Tipovi dokumenata koji se predaju sudu.
albe, tube, obrane, registracije, podnesci, ...
2. Prikupljanje informacija
2. Prikupljanje informacija
stranci.
2. Prikupljanje informacija
dodavanje usluge i izradu rauna. Tarifni model opisuje usluge koje odvjetnici pruaju
u Republici Hrvatskoj, kao i broj bodova (ili iznos kuna) koje nose. Kompleksnost ovog
modela je iziskivala brojne naknadne upite i pojanjenja, koja nisu dani u intervjuu.
Takoer mi je predan Dnevnik rada za 2004. godinu u kojem su upisane vremenske
obaveze, to mi je posluilo prilikom izrade kalendarskog modula.
3. Analiza sustava
3. Analiza sustava
3.1. Problemsko podruje
Posao odvjetnika moe se ukratko opisati sa sljedeim aktivnostima:
- Otvaranje sluaja / primanje stranke
o Stranka inicira kontakt sa odvjetnikom, bilo telefonski/pismeno
(ei sluaj) ili osobnim dolaskom u ured (rjee).
o Odvjetnik se upozna sa sluajem u najkraim crtama. Nakon to
odlui prihvatiti stranku i njen sluaj, uzima njene podatke, otvara
predmet i izrauje uputu koja opisuje sluaj i pravni poloaj stranke.
-
Prikupljanje dokumenata
o Ponekad je nuno traiti dokumente od dravnih tijela, npr.
Uvjerenja o poreznim obavezama, o stanju na iro-raunu, o visini
naknade za tjelesno oteenje. Odvjetnik sastavlja zahtjev za tim
dokumentima i alje ih odreenim tijelima.
Sastavljanje dokumenata
o Odvjetnik priprema dokumente za sudsko roite, ili za slanje
ostalim entitetima (npr. javnom biljeniku ili osiguravajuem
drutvu).
Zatvaranje sluaja
o U sluaju prekida predmeta ili donoenja konane presude, odvjetnik
sluaj zatvara i stranci izrauje raun, s brojem iro-rauna na kojeg
se oekuje isplata.
3. Analiza sustava
zatim spremanje na tvrdi disk. Imena datoteka koje odvjetnik pridaje su neuniformna i
predstavljaju problem pri kasnijem pronalaenju.
Otvaranje novih direktorija je jedan nain s kojim se pokualo organizirati dokumente,
meutim uskoro je broj direktorija poeo smanjivati efikasnost produujui vrijeme
pretraivanja.
Odravanje ovakvog sustava je takoer problematino. Dokumenti koji vie nisu
potrebni ostaju neobrisani jer korisnik nema vremena istiti tvrdi disk, isti dokument
postoji u nekoliko kopija, rezultirajui u sve veem broju datoteka i smanjenju brzine
rada raunala.
Aplikacija bi trebala pruiti najveu utedu upravo u ovom podruju, jer bi dohvat
izraenog dokumenta bio mogu u vremenu do nekoliko sekundi.
3.3.1. Dokumenti
Aplikacija bi morala omoguiti izradu, pohranu, pregled i dohvat vlastitih dokumenata.
Treba koristiti obrasce i automatsko generiranje nekih dijelova teksta. Takoer bi
trebalo omoguiti laki rad prikazom zadnjih izraenih dokumenata prilikom
pokretanja aplikacije, tako da odvjetnik moe nastaviti rad gdje je stao.
Treba se omoguiti biljeenje primljenih vanjskih dokumenata. Omoguiti biljeenje
fizike lokacije dokumenta radi kasnijeg lakeg nalaenja.
3. Analiza sustava
3.3.3. Obaveze
Omoguiti dodavanje, pregled, promjenu i brisanje obaveza. Napraviti modul koji e u
prozoru izvan aplikacije upozoravati na istjecanje vremenskih obaveza. Omoguiti ispis
obaveza u Word datoteci radi lakeg praenja.
3.3.4. Pretraivanje
Omoguiti pretraivanje dokumenata, putnih naloga, putnih rauna i rauna uope,
entiteta, obaveza, stranaka, predmeta.
3.3.5. Izvjea
Omoguiti automatsko generiranje izvjea o predmetima, strankama, obavezama i
raunima (u odreenom vremenskom razdoblju). Izvjea su ispis podataka iz baze
podataka u Word datoteku. Npr. odvjetnik moda eli ispisati listu svojih stranaka u
Word predloku, ili moda ispis o podacima izdanih rauna s iznosom ukupne sume.
RADNA MJESTA:
Procesor: Intel Celeron 2.4 GHz,
Memorija:
o 40GB HDD
o 256MB, 266MHz DDR
Operacijski sustav: Windows XP
Printer
3. Analiza sustava
Treba dodati da prikazani model nije jedini niti definitivni prikaz funkcija odvjetnikog
ureda ve rezultat mog osobnog shvaanja tih funkcija.
3. Analiza sustava
10
STRANKA
ZAHTJEV
ODGOVOR DOKUMENTI
RAUN
P0
PRIJEDLOG
ZA OVRHU
PODNESAK
SUD
JAVNI
BILJENIK
ODVJETNIKI URED
PRESUDA
RJEENJE
NAGODBA
ZAHTJEV ZA
DOKUMENTIMA
ODTETNI
ZAHTJEV
DOKUMENTI ODGOVOR
DRAVNA TIJELA
OSIGURAVAJUE
DRUTVO
Stranka kontaktira ured radi pruanja odvjetnikih usluga. Prihvaajui stranku, ured
se dalje brine za komunikaciju s relevantnim entitetima, kreirajui dokumente,
zahtijevajui ih od drugih entiteta, zastupanjem stranke pred sudom itd. Pri zatvaranju
predmeta (ili iznimno za vrijeme njegovog trajanja), stranci se izdaje raun.
3. Analiza sustava
11
P1
zahtjev
STRANKA
odgovor
P4
podaci
ZAPRIMANJE
STRANKE
Stranke
podaci
podaci
o predmetu
Predmet
osobni
podaci
IZRADA
IZVJEA
P5
obaveza
Obaveze
obaveza
DEFINIRAJ
OBAVEZU
podaci
o predmetu
P6
P2
raun
PRIPREMI
RAUN
dokumenti
obaveza
raun
Rauni
usluge
Usluge
PODSJETI
raun
P3
DODAJ
USLUGU
P9
usluge
IZRADA
PUTNOG
NALOGA
vanjski dokument
putni
nalog
P7
EVIDENTIRAJ
VANJSKI
DOKUMENT
odgovor
OSIGURAVAJUE
DRUTVO
putni
nalog
rjeenje
P10
Vanjski
dokumenti
presude
dokumenti
SUD
DRAVNA
TIJELA
Putni
nalozi
Putni
rauni
putni
raun
IZRADA
PUTNOG
RAUNA
JAVNI
BILJENIK
Dokumenti
odtetni
zahtjev,
nagodba
podnesak
(tube, obrane,
albe, itd.)
zahtjev
za dokumentima
prijedlog
za ovrhu
P8
IZRADA
DOKUMENTA
dokument
3. Analiza sustava
12
Korisnik iz spremita Usluge odabire usluge koje eli dodati u raun. Nakon toga za
svaku dodanu uslugu izrauna se njena kunska vrijednost i zatim ukupan iznos svih
usluga. Na kraju se u spremite Rauni doda zapis o izradi rauna i izradi pripadni
dokument.
3. Analiza sustava
13
3. Analiza sustava
14
4. Aplikacija
15
4. Aplikacija
4.1. Tehnika specifikacija
Aplikacija Odvjetniki Ured omoguava automatizaciju rada odvjetnika u hrvatskom
pravnom sustavu (za detaljni opis rada pogledati toke 4.3. i 4.4.).
Vrsta aplikacije: Windows
Baza podataka: Microsoft SQL Server 2000
Programski jezik: Visual C#.NET
Iziskuje: .NET framework, Microsoft Word 2003
Aplikacija se dostavlja s instalacijskim paketom ije je instaliranje objanjeno u
sljedeoj toci.
paket
kreira
shortcut
za
pokretanje
aplikacije
na
desktopu
4. Aplikacija
16
4. Aplikacija
17
10
11
12
13
4. Aplikacija
18
3
5
10
4. Aplikacija
19
3
8
4
9
5
6
10
4. Aplikacija
20
3
4
3
5
4. Aplikacija
21
u slikovnom izborniku.
4. Aplikacija
22
1
2
4. Aplikacija
23
10
Kada je zavrena popuna polja, korisnik nastavlja pritiskom na gumb Dalje. Ovdje
sustav izvrava provjeru integriteta podataka. Npr. ako korisnik unese novu fiziku
osobu istog imena ili prezimena kaja ve postoji u bazi podataka, sustav ispisuje
sljedeu poruku:
4. Aplikacija
24
Korisnik moe nastaviti upis stranke u sluaju da se radi o drugoj osobi ili prekinuti i
otvoriti predmet za ve postojeu stranku.
Ako korisnik pokua otvoriti predmet za novu pravnu osobu ije ime ve postoji,
sustav ne doputa nastavak.
Sustav takoer provjerava unikatnost matinog broja (za sve nove stranke) i broja
osobne isprave (za fizike osobe), i u sluaju povrede integriteta zaustavlja postupak
i trai od korisnika da promijeni podatke.
Nakon uspjenog upisa podataka za otvaranje novog predmeta, korisniku se prua
opcija za izradu upute.
1
2
3
Korisnik odabire vrstu dokumenta, kao i entitet prema kojem eli poslati dokument.
Pritiskom na gumb Dalje, otvara se Word aplikacija sa obrascem koji odgovara tipu
dokumenta koji je odabran. Obrasci su izraeni za sljedee vrste dokumenata: alba,
tuba, obrana, zahtjev za dokumentima. Za ostale dokumente otvara se default prazni
obrazac sa zaglavljem, brojem dokumenta i datumom izrade.
4. Aplikacija
25
2
3
4
5
6
7
Slika 4.19.
dokument
Prozor
Novi
vanjski
za
4. Aplikacija
26
4. Aplikacija
27
2
9
3
10
11
Prilikom dodavanja usluga pritiskom na gumb (3) korisnik moe vidjeti upravo dodanu
uslugu u podatkovnoj mrei Usluge koja se nalazi u glavnom prozoru Predmet
(slika 4.5.). Budui da kontrolom (kao to je podatkovna mrea) moe manipulirati
samo dretva koja ju je kreirala (a to je dretva glavnog programa), ovo se moralo
izvesti tako da se formi za dodavanje usluga proslijedi delegat s imenom metode koja
popunjava podatkovnu mreu usluge (ta metoda je definirana u glavnom programu).
//Glavni program.
//Deklaracija delegata koji e pokazivati na metodu koja za
//parametar prima integer vrijednost
public delegate void PopulateDataGridUslugaCallback(
int nPredmet_ID);
//...
//Kreiranje instance forme za dodavanje usluge
//prosljeuje se delegat s imenom metode koja popunjava
//podatkovnu mreu s uslugama iz baze, vezano za broj predmeta
FormUsluga_Dodaj frmUslDod = new FormUsluga_Dodaj(
nPredmet_ID,
new PopulateDataGridUslugaCallback(
Populate_dgPredmet_Usluge)
);
DialogResult diaRes = frmUslDod.ShowDialog();
//FormUsluga_Dodaj
//Deklaracija delegata u kojeg e biti preslikan
//delegat koji je doao kao ulazni parametar
private PopulateDataGridUslugaCallback callback;
//konstruktor razreda
public FormUsluga_Dodaj(
int nPredmet_ID,
PopulateDataGridUslugaCallback callbackDelegate)
{
//...
//
callback = callbackDelegate;
}
4. Aplikacija
28
Svaki put kada se pritisne gumb (3) poziva se metoda Osvjezi() koja pak poziva
metodu iz glavnog programa na koju pokazuje callback delegat:
public void Osvjezi()
{
if (callback != null)
callback(nPredmet_ID);
}
U ovome trenutku korisnik moe dodati uslugu pritiskom gumba Dodaj uslugu, ime
se otvara izbornik objanjen u toci 4.4.6.
Nakon odabiranja usluga koje se eli ukljuiti u raun, pritiskom gumba Dalje poziva
se ugraena procedura koja u bazu upisuje relevantne podatke o raunu, kao iznos,
iro raun na kojem se trai uplata itd.
Ta ista procedura vraa parametre
Broj_Racuna, koja predstavlja redni broj rauna kojeg kreiramo, Datoteka, to je ime
datoteke pod kojim e se nalog spremiti, Dokument_ID, to je broj dokumenta pod
kojim se ovaj nalog vodi (svaki dokument ima jedinstveni broj). Nakon toga pokree
se generiranje Word dokumenta temeljenog na obrascu Racun.dot, koji je pokazan na
slici 4.42. Dodatne informacije o izradu rauna koritenjem Word objekta dane su u
toci 4.5.3.2.
4. Aplikacija
29
postaviti
sljedee
4. Aplikacija
30
Vidimo da neke vrijednosti odgovaraju onima iz forme, dok su druge (broj dokumenta,
broj naloga, ime putnika, zaglavlje) dohvaeni iz baze. Na kraju, datum generira sam
program.
4. Aplikacija
31
4. Aplikacija
32
U podatkovnoj mrei (1) daje se ispis trenutnih predmeta koje korisnik moe odabrati
tako da miem klikne na njihov redak. Pomou kontrole (2) moe se mijenjati prikaz
predmeta otvoreni|zatvoreni|svi. Na pritisak gumba Dalje, vrijednost aktivnog
predmeta (cGlobal.nAktivniPredmet) se postavlja na novu vrijednost koja je netom
odabrana.
u gornjem slikovnom
4. Aplikacija
33
1. Za sve predmete
Zaglavlje, podaci u tablici i datum se dinamiki generiraju dok je ostali tekst statiki
sadraj obrasca (obaveze.dot).
2. Za sve stranke
4. Aplikacija
34
4.4.12. Postavke
Opciju Postavke korisnik odabire izborom Meni -> Alati -> Postavke (F2), iz
tekstualnog izbornika, ili pritiskom na gumb
4. Aplikacija
35
Vano: Ako se korisnik odlui na promjenu vrijednosti direktorija npr. slika, mora
premjestiti relevantne datoteke u nove direktorije, u protivnom aplikacija nee raditi.
Radni direktorij se odnosi na direktorij u kojem se aplikacija pokree. Zadnji radni
direktorij je spremljen u bazi podataka i prilikom pokretanja aplikacije vri se provjera
da li je trenutni direktorij iz kojeg je aplikacija pokrenuta jednak onomu iz baze
podataka, odnosno zadnjem radnom direktoriju aplikacije. Ukoliko nije, vrijednost
radnog direktorija se postavlja na novu vrijednost. Ovaj postupak omoguava
uspjeno pokretanje aplikacije prilikom prijenosa na drugo raunalo i u drugi
direktorij.
4.4.12.3. Postavke odvjetnika
U zaglavlju dokumenata, prilikom izrade putnih naloga, kod izrade rauna, itd. nuno
je ispisati podatke o sadanjem korisniku aplikacije. Korisnik moe ove podatke
podesiti u prozoru Odvjetnik: (slika 4.35.)
4. Aplikacija
36
iz gornjeg
Ova akcija prvo u bazu podataka upisuje vrijednost trenutno aktivnog predmeta, kako
bi se taj predmet automatski pokrenuo kod sljedeeg pokretanja aplikacije, kao i
vrijednost radnog direktorija, zbog razloga opisanog u toci 4.4.12.2.
Nakon ovih operacija, program prekida vezu s bazom podataka, otputa zauzete
resurse objekata za komunikaciju s bazom podataka, (DataSet i DataAdapter) i prozor
se zatvara.
4.4.14. Dodaci
Osim glavnog prozora aplikacije, postoje jo i sljedei dodaci.
4.4.14.1. Splash screen
Jedna od opcija je ukljuivanje splash screen-a, odnosno malog prozora koji se
pojavljuje prije pokretanje aplikacije:
4. Aplikacija
37
4. Aplikacija
38
2003 operativni sustav, Microsoft Visual Studio .NET razvojno okruenje i Microsoft
Office 2003 programski paket, bili smo naklonjeni izabrati i Microsoft bazu podataka.
Jedna od moguih baza bila je i Microsoft Access, koja bi moda s obzirom na broj
relacija i broj zapisa bila pogodna za nae potrebe. Meutim ova baza, izmeu ostalog,
ne podrava ugraene procedure (stored procedures), to je presudno utjecalo na
izbor, jer nismo htjeli pisati SQL kod unutar C# koda.
Microsoft SQL Server koristi T-SQL (Transact-SQL Programming Language), jezik koji
je inaica SQL-a, jezika s kojim smo se upoznali tokom studija. T-SQL je jezik 3.
generacije i ne podrava koncepte objektno-orijentiranog programiranja, poput C#-a.
Za komunikaciju s bazom koristi se ADO.NET objektni model, koji je komponenta
Microsoft .NET Framework-a za pristup podacima. Glavni razred u ovom modelu je
DataSet, koji nam slui za pohranjivanje podskupa baze podataka, i DataAdapter, koji
izravno komunicira s bazom. Poblie su objanjeni u toci 4.5.1.2.1.
4.5.1.1. Povezivanje s bazom podataka
Za vezu s bazom podataka [4] zaduen je SqlConnection objekt. Budui da se sva
komunikacija s bazom odvija preko jedne veze, u razredu cGlobal definiran je objekt
SqlConnection con, koji je dostupan svim objektima:
public static SqlConnection con;
//Tekst veze
string sConnString = String.Format(
"Integrated Security=SSPI;"+
"Persist Security Info=False;"+
"User ID=dbo;"+
"Initial Catalog=Ured4;"+
"Data Source=localhost;"+
"Packet Size=4096;");
cGlobal.con = new SqlConnection(sConnString);
cGlobal.con.Open();
Prekidanje veze se ostvaruje s naredbom:
cGlobal.con.Close();
4.5.1.2. Rad s podacima iz baze
Za dohvat i izmjenu podataka u bazi podataka koristimo se ugraenim procedurama
(stored procedure). Ovo je prikladnije od pisanja T-SQL koda u kod-editoru C# jezika
jer se greka u kodu lake otkrije (Sql Server 2000 okruenje ne doputa kreiranje
procedure koja nije leksiki/sintaksno korektna). Druga stvar je poveana preglednost
C# koda, jer tako u njemu sada nema dugih T-SQL naredbi. Tree, ugraene
procedure se ne prevode (compiling) svaki put prilikom poziva kao to je to sluaj s TSQL kodom, nego su ve prevedene jednom prilikom kreiranja, to ubrzava rad.
etvrto, ugraene procedure uvode strukturiranost u rad s bazom jer istu proceduru
moemo promatrati kao modul s ulazom i izlazom, iji kod ne moramo pamtiti jer nam
je bitno samo ponaanje te procedure. Na primjer, imamo sluaj da jedna da jedna
procedura poziva drugu, ili da se jedna procedura poziva s vie mjesta u C# kodu.
Sve ovo znai da je rad s procedurama puno laki za programera od direktnog rada s
T-SQL kodom. Na nekim mjestima gdje je kod trivijalan, odluili smo se za pisanje TSQL koda iz tijela programa, ali rije je o malom broju iznimaka.
Na kraju, ugraene procedure neposredno pruaju fleksibilnost u kodiranju i to na
sljedei nain: ako procedura prima ulazne parametre (ili ima izlazne parametre), i
4. Aplikacija
39
4. Aplikacija
40
4. Aplikacija
41
Razlika u ova dva pristupa je da SqlDataReader objekti mogu samo itati retke iz
baze i ne mogu se koristiti za umetanje/auriranje/brisanje. Brzina dohvata redaka je
prednost ovog naina.
Objekti razreda DataSet omoguuju pohranjivanje kopije podataka iz baze, s kojom se
kopijom moe raditi i kad smo od baze odspojeni. DataSet objekt omoguava (kao to
je gore prikazano) promjenu podataka u bazi. Takoer, jedan DataSet objekt moe
sadravati nekoliko relacija iz baze. Naredbom:
//dad SqlDataAdapter objekt
//ds DataSet objekt
dad.Fill(ds, "Ime_Tablice");
u objekt ds sprema se relacija pod imenom Ime_Tablice. Kada kasnije elimo
dohvatiti tu relaciju to inimo navodei joj ime:
ds.Tables["Ime_Tablice"]
4.5.1.2.3. Razred CurrencyManager
Ovaj razred koristimo za rukovanje s vezanim objektima (Binding objects). U naoj
aplikaciji koristimo objekt ovog razreda za navigaciju kroz kolekciju predmeta (vidi
sliku 4.5, znak 8). Iz baze podataka itamo podatke vezane za predmet (broj
predmeta, vrijednost, itd.) i te podatke spremamo u tablicu:
SqlCommand com = new SqlCommand("
uspPredmetSelectSve", cGlobal.con);
com.CommandType = CommandType.StoredProcedure;
dadPredmet = new SqlDataAdapter(com);
try {
dadPredmet.Fill(dsAll, "Predmet_Data");
}
Sada za taj izvor podataka specificiramo CurrencyManager objekt:
cmPredmet =
(CurrencyManager)this.BindingContext[dsAll.Tables["Predmet_Data"]];
Koristei Position svojstvo CurrencyManager-a, moemo se kretati kroz kolekciju
predmeta, npr. za kretanje naprijed:
//Ako nismo na kraju
if (cmPredmet.Position < cmPredmet.Count - 1)
{
cmPredmet.Position++; //sljedei
}
4.5.1.3. Prikaz podataka iz baze u aplikaciji
Podatke koje dohvaamo iz baze nuno je prikazati korisniku u razumljivom i
pristupanom obliku. U tu svrhu koristili smo sljedee System.Windows.Forms
kontrole:
4.5.1.3.1. Tekst-kuice (TextBox)
Tekst-kuice se obino koriste za unos podataka od stranke korisnika, meutim u
njima se mogu i ispisivati informacije. U ovom sluaju je prvenstveno rije o
4. Aplikacija
42
jednostavnim, kratkim podacima, npr. broju ili rijei. Tekst-kuice moemo popuniti,
npr. izravnim pridjeljivanjem:
//txtKucica ce sadrzavati vrijednost stupca Ime_stupca
txtKucica.Text = dr["Ime_Stupca"].ToString());
//gdje je dr[Ime_Tablice] vrijednost stupca u retku dr
Puno ea i korisnija uporaba ove kontrole je s pomou podatkovnog-povezivanja
(DataBinding). Rije je o tome da neko svojstvo tekst-kuice (npr. Text) poveemo s
nekim izvorom podataka (npr. DataSet), tako da se prilikom listanja po tom izvoru
podataka, vrijednost Text svojstva tekst-kuice mijenja ovisno o trenutnom retku
DataSet-a. Npr:
//Podatkovno-povezivanje:
txtPredmet_ID.DataBindings.Add(
"Text",
//svojstvo koje povezujemo
ds.Tables["Predmet_Data"], //izvor podataka
"Predmet_ID");
//za to se veemo
//Text svojstvo tekst-kuice je sada vezano s vrijednou
//Predmet_ID iz DataSet-a. Kako se korisnik kree kroz
//DataSet, tako se mijenja tekst u tekst-kuici. U ovom
//sluaju tekst-kuica sadri broj koji predstavlja broj
//predmeta
Treba pripaziti da se ista kontrola ne smije dvaput povezati na izvor podataka.
Povezivanje se moe ponititi metodom Clear().
4.5.1.3.2. Padajua lista (ComboBox)
Ovo je vrlo pogodna kontrola koja se koristi kada treba izabrati jednu od n vrijednosti,
npr:
4. Aplikacija
43
Ovdje je rije o ek-listi, gdje korisnik moe izabrati od ponuenih vrijednosti, kao to
je objanjeno u toci 4.4.7. Rije je dinamiki generiranim vrijednostima i povezivanju
liste s DataSet-om. Evo kako je to realizirano:
//ds je DataSet object u kojem su retci rauna
//Povezivanje na izvor podataka
clb.DataSource = ds.Tables[0];
//Korisnik vidi kratki saetak usluge
clb.DisplayMember = "Synopsis";
//S ovime radi sustav
clb.ValueMember = "Usluga_ID";
4. Aplikacija
44
4. Aplikacija
45
return xDRV.Row;
4. Aplikacija
46
Metoda je deklarirana kao statika da bi bila dostupna bez instanciranja objekta. Ono
to vraa je toan redak iz izvora podataka vezano na redak na kojeg se pokazuje u
mrei. Sada moemo pisati:
DataRow xRow = cHelp.CurrentRow(dg);
int nDokument_ID = Convert.ToInt32(xRow["Dokument_ID"]);
Otvori_Dokument(nDokument_ID);
Moda se ini da bi ovo isto dobili koritenjem svojstva Position CurrencyManager-a:
CurrencyManager cm = (CurrencyManager)
this.BindingContext[ds.Tables["Putni_Nalozi"]];
int nDokument_ID = Convert.ToInt32(
ds.Tables["Putni_Nalozi"].Rows[cm.Position]["Dokument_ID"]);
Otvori_Dokument(nDokument_ID);
Ali ovo isto propada nakon sortiranja mree, jer indeksi mree vie ne odgovaraju
indeksima izvora podataka.
4. Aplikacija
47
raunalo instalirati Microsoft Visual Studio Tools za Microsoft Office System, koji
omoguava programeru da komunicira s Word-modelom koristei se s jednim od .NET
jezika, kao u naoj aplikaciji s jezikom Microsoft Visual C#.
Na vrhu hijerarhije razreda Word-modela [6] imamo razrede Application i
Document. Objekt Application predstavlja cijelu Word aplikaciju i roditelj je svih
drugih objekata. Njegovi lanovi se odnose na cijeli Word, i s njegovim svojstvima i
metodama kontrolira se Word okruenje. Za koritenje Word objekta moramo
deklarirati:
using Word = Microsoft.Office.Interop.Word;
using Office = Microsoft.Office.Core;
4.5.3.1. Obrasci (Templates) i igovi (Bookmarks)
Kod izrade dokumenata, putnih naloga, putnih rauna, rauna te izvjea koriste se
prije definirani MS Word obrasci (templates) [7]. Obrasci se koriste kad se eli olakati
izrada dokumenata koji slijede neku utvrenu formu. Na primjer, putni nalog uvijek
ima vrsto odreeno formu (mjesto za svrhu putovanja, za prijevozno sredstvo, itd.),
pa je pogodno one elemente koji se ponavljaju uvrstiti u obrazac; kada se eli izraditi
novi putni nalog, poziva se taj obrazac i na osnovu njega se kreira novi dokument.
Svaki obrazac sadri statiki, fiksni tekst, i dinamiki, promjenljivi tekst. Statiki tekst
se upisuje pri izradi obrasca, dok se dinamiki generira kod izrade novog dokumenta.
Za kreiranje dinamikog teksta koristi se Word kontrola ig (bookmark). (slika 4.42).
Statiki tekst
Dinamiki tekst
(bookmark)
4. Aplikacija
48
Kao to je vidljivo iz slike, statiki tekst slui samo kao opis i nema nikakvo odreeno
znaenje po sebi, dakle moe se reciklirati; ono to dokumentu daje smisao je sadraj
koji e popuniti definirane igove.
Svaki ig ima svoje ime s kojim ga se referencira. Npr. ime iga na kojeg se pokazuje
na slici 4.42. je Stranka_Ime.
Popunjavanje iga sadrajem dogaa se iz programa, na sljedei nain:
//prvo definirati ig koji referencira bookmark u obrascu po
//imenu
object bkmStranka_Ime = "Stranka_Ime";
//zatim u okvir tog iga upisati vrijednost varijable
//sStranka_Ime, koja sadri ime stranke
doc.Bookmarks.get_Item(ref
bkmStranka_Ime).Range.Text
sStranka_Ime;
4. Aplikacija
49
//vrijednost usluge.
oTable = doc.Tables.Add(wrdRng,
clb.CheckedItems.Count + 1, 2,
ref missingValue, ref missingValue);
Nakon to postavimo jo neke postavke (npr. irina tablice), kreemo u popunjavanje
tablice:
//Za svaku ekiranu uslugu
foreach (int i in clb.CheckedIndices)
{
//oblikujemo tekst iz izvora podataka koji sadri usluge
string sOpis = ds.Tables[0].Rows[i]["Opis"].ToString();
string sTBR = ds.Tables[0].Rows[i]["Tarifni_Broj"].ToString();
//...
//sTekst e se ispisati u prvom stupcu
sTekst = String.Format("{0}. {1}", nStavka.ToString(), sOpis);
sTekst += Environment.NewLine;
sTekst += String.Format("Po Tbr. {0}., Toka {1}.", sTBR, sTocka);
sTekst += Environment.NewLine;
sTekst += String.Format("Bodovi: {0}, Broj sati: {1}", sBodovi,
sBroj_Sati);
decimal Iznos =
decimal.Round(Convert.ToDecimal(ds.Tables[0].Rows[i]["Iznos"]), 2);
//sIznos e se ispisati u drugom stupcu
string sIznos = String.Format(provider, "{0}", Iznos) + " Kn.";
Nakon to smo obradili sve igove, novom dokumentu dajemo ime i spremamo ga s:
doc.SaveAs(ref fileName,
ref missingValue, ref missingValue,
ref missingValue, ref missingValue,
ref missingValue, ref missingValue,
ref missingValue, ref missingValue,
ref missingValue, ref missingValue,
ref
ref
ref
ref
ref
missingValue,
missingValue,
missingValue,
missingValue,
missingValue);
4. Aplikacija
50
4. Aplikacija
51
5. Zakljuak
52
5. Zakljuak
U ovom diplomskom radu proli smo kroz korake sistem-analize i izgradnje
informacijskog sustava za automatizaciju rada odvjetnika u hrvatskom pravnom
sustavu. Koriteni su Visual C#.NET programski jezik i Microsoft SQL Server 2000
baza podataka. Aplikacija se oslanja na paket Microsoft Word za izradu dokumenata.
Rezultat projekta je aplikacija koja automatizira neke aspekte rada odvjetnika, kao to
su izrada dokumenata, praenje obaveza, pretraivanje, dodavanje usluga i izrada
rauna. Najvea dobit je mogunost brzog nalaenja ve izraenih dokumenata, to je
najgori problem u sadanjem radu.
Nedostatak aplikacije je to to nije namijenjena za vie-korisniki rad, to bi se moglo
omoguiti u iduoj verziji. Takoer izgled suelja nije posve profesionalan jer se radi o
standard kontrolama iz Visual Studio Forms Designer-a.
Nadam se da e ovaj program (ili njegova inaica) nai primjenu u stvarnom svijetu
odvjetnikog ureda.
6. Literatura
53
6. Literatura
[1] Projektiranje informacijskih sustava, Skripta, Doc.dr.sc. Kreimir Fertalj, Prof.dr.sc.
Damir Kalpi, Fakultet Elektrotehnike i Raunarstva
[2] Analysis of Information Organizations and Systems
http://www.sims.berkeley.edu/courses/is208/s01/Decomposition.doc
[3] Microsoft SQL Server 2000 Weekend Crash Course, Published by Hungry
Minds, Inc., 909 Third Avenue, New York, NY 10022
[4] Mastering C# Database Programming by Jason Price Sybex 2003
[5] http://www.codeproject.com/cs/miscctrl/DBGridCurrentRow.asp
[6] Understanding the Word Object Model from a .NET Developer's Perspective
http://msdn.microsoft.com/library/default.asp?url=/library/enus/odc_vsto2003_ta/html/WordObject.asp
[7] Microsoft Office System 2003 Edition, Microsoft Press, 2004
Sadraj
1. Uvod ........................................................................................................ 1
2. Prikupljanje informacija .............................................................................. 2
2.1. Intervju .............................................................................................. 2
2.2. Prikupljeni dokumenti ........................................................................... 4
2.3. Postojee stanje informatizacije .............................................................. 5
3. Analiza sustava.......................................................................................... 6
3.1. Problemsko podruje............................................................................. 6
3.2. Problemi sadanjeg stanja ..................................................................... 6
3.2.1. Rad s dokumentima ........................................................................ 6
3.2.2. Praenje stanja predmeta................................................................. 7
3.2.3. Praenje obaveza ............................................................................ 7
3.2.4. Izdavanje rauna ............................................................................ 7
3.3. Ciljevi informatizacije ............................................................................ 7
3.3.1. Dokumenti ..................................................................................... 7
3.3.2. Voenje predmeta........................................................................... 8
3.3.3. Obaveze ........................................................................................ 8
3.3.4. Pretraivanje .................................................................................. 8
3.3.5. Izvjea ......................................................................................... 8
3.4. Sklopovska i programska podrka .......................................................... 8
3.5. Model Funkcija (Dijagram dekompozicije funkcija) ..................................... 9
3.6. Model procesa ...................................................................................... 9
3.6.1. Dijagram konteksta ....................................................................... 10
3.6.2. Pregledni dijagram ........................................................................ 10
3.6.3. Razraeni procesi preglednog dijagrama .......................................... 11
3.6.3.1. Razrada procesa P1 (Zaprimanje stranke) ................................... 11
3.6.3.2. Razrada procesa P2 (Izdavanje rauna) ...................................... 12
3.7. Model podataka .................................................................................. 12
3.7.1. Model entiteti-veze (EV Dijagram) ................................................... 12
3.7.2. Relacijski model ............................................................................ 13
4. Aplikacija ................................................................................................ 15
4.1. Tehnika specifikacija .......................................................................... 15
4.2. Instalacija aplikacije ........................................................................... 15
4.3. Izgled suelja..................................................................................... 16
4.3.1. Tekstualni izbornik ........................................................................ 16
4.3.2. Gornji slikovni izbornik................................................................... 17
4.3.3. etiri glavna prozora ..................................................................... 18
4.3.3.1. Zadnji dokumenti .................................................................... 18
4.3.3.2. Predmet ................................................................................. 18
4.3.3.3. Rezultat pretrage..................................................................... 19
4.3.3.4. Obaveze ................................................................................. 20
4.4. Funkcionalnosti aplikacije .................................................................... 21
4.4.1. Trailica ....................................................................................... 21
4.4.2. Otvaranje predmeta / Zaprimanje nove stranke ................................ 22
4.4.3. Izrada novog dokumenta ............................................................... 24
4.4.4. Zaprimanje vanjskog dokumenta..................................................... 24
4.4.5. Dodavanje nove obaveze ............................................................... 25
4.4.6. Dodavanje nove usluge .................................................................. 26
4.4.7. Izrada novog rauna...................................................................... 28
4.4.8. Izrada novog putnog naloga ........................................................... 29
4.4.9. Izrada novog putnog rauna ........................................................... 30
4.4.10. Izbor predmeta ........................................................................... 32
4.4.11. Izrada izvjea ............................................................................ 32
4.4.12. Postavke .................................................................................... 34
4.4.12.1. Openite postavke ................................................................. 34
4.4.12.2. Postavke direktorija ............................................................... 35
4.4.12.3. Postavke odvjetnika ............................................................... 35
4.4.13. Zavretak rada ........................................................................... 36
4.4.14. Dodaci ....................................................................................... 36
Sadraj
ii