You are on page 1of 56

SVEUILITE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

DIPLOMSKI RAD br. 884

Odvjetniki ured
Boris Handiski

Zagreb, veljaa 2006.

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.

ovog intervjua su bili sljedei:


Doznati osnove rada odvjetnikog ureda (vidi 3.1.).
Uoiti probleme sadanjeg stanja (vidi 3.2.).
Uoiti potrebe sustava (vidi 3.3. i 3.4.).
Uoiti osnovne funkcije sustava (vidi 3.5.).
Uoiti osnovne procese i tokove podataka (vidi 3.6.).

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

:Dokumenti koji dolaze od suda?


Presude i rjeenja.
:Reakcija na presudu?
Po elji stranke, moe se uloiti alba, ili se odustaje od daljneg postupka.
:Vrste sudova?
Trgovaki, opinski, prekrajni, upanijski, (primjeri u dokumentima.)
Rad s dravnim tijelima:
:to se od njih trai?
Trae se dokumenti vezani za stranku.
:Primjeri dravnih tijela s kojima se surauje?
Ministarstvo financija, Zavod za platni promet, Hrvatski zavod za mirovinsko
osiguranje.
:Dokumenti koji dolaze od dravnih tijela?
Uvjerenja o poreznim obavezama, o stanju na iro-raunu, o visini naknade za
tjelesno oteenje.
Rad s osiguravajuim drutvima:
:Kako se komunicira s osiguravajuim drutvom?
Preko odtetnih zahtjeva i nagodbi.
:to je to odtetni zahtjev?
S njime se od osiguravajueg drutva trai isplata odreenog iznosa stranci koju se
zastupa.
:Reakcija os. drutva?
Ono moe odbiti zahtjev ili ga prihvatiti.
:to radi ured u sluaju odbijanja?
Ured pokree tubu protiv osiguravajueg drutva pred sudom.
:to je nagodba?
S njime se stranka i os. Drutvo van suda dogovaraju o visini odtete. (uzeti primjer
odtetnog zahtjeva i nagodbe.)
Rad s javnim biljenikom:
:Kako se komunicira s javnim biljenikom?
Preko prijedloga za ovrhu.
:to je prijedlog za ovrhu?
Ako jedna strana u sporu nije isplatila iznos koji se od nje potrauje, trai se
doputenje da se izvri ovrha nad raunom te strane.
:to alje javni biljenik?
Rjeenje, pozitivno ili negativno. (uzeti primjer zahtjeva za ovrhu.)
Vanjski dokumenti:
:Kako se dokumenti arhiviraju u uredu?
Spremaju se u mapu klijenta.
:Koje dokumente treba biljeiti u informacijskom sustavu?
Presude, rjeenja javnog biljenika, pozive na sud, dokumente od dravnih tijela,
odgovore osiguravajueg drutva.

2. Prikupljanje informacija

:Kako treba biljeiti vanjske dokumente?


Zabiljeiti njihov dolazak, datum, izvor i kratki opis.
Izdavanje rauna: (uzeti primjer rauna)
:Kada i kako se izdaje raun?
Na kraju predmeta, nakon to se izraunaju usluge koje su pruene

stranci.

:Da li se raun moe izdati i za vrijeme trajanja predmeta?


Moe.
Stavke rauna.
:(priloen primjer rauna)
Nain obrauna. Tarifni model. (traenje primjerka Odvjetnike tarife)
:Objasniti koncepciju bodova.
Ovisno o tipu sluaja, za usluge se zaraunaju bodovi koji nose odreenu kunsku
protuvrijednost. Naini dodjele bodova su raznoliki. Kod parninih postupaka
sastavljanje npr. tube donosi bodove ovisno o vrijednosti postupka (vea kunska
vrijednost, vie bodova). S druge strane kod pravnih lijekova sastavljanje obrane nosi
fiksni broj bodova. Pogledati Odvjetniku tarifu.
Putni nalozi i rauni:
:Da li odvjetnik koristi putne naloge? Trebaju li biti dio aplikacije?
Da, odvjetnik sam pie naloge. Bilo bi poeljno da budu u aplikaciji.
:Kako obraditi trokove putnih naloga?
Izdavanjem putnog rauna. (forma rauna dogovorena na strani jednostavnosti)
Stanje informatizacije:
:Kakva je infrastruktura ureda? Da li posjeduje server?
Ured ima mreu, ali nema server. Odvjetnici se slue prijenosnicima. Tajnica radi na
stolnom raunalu.
:Da li ured planira nabaviti server?
Razmilja se o tome, ali ne vidi se potreba.
:Kakva je funkcija tajnice? emu slui njezino raunalo?
Ona po potrebi pie dopise stranci ili putama
:Da li postoje jo neki entiteti s kojima odvjetnik komunicira?
Ne.
:Da li je ured ve razmatrao kupnju informacijskog sustava?
Uredu je ponueno gotovo rjeenje Ruby Monday Law Office od tvrtke willevolve, ali
nije kupljeno. (priloen prezentacijski CD).
:Razlog odbijanja ponude?
Nesrazmjer troka nabave i potrebe za takvom aplikacijom.

2.2. Prikupljeni dokumenti


U drugom koraku prikupljanja informacija zatraili smo dokumente koji se koriste u
radu ureda. Ovo je potrebno radi utvrivanja pravilnosti i strukture poslovanja.
Odvjetnik je predao puno dokumenata vezanih za svoj rad, kao i vrlo bitnu kopiju
Tarifnog Modela Odvjetnike Komore, bez koje je nemogue izraditi modul za

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.

2.3. Postojee stanje informatizacije


Odvjetnik ne posjeduje raunalni informacijski sustav za automatizaciju poslovanja.
Koristi se XP operativni sustav s instaliranim Microsoft Office paketom. Za sredinju
aktivnost njegovog rada, izradu dokumenata, koristi se Microsoft Word aplikacija.
Tvrtka willevolve ponudila je paket opreme za odvjetniki ured, nazvan Ruby
Monday Law Office. Ponuda je sadravala od prezentacijski CD-ROM preko kojeg je
prikazan izgled i osnovna funkcionalnost aplikacije.
Rije je o profesionalnoj aplikaciji atraktivnog izgleda i irokih mogunosti (tvrtka se
hvali da je ona rezultat viegodinjeg iskustva i razvoja od strane domaih
strunjaka), meutim njena slabost je to nije napravljena po mjeri specifinog
odvjetnika, npr. ne prua opciju automatizacije izrade rauna koristei Tarifni model
Hrvatske Odvjetnike komore. Nije mi bila namjera oponaati ovu aplikaciju, niti sam
za to bio sposoban, ali mi je pruila odreenu pomo u izradi suelja i definiranju
funkcionalnosti.
Ponuda ove tvrtke nije prihvaena jer su trokovi nabave bili previsoki u srazmjeru s
percipiranom dobiti njegovog koritenja.

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).

Zastupanje stranke pred sudom


o Odvjetnik odlazi na sudska roita gdje zastupa sluaj u ime stranke.
On takoer prima sudsku presudu/ sudsko rjeenje i konzultira i
savjetuje stranku glede nastavka predmeta (npr. ulaganje albe,
itd.). Rad odvjetnika se vrednuje odvjetnikim uslugama, koje su
opisane u tarifnom modelu.

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.2. Problemi sadanjeg stanja


Budui da odvjetnik trenutno ne posjeduje informacijski sustav, javljaju se sljedee
neefikasnosti u radu:
- spori dohvat prethodno izraenih dokumenata
- neefikasna organizacija rada
- pregled zakazanih obaveza
- izrada rauna (raunanje vrijednosti usluga)
- praenje lokacija zaprimljenih vanjskih dokumenata
- neujednaenost izraenih dokumenata (nepostojanje obrazaca)

3.2.1. Rad s dokumentima


Najvei problem u sadanjem nainu rada javlja se kod rada s dokumentima, imenice,
njihovom izradom, spremanjem i naroito kasnijim dohvatom. Jedna od pritubi
odvjetnika je bila da vrijeme potroeno na pronalaanje prije izraenog dokumenta
moe dostii i dva sata. Takoer ne postoji evidencija primljenih vanjskih dokumenata,
ve se oni samo umeu u mapu predmeta, tako da je teko pratiti to je primljeno.
Kada odvjetnik eli izraditi novi dokument, postupak je sljedei: otvaranje ve
postojeeg dokumenta koji je istog tipa kao onaj kojeg se eli izraditi (tuba, alba,
zahtjev ...), brisanje nepotrebnog teksta, upis relevantnih podataka prema potrebi i

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.2.2. Praenje stanja predmeta


U sadanjem sustavu, odvjetnik dri dokumente vezane za predmet unutar jedne
mape, koja se vodi pod imenom stranke. Pregled izraenih dokumenata, primljenih
vanjskih dokumenata, pruenih usluga, itd. spor je i zamoran posao. Aplikacija bi
trebala omoguiti brzi pregled relevenatnih podataka o predmetu.

3.2.3. Praenje obaveza


Obaveze se runo biljee u Dnevniku rada, rokovniku unutar knjige zvanoj Sudski
prirunik. Automatsko upozoravanje odvjetnika na nadolazeu neispunjenu obavezu
nije mogue. Taj posao trenutno obavlja tajnica ili odvjetnik sam provjeravajui
Dnevnik rada. Odvjetnik je izrazio elju za sustavom obavjeivanja o zakazanim
obavezama.

3.2.4. Izdavanje rauna


Ovo je jedan od velikih problema na koje se odvjetnik poalio. Izraun trokova
pruenih usluga radi se preko Tarifnog Modela Odvjetnike Komore. Rije je o poneto
konfuznom i rekurzivnom popisu toaka koje nose odreen broj bodova (bod ima
kunsku protuvrijednost odreenu tarifom). Uz to, neke toke modela su rekurzivno
povezane s drugim tokama i nose bodove prema nekom postotku prema drugoj toci.
Runa izrada rauna je stoga naporan proces pogotovo za nekoga sa slabom
matematikom podlogom. Aplikacija bi trebala omoguiti aurno praenje pruenih
usluga i automatsko raunanje zbrojeva, postotaka i koannog iznosa rauna.

3.3. Ciljevi informatizacije


Namjera je izraditi aplikaciju koja e olakati rad u onim segmentima koji sad
predstavljaju problem.
Poboljati efikasnost rada automatizaranjem onih dijelova rada koji se mogu izvesti
raunalno. Specifino, cilj je izgraditi aplikaciju sa sljedeim karakteristikama:

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

Treba se omoguiti izrada putnih naloga i njihovih pripadnih putnih rauna.


Omoguiti automatsko oblikovanje rauna, sa ispisom stavaka i njihovih kunskih
iznosa.

3.3.2. Voenje predmeta


Omoguiti otvaranje predmeta prilikom zaprimanja stranke. Za svaki predmet
prikazati vezane dokumente, obaveze, putne naloge, usluge i raune. Predmet se vodi
pod prezimenom stranke u skladu s dosadanjom praksom.
Omoguiti dodavanje usluga iz Tarifnog modela iz funkcionalnog suelja.

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.

3.4. Sklopovska i programska podrka


Odvjetniki ured trenutno ne raspolae raunalnim informacijskim sustavom, a
odvjetnik se za izradu dokumenata slui prijenosnim raunalima. Ured posjeduje
raunalnu mreu, koja se koristi za povremenu razmjenu dokumenata.
Ured ve neko vrijeme razmilja o kupnji servera, meutim nedostaje prava
motivacija za takvu investiciju. U sluaju razvoja informacijskog sustava, predlae se
sljedea konfiguracija:
SERVER
-

IBM xseries 206


o Procesor: P4 3.4Ghz, (Intel Pentium)
o Memorija:
512MB ECC DDR
HDD 160 GB Simple Swap RAID 0/1 /8487EWG
Operacijski sustav: Windows Server 2003
Baza Podataka: SQL Server 2000
Programski jezik: C#.NET

RADNA MJESTA:
Procesor: Intel Celeron 2.4 GHz,
Memorija:
o 40GB HDD
o 256MB, 266MHz DDR
Operacijski sustav: Windows XP
Printer

3. Analiza sustava

3.5. Model Funkcija (Dijagram dekompozicije funkcija)


Prije razvoja informacijskog sustava za neku organizaciju, analitiar mora razumjeti
poslovne funkcije te organizacije. Dijagram dekompozicije funkcija (functional
decomposition diagram) [2] je alat s kojim se prijazuje hijerarhija poslovnih funkcija,
procesa i podprocesa unutar organizacije koji su zatim opisani modelima procesa.
Razlaganje (ili dekompozicija) funkcija u procese omoguava razumijevanje
kompleksnih sustava. Rije je o top-down (od gore-prema dolje) pristupu oblikovanju,
gdje se poslovni subject prikazuje kao jedna kuica koja se zatim razlae na sljedeoj,
nioj razini.
Dijagram dekompozicije sastoji se od funkcija, koje su kontinuirana aktivnost unutar
poslovne organizacije, bez odreenog poetka i kraja. Funkcije su prikazane
pravokutnicima s pravim kutevima i mogu sadravati nekoliko podfunkcija koje su
nacrtane ispod funkcija i povezane s njima s ravnom linijom.
Dijagram dekompozicije funkcija moe imati nekoliko razina funkcija sa sve finijom
gradacijom nakon ega se funkcije rastavljaju na procese. Proces je poslovna
aktivnost koja ima definiranu poetnu i zavrnu toku i obavlja se za odreeni poslovni
razlog. Prikazuje se pravokutnikom s zaobljenim uglovima. Procesi se mogu dalje
razlagati u podprocese.
Identificiranje funkcija i procesa se provodi iteracijom, tako da se dijagram mijenja i
rafinira kako se poslovni proces bolje upoznaje.

Slika 3.1. Dijagram dekompozicije funkcija

Treba dodati da prikazani model nije jedini niti definitivni prikaz funkcija odvjetnikog
ureda ve rezultat mog osobnog shvaanja tih funkcija.

3.6. Model procesa


Nakon to smo na dijagramom dekompozicije funkcija identificirali funkcije
organizacije, kreemo u modeliranje procesa. Poslovni sustav moe se predstaviti
procesom koji komunicira s vanjskim entitetima i spremitima podataka. Prikaz
procesa s vanjskim entitetima i spremitima podataka prikazan je dijagramom toka
podataka (data flow diagram) koji se sastoji od vie dijagrama koji su poredani u

3. Analiza sustava

10

hijerarhiji, na ijem vrhu je dijagram konteksta, koji se dalje razlae do razine


osnovnih procesa.

3.6.1. Dijagram konteksta


Dijagram konteksta prikazuje informacijski sustav kao monolitni proces (pravokutnik s
zaobljenim uglovima) koji komunicira s vanjskim entitetima (pravokutnici). Sadraj i
smjer komunikacije prikazuje se imenovanim strelicama.
Na slici 3.2. prikazan je dijagram konteksta odvjetnikog ureda.

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

Slika 3.2. Dijagram konteksta

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.6.2. Pregledni dijagram


Pregledni dijagram se sastoji od sljedeih dijelova:
1. Vanjski entiteti predstavljeni su pravokutnicima s uglovima pod 90. Entiteti
proizvode i konzumiraju podatke (oni su izvori i ponori podataka). Entiteti ne
mogu komunicirati meusobno, nego samo s procesima.
2. Spremita podataka na slici su predstavljeni pravokutnicima koji su otvoreni
na jednoj strani. Spremita slue za spremanje podataka za kasniju uporabu i
odgovaraju na zahtjeve za upis i dohvat podataka. (koji dolaze od procesa).
3. Procesi predstavljeni su zaobljenim pravokutnicima. Proces je ono to mijenja
podatke (npr. generiranje nove informacije ili promjena postojee). Ime
procesa opisuje aktivnost te promjene. Procesi mogu komunicirati s entitetima i
meusobno. Procesi s asteriksom (*) su razloeni na nioj razini.
4. Tokovi podataka predstavljeni strelicama na kojima su nazivi koji opisuju
sadraj toka. Tokovi prikazani isprekidanom linijom predstavljaju tok
materijala. Ulazni tokovi (vrh strelice na spremitu podataka) predstavljaju
operacije koje mijenjaju spremljene podatke (dodavanje, mijenjanje, brisanje).
Izlazni tokovi (vrh strelice na procesu) predstavljaju dohvat podataka iz
spremita.

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

Slika 3.3. Pregledni dijagram

Osnovni process kontekstnog dijagrama prikazan je pomou 10 procesa i 8 spremita


podataka koji poblie opisuju kako se izvode pojedine poslovne operacije unutar
odvjetnikog ureda.

3.6.3. Razraeni procesi preglednog dijagrama


Za neke procese s preglednog dijagrama moe se nastaviti dekompozicija na
podprocese.
3.6.3.1. Razrada procesa P1 (Zaprimanje stranke)

Slika 3.4. Proces Zaprimanje stranke

3. Analiza sustava

12

Na zahtjev potencijalne stranke, odvjetnik uzima podatke i zatim provjerava da li


stranka ve postoji u bazi. Nakon toga nastavlja se s upisom stranke i upisom
predmeta i na kraju se nova stranka obavjetava o poetku predmeta.
3.6.3.2. Razrada procesa P2 (Izdavanje rauna)

Slika 3.5. Proces Izdavanje rauna

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.7. Model podataka


Svrha modeliranja podataka je identifikacija svojstava i struktura podataka u
poslovnom procesu te njihovo organiziranje u svrhu ispunjenja korisnikih zahtjeva.
Model podataka slui kao okvir za kasniji razvoj aplikacije.

3.7.1. Model entiteti-veze (EV Dijagram)


Dijagram entiteti-veze (entity relationship diagram) je slikovna predodba entiteta i
veza meu njima. Slui za lako sagledavanje informacijske strukture aplikacije i slui
za kasnije projektiranje baze podataka i relacija.
Entiteti su glavni podatkovni objekti o kojima se prikupljaju informacije. Rije je o
prepoznatljivim konceptima tipa osoba ili dokument. Entiteti mogu biti jaki (neovisni) i
slabi (ovisni). Jaki entitet egzistira samostalno, odnosno ne ovisi o drugom entitetu
radi identifikacije. Na naem dijagramu oznaeni su pravokutnicima s jednostrukim
rubom. Slabi entiteti postoje samo u vezi s jakim entitom, odnosno ovise o njemu za
identifikaciju. Na dijagramu prikazani su pravokutnicima s dvostrukim rubom. Entitet
na EV dijagramu odgovara relaciji u relacijskom modelu, dok pojava (instanca)
entiteta odgovara retku u relaciji.
Veze su prikazane linijama koje povezuju entitete. Stupanj veze je broj entiteta s
kojima je povezana. Na naem dijagramu imamo samo binarne veze, odnosno veze
izmeu dva entiteta. Kardinalnost veze (od entiteta A do entiteta B) je broj pojava
entiteta B koji su vezani za svaku pojavu entiteta A. Na dijagramu kardinalnost
prikazujemo uporabom kruia i crtica na spoju veze i entiteta (Martin notacija).

3. Analiza sustava

13

Slika 3.6. Model entiteti-veze

Entitet Predmet ini osnovicu modela vezujui na sebe entitete Stranka i


Dokument. Svaka stranka moe biti vezana za nekoliko predmeta, ali svaki predmet
vezan je za samo jednu stranku. Stranka se specijalizira na fiziku i pravnu osobu.
Svaki dokument je vezan za jedan predmet i jedan (vanjski) entitet i specijalizira se
na putni raun, raun, putni nalog, unutarnji (predstavlja sve dokumente koji idu
prema vanjskim entitetima kao npr. sudu, javnom biljeniku) i vanjski (svi dolazei
dokumenti). Za svaki predmet vezane su usluge koje je odvjetnik obavio tokom ivota
predmeta. Usluge u tarifnom modelu mogu se referencirati na neke druge usluge to
je opisano refleksivnom vezom. Svaka obaveza je vezana za jedan predmet.

3.7.2. Relacijski model


Model entiteti-veze izraen je u fazi analize i prije faze izgradnje aplikacije, dok je
sljedei relacijski model preslikan iz baze podataka. Razlike u modelu su posljedica
zahtjeva aplikacije koji nisu uvieni u fazi analize (npr. potreba za relacijom Postavka
je nastala tek prilikom kodiranja).
Relacijski model izraen je u programu Microsoft Visio 2003 koritenjem opcije
Reverse Engineer za izvlaenje modela iz postojee baze podataka. Oznaka PK
simbolizira primarni klju, FK strani klju, I indeksiranu vrijednost (radi bre pretrage)
i U jedinstvenu vrijednost (ili alternativni klju). Masnim slovima (bold) oznaeni su
atributi relacija koji se moraju popuniti prilkom kreiranja novog zapisa.

3. Analiza sustava

14

Slika 3.7. Relacijski model

Vidljiva je slinost s modelom entiteti-veze, s time da je refleksivna veza kod entiteta


Usluge prikazana vezom izmeu dvije relacije tbl_Usluga i tbl_Usluga_Ref. Ova
zadnja definira nain na koji je jedna usluga povezana s drugom i to je izvedeno s
postotkom (jedna usluga nosi odreen postotak bodova neke druge usluge). Svaki
tarifni broj (tbl_Tarifni_Broj) je vezan za jedan tip predmeta (krivini, ovrni,
zemljino-knjini). Relacija tbl_Korisnik slui za uvanje podataka o trenutnom
korisniku aplikacije. Atribut Datoteka u relacijama tbl_Dokument_Unutarnji ili
tbl_Putni_Nalog predstavlja ime datoteke pod kojim je spremljen Word dokument. U
relaciji tbl_Postavka drimo vrijednosti potrebne za rad aplikacije, npr: kunsku
protuvrijednost boda, direktorij u kojem se dre obrasci i slino.

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.

4.2. Instalacija aplikacije


Uporabom .NET projekta Setup and Deployment Projects i obrasca Setup Project
pripremljen je paket za instalaciju aplikacije, koji se sastoji od datoteka Setup.Exe,
Odvjetnicki_Ured.msi i Setup.Ini, ukupne veliine od oko 2MB. Instalirana aplikacija
zauzima oko 6MB slobodnog prostora, ali potrebno ju je instalirati na disk s veim
slobodnim kapacitetom jer se u toku rada kreiraju dokumenti (ili promijeniti lokaciju
direktorija Files gdje se dokumenti spremaju, vidi 4.4.12.2.).
Izvrni program, potebne datoteke (obrasci, slike i ikone) te baza podataka potrebna
za rad aplikacije instaliraju se na tvrdi disk pokretanjem programa Setup.exe, ime se
pokree wizard koji vodi kroz instalaciju. Korisnik treba odabrati direktorij u kojeg e
se
kopirati
datoteke,
ili
ostaviti
default
postavku
C:\Program
Files\Handiski\Odvjetnicki Ured.
Raunalo na kojem se eli pokrenuti aplikacija mora imati instaliran Microsoft SQL
Server 2000 i .NET Framework. Baza podataka koju aplikacija koristi sastoji se od
dvije datoteke: Ured_Data.MDF i Ured_Log.LDF. Instalacijski program kopira ove
datoteke u direktorij na kojem je korisnik instalirao aplikaciju (default: C:\Program
Files\Handiski\Odvjetnicki Ured\Baza) i potrebno ih je dodati na Sql Server ovako:
Pokrenuti konzolu Enterprise Manager (default: Start Menu\Programs\Microsoft SQL
Server/ Enterprise Manager), i zatim odabrati Console Root->Microsoft SQL Server->
SQL Server Group->(Ime vaeg SQL servera)->Databases. Na ovoj razini pritiskom
desnog gumba na miu odabrati All tasks->Attach Database, na to e se pojaviti
forma za izbor MDF datoteke koja sadri bazu podataka. Izaberite direktorij gdje se
ona nalazi (default: C:\Program Files\Handiski\Odvjetnicki Ured\Baza) i zatim
datoteku Ured_Data.MDF. Pritiskom gumba OK dodajete bazu na server.
Instalacijski

paket

kreira

shortcut

za

pokretanje

aplikacije

programskom meniju pod All Programs. Ikona programa je

na

desktopu

4. Aplikacija

16

4.3. Izgled suelja


U ovoj toci emo opisati zajednike komponente aplikacije dok emo u nastavku
opisati komponente specifine za svaki od etiri prozora. U izradi suelja koristili smo
se, osim voeni vlastitim ukusom,u maloj mjeri demo-verzijom Ruby Monday Law
Office a prvenstveno sugestijama mentora i krajnjeg korisnika. Tokom dizajna suelja
javljale su se nove ideje o kako o izgledu tako i o funkcionalnosti aplikacije koje
prvenstveno nisu bile predviene. Na primjer, opcija ukljuivanja/iskljuivanja
slikovnih pozadina itd.
6
1

Slika 4.1. Aplikacija u radu

Zajednike komponente su:


1. Tekstualni izbornik (podrobno opisan pod 4.3.1.)
2. Gornji slikovni izbornik (podrobno opisan pod 4.3.2.)
3. Postranini slikovni izbornik poseban za svaki od etiri prozora i podrobno
opisan kod opisa tih prozora)
4. etiri glavna prozora (podrobno opisana pod 4.3.3.)
5. Status panel lijeva strana ispisuje status veze s bazom a desna trenutno
vrijeme.
6. Pozadine opcija prikaza slikovnih pozadina ili obine sive podloge (vidi
4.4.12.1.).

4.3.1. Tekstualni izbornik

Slika 4.2. Tekstualni izbornik

4. Aplikacija

17

Tekstualni izbornik ima sljedee dijelove:


Novo
Opcije u ovom meniju se ne odnose ne trenutno aktivni predmet (tome slui meni
Predmet (vidi sliku 4.2.). Dakle prilikom izbora neke opcije u ovom meniju prvo se
pojavljuje forma za izbor predmeta (vidi 4.4.10.) i nakon toga se nastavlja sa
specifinom aktivnou. Npr. izborom Novo->Obaveza (CTRL+O) moemo definirati
novu obavezu nakon to izaberemo predmet.
Predmet
Opcije u ovom meniju su vezane za trenutno aktivni predmet. Dakle izrada novih
dokumenata ili putnih naloga se automatski povezuje s aktivnim predmetom. U ovom
meniju dostupne su i dodatne opcije specifine za predmet, npr. brisanje predmeta,
otvaranje profila stranke itd.
Trai
Pokree trailicu, opisanu u toci 4.4.1..
Izvjea
Omoguava izbor izvjea kojeg elimo izraditi, kao to je opisano u 4.4.11..
Alati
Sadrava opciju Postavke (vidi 4.4.12.), i opciju spajanja/odspajanja na bazu
podatataka.
Help
Sadrava samo opciju About (F1), koja pokazuje prozor s podacima o imenu i autoru
aplikacije.

4.3.2. Gornji slikovni izbornik

10

11

12

13

Slika 4.3. Gornji slikovni izbornik

Funkcije gumba u izborniku su sljedee:


1. Trai aktivira trailicu (vidi 4.4.1.)
2. Nova stranka/predmet zaprimanje nove stranke / otvaranje novog predmeta
(vidi 4.4.2.)
3. Novi dokument pokree stvaranje novog dokumenta (vidi 4.4.3.)
4. Novi vanjski dokument zabiljeba dolaska vanjskog dokumenta (vidi 4.4.4.)
5. Nova obaveza kreiranje nove obaveze (vidi 4.4.5.)
6. Nova usluga pokree postupak dodavanja nove usluge (vidi 4.4.6.)
7. Novi raun pokree postupak izrade rauna (vidi pod 4.4.7.)
8. Novi putni nalog pokree postupak izrade putnog naloga (vidi 4.4.8.)
9. Novi putni raun pokree postupak izrade putnog rauna (vidi 4.4.9.)
10. Izbor predmeta pokree postupak izbora predmeta iz liste (vidi 4.4.10.)
11. Izrada izvjea ispisuje raune izdane u zadanom vremenskom razdoblju
(vidi 4.4.11. )
12. Postavke promjena postavki aplikacije (vidi 4.4.12.)
13. Kraj zavrava s radom. (vidi 4.4.13.)

4. Aplikacija

18

4.3.3. etiri glavna prozora


4.3.3.1. Zadnji dokumenti
Ovaj prozor slui za prikazivanje zadnje izraenih dokumenata, tako da odvjetnik
moe nakon ponovnog otvaranja aplikacije nastaviti s prekinutim radom. U prozoru se
prikazuje samo kategorija Unutarnji dokumenti, dakle sve osim putnih naloga,
putnih rauna i rauna.

3
5

10

Slika 4.4. Prozor Zadnji dokumenti

Ovaj prozor ima sljedee funkcionalnosti:


1. Auriraj upisuje u bazu promjene koje je korisnik unio u mreu.
2. Obrii brie dokument na kojeg se pokazuje iz baze. Trai potvrdu prije
izvrenja.
3. Otvori otvara dokument na kojeg se pokazuje.
4. Osvjei ponovno uitava podatke iz baze i prikazuje ih na ekran.
5. Kontekstni izbornik (Context Menu) sa opcijama
a. Otvori dokument kao pod 3.
b. Obrii dokument kao pod 2.
c. Otvori predmet otvara predmet za kojeg je ovaj dokument vezan
6. Pokazuje podatke o dokumentu.
7. Podatkovna mrea (DataGrid) s ispisom dokumenata.
8. Opseg prikaza koliko dokumenata se eli prikazati u mrei.
Korisnik moe voditi stanje svojih dokumenata sa ove dvije opcije:
9. Zavren? da li je dokument zavren?
10. Poslan? da li je dokument poslan na eljenu adresu?
(vrijedi: prazno polje = ne; kvaica = da.)
Nakon promjena korisnik mora pritisnuti gumb pod (1) za unos promjena.
4.3.3.2. Predmet
Ovo je glavni prozor aplikacije jer se u njemu prikazuje trenutno aktivni predmet i
omoguava navigacija kroz sve ostale predmete. U podprozorima (Tabs) korisnik moe
vidjeti sve objekte vezane za predmet (dokumente, raune, obaveze ...), prikazane u

4. Aplikacija

19

vlastitim podatkovnim mreama (DataGrid). Za svaka mreu definirane su specifine


operacije promjene /auriranja, kao i kontekstni izbornici.

3
8
4
9
5

6
10

Slika 4.5. Prozor Predmet

Ovaj prozor prua sljedee funkcionalnosti:


1. Auriraj upisuje u bazu promjene koje je korisnik unio u kuicama/mreama.
2. Obrii brie predmet iz baze, kao i sve retke u svim relacijama vezanim za taj
predmet. Trai potvrdu prije izvrenja.
3. Ispii generira Word dokument u kojem su ispisani podaci o predmetu.
4. Stranka otvara formu s podacima o stranci za koju je predmet vezan. Forma
daje mogunost promjene podataka o stranci.
5. Osvjei ponovno uitava podatke iz baze i prikazuje ih na ekran. Svaka
podatkovna mrea se obnavlja.
6. Zatvori/Otvori ovisno o statusu predmeta, daje mogunost njegovog
zatvaranja/otvaranja (slika na gumbu se takoer mijenja). Kod zatvaranja
korisniku se daje opcija upisa datuma zatvaranja.
7. Kuice s podacima o predmetu. Sadraj sivih kuica se ne moe mijenjati.
Kuica Vanjski broj se odnosi na broj pod kojim sud vodi ovaj sluaj.
8. Navigacijski gumbi za kretanje kroz predmete
|Prvi|Prethodni|Broj|Sljedei|Zadnji| predmet.
9. Tabovi koji sadre podatkovne mree o svemu vezanom za predmet.
4.3.3.3. Rezultat pretrage
U ovom prozoru se ispisuju rezultati pretrage. Pretraivanje je detaljno opisano u toci
4.4.1.. Ovisno o tipu pretrage, (dokumenti, predmeti, stranke, itd.), mijenja se izgled
mree za prikaz rezultata. Dolje je prikazan prozor koji je rezultat pretraivanja putnih
naloga i kontekstni izbornik je prilagoen tom rezultatu. U sluaju drugog objekta
potrage, mijenja se kontekstni izbornik. Za svaku vrstu rezultata definirani su stupci
koje korisnik moe mijenjati.

4. Aplikacija

20

3
4

Slika 4.6. Prozor Rezultat pretrage

Ovaj prozor prua sljedee funkcionalnosti:


1. Auriraj - upisuje u bazu promjene koje je korisnik unio u podatkovnoj mrei.
2. Otvori predmet otvara predmet za kojeg je rezultat pretrage vezan. Ovaj
gumb se ne prikazuje kada to nema smisla (npr. kada se prikazuju entiteti).
3. Otvori dokument otvara dokument. Ovaj gumb se ne prikazuje kada to nema
smisla (npr. kada se prikazuju stranke).
4. Kontekstni izbornik (Context Menu) prilagoen ovisno tipu pretrage. U gore
prikazanom sluaju, daje mogunosti vezane za putne naloge.
5. Podatkovna mrea prikazuje rezultat pretrage.
6. Korisniku se prua mogunost promjene podataka ovisno o tipu potrage. U
gore prikazanom sluaju, mogu se mijenjati stupci Svrha i Br. Dana.
4.3.3.4. Obaveze
Ovo je prozor za prikaz vremenskih obaveza.

3
5

Slika 4.7. Prozor Obaveze

4. Aplikacija

21

Ovaj prozor prua sljedee funkcionalnosti:


1. Auriraj upisuje u bazu promjene koje je korisnik unio u podatkovnoj mrei.
2. Obrii brie obavezu iz baze podataka.
3. Ispii generira Word dokument u kojem je ispisana tablica obaveza koje su
trenutno vidljive na ekranu.
4. Nova obaveza otvara formu za dodavanje nove obaveze.
5. Odabir raspona prikaza (radioBox) odabir gornje vremenske granice obaveza
koje se ele prikazati (donja granica je trenutno vrijeme).
6. Odabir raspona prikaza (dateTimePicker) odabir gornje i donje vremenske
granice obaveza koje se ele prikazati. Donja granica je namjetena na
1.1.2006. godine. Kod pritiska na radio-kontrolu (radiobox) Sve, gornja
granica se postavlja na 31.12.2010. godine.
Korisnik moe mijenjati sljedee vrijednosti:
7. Gdje mjesto obaveze
8. Opis opis obaveze
9. Obavljeno? da li je obaveza obavljena?
(vrijedi: prazno polje = ne; kvaica = da.)
Nakon promjena korisnik mora pritisnuti gumb pod (1) za unos promjena.

4.4. Funkcionalnosti aplikacije


4.4.1. Trailica
Mogunost pretraivanja je jedna od najbitnih i najee korienih i stoga je
ugraena. Korisnik je objasnio da se evidencija u uredu vodi po imenu stranke, pa je
stoga to parametar trailice, osim kod pretraga vremenskih obaveza, kada se daje
mogunost odabira vremenskog razdoblja (Od-Do). Traenje poinje izborom Meni ->
Trai (F3) ili pritiskom na gumb

u slikovnom izborniku.

Korisnik moe pretraivati dokumente,


entitete, obaveze, predmete, stranke i
pruene usluge (1). Ispod je dan primjer
traenja dokumenta:

Slika 4.8. Prozor Trailica

Slika 4.9. Prozor Trailica

Odabiremo Dokument kao tip potrage


(2) i zatim Putne naloge kao podtip (4).
U polje Za stranku (3) upisujemo
prezime (ili dio prezimena) za fizike
osobe, odnosno ime (ili dio imena) za
pravne osobe. Pretraga je neosjetljiva na
veliinu slova (case-insensitive) i moe se
izvesti za bilo koji dio imena (npr. samo
prvo slovo).
U sluaju da se eli pretraivati za sve
stranke, polje Za stranku treba ostaviti
praznim.
Svaki tip potrage ima svoje podtipove,
npr. kod pretraivanja stranaka, moe se
izabrati kriterij Fizike|Pravne|Sve, kod
predmeta Otvoreni|Zatvoreni|Svi itd.

4. Aplikacija

22

Rezultat pretraivanja prikazuju se u jednom od 4 glavna prozora, Rezultat pretrage


(vidi 4.3.3.3.):

Slika 4.10. Primjer rezultata pretrage

4.4.2. Otvaranje predmeta / Zaprimanje nove stranke


Kada stranka zatrai zastupanje od stranke odvjetnika, on odlazi na Meni -> Novo ->
Predmet/Stranka (CTRL+S) ili pritiskom na gumb
se otvara sljedea forma:

u glavnom meniju, pri emu

Korisnik ovdje izabire tip predmeta kojeg


eli otvoriti, npr. Krivini postupak, Ovrni
postupak, Zemljino-knjini postupak itd.
Nakon izbora tipa predmeta, otvara se
mogunost izbora stranke (slika 4.12.)

Slika 4.11. Prozor Nova stranka

Sada korisnik moe izabrati da li eli


otvoriti predmet za ve postojeu stranku,
ili otvoriti predmet za novu stranku,
pritiskom mia na odgovarajuu radiokontrolu (1).
Pritiskom gumba (2), moe se birati iz
liste postojeih stranaka. (slika 4.13.)

1
2

Slika 4.12. Prozor Nova stranka

Slika 4.13. Prozor Nova stranka

Ako odvjetnik izabere otvaranje predmeta


za ve postojeu stranku, pritiskom na
gumb (2) otvara se prozor za izbor
stranke iz baze podataka. Ovdje odvjetnik
iz liste (3) moe odabrati postojeu
stranku. Pruena je mogunost filtriranja
stranaka (4) po prezimenu (fizike osobe)
odnosno imenu (pravne osobe), to je
pogodno u sluaju postojanja veeg broja
stranaka. Filtriranje je neosjetljivo na
veliinu slova (case insensitive). Ovisno o
ek-kuicama (check-boxes), filtriraju se
fizike/pravne/sve osobe.

4. Aplikacija

23

U sluaju da je odabrano kreiranje nove


stranke (5), korisnik treba odabrati tip
stranke (fizika ili pravna osoba) (6);

Slika 4.14. Prozor Nova stranka

Nakon izbora tipa stranke, otvaraju se polja


koja korisnik treba popuniti (crvenom bojom su
oznaena obavezna polja). Kada se otvara
predmet za ve postojeu stranku, ova polja se
automatski popunjavaju iz baze podataka:
Polja za odabranu pravnu osobu se razlikuju u
tome to nema polja za prezime, JMBG postaje
MBR, i nema broja osobne isprave.
Budui da se ne moe oekivati da korisnik
poznaje potanske brojeve gradova, pritiskom
na gumb (7) otvara mu se sljedea pomona
forma:

10

Slika 4.16. Prozor Izbor mjesta


Slika 4.15. Prozor Nova stranka

Ovdje se iz liste moe odabrati mjesto (uz


pomo filtriranja (9), ili dodati novo (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

Slika 4.17. Traenje potvrde

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.

4.4.3. Izrada novog dokumenta


Izrada novog dokumenta poinje se izborom: Meni -> Predmet -> Vlastititi
dokument (CTRL+F1) pri emu se dokument izrauje za trenutno aktivni predmet,
ili izborom Meni -> Novo -> Dokument -> Vlastiti (CTRL+V) odnosno pritiskom
u glavnom meniju, nakon ega se od korisnika trai da izabere predmet
na gumb
za kojeg eli izraditi dokument.
Nakon izbora predmeta, pojavljuje se sljedea forma za izbor:

1
2
3

Pod (1) korisnik odabire tip dokumenta kojeg


eli izraditi, a pod (2) entitet za kojeg ga
izrauje. Ako navedeni dokument/entitet nije
ponuen, moe ga se dodati u bazu
pritiskom na gumbe pod (3), ime se otvara
prikladna forma za dodavanje entiteta / tipa
dokumenta.

Slika 4.18. Prozor Novi dokument

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.4.4. Zaprimanje vanjskog dokumenta


Kada odvjetnik zaprimi dokument od vanjskog entiteta, moe evidentirati njegov
dolazak na sljedei nain: Meni -> Novo -> Predmet -> Vanjski dokument
(CTRL+F2) ime se pretpostavlja da je dokument vezan za trenutno tekui predmet,
ili izborom Meni -> Novo -> Dokument -> Vanjski (CTRL+A) odnosno pritiskom

4. Aplikacija

25

, ime se korisniku daje da odredi predmet za kojeg eli evidentirati


na gumb
vanjski dokument. Forma za dodavanje izgleda ovako:

2
3
4
5

Odabirom pod (1) korisnik odreuje tip


dokumenta i entitet od kojeg je doao.
Pod (2) i (3) odreuje se dan nastanka
kao i dan zaprimanja. Pod (4) unosi se
autor dokumenta. Bitno je pratiti
lokaciju dokumenta kako bi se izbjegle
dugotrajne potrage, pa se to unosi pod
(5). Takoer korisnik moe oznaiti
status obrade dokumenta klikom na
ek-kuicu (7). Pod (6) moe se unijeti
saetak znaenja dokumenta.

6
7

Slika 4.19.
dokument

Prozor

Novi

vanjski

4.4.5. Dodavanje nove obaveze


Dodavanje nove vremenske obaveze izvodi se odabirom Meni -> Novo -> Predmet
-> Obaveza (CTRL+F5) za dodavanje obaveze vezane za aktivni predmet, ili
izborom Meni -> Novo -> Obaveza (CTRL+O) odnosno pritiskom na gumb
odabir drugog predmeta. Prikazuje se sljedea forma:

za

U kontroli (1) korisnik izabire datum


obaveze (.NET kalendarska kontrola se
moe
pomicati
naprijed/natrag
po
mjesecima). Upisom u kuice pod (2)
definiraju se sat i minute. Pod (3) navodi
se mjesto i pod (4) kratki opis obaveze.

Slika 4.20. Forma Nova obaveza

Nakon popunjavanja podataka korisnik pritiskom na gumb Dalje kreira obavezu. U


DataGrid-u Obaveze vidimo novo kreiranu obavezu:

Slika 4.21. Prikaz kreirane obaveze u podatkovnoj mrei

4. Aplikacija

26

4.4.6. Dodavanje nove usluge


Kada odvjetnik eli zabiljeiti uslugu koju je pruio stranci, on to moe uiniti na
sljedei nain: Meni -> Predmet -> Novo -> Usluga (CTRL+F6) za tekui
predmet, ili izborom Meni -> Novo -> Usluga (CTRL+U), (odnosno pritiskom na
u izborniku pomagala), prilikom ega se korisnik moe odluiti za neki drugi
gumb
predmet.
Prije nego se opie nain rada s formom za dodavanje usluga, potrebno je poblie
objasniti koncept odvjetnike usluge.
Pod terminom usluga podrazumijeva se rad odvjetnika definiran Tarifnim modelom
Hrvatske Odvjetnike Komore. Usluga je odreena svojim tarifnim brojem (Tbr),
tokom i stavkom, te tekstom koji je opisuje. Usluga se u bazu dodaje prema
identifikatoru usluge
Svaka usluga u Tarifnom modelu spada u jednu od sljedeih kategorija:
a) Usluga koja donosi odreen broj bodova.
b) Usluga koja je vezana za neku drugu uslugu. Ove usluge nose odreeni
postotak bodova iz neke druge usluge.
c) Usluga koja nosi odreenu kunsku vrijednost.
Sve usluge u modelu prikazane su u listi (1), po formatu [Tbr/Toka/Stavka/Kratki
opis], radi to lakeg pregledavanja. Tekst-kuice u okviru (2) su dinamiki vezane za
retke u listi (vidi 4.5.1.3.1.) i u njima se prikazuju podaci vezanu za tu uslugu, meu
ostalim broj bodova koje nosi i puni opis. Pritiskom na gumb (3) dodaje se usluga u
bazu podataka. Pritiskom na gumb (4) spremaju se promjene koje su eventualno
napravljene u tekst-kuicama Bodovi i Opis u okviru (2).
Za usluge pod a), dovoljno je odabirom iz (1) i pritiskom na (3) obaviti postupak
dodavanja usluge. Meutim za usluge iz b), korisniku se u listi (6) otvaraju vezane
usluge za odabranu uslugu iz (1) i korisnik moe te vezane usluge odabirati isto kao u
listi (1). Na odabir se u tekst-kuici % u okviru (5) prikazuje postotak pod kojim je
usluga vezana. U kuici (7) pokazuje se broj bodova kao rezultat umnoka nominalnog
broja bodova i postotka.
Za usluge pod c), korisnik treba upisati vrijednost u kunama koje on zahtijeva za
pruenu uslugu. Ova kunska vrijednost e se (prema definiranoj kunskoj
protuvrijednosti boda) pretvoriti u bodove i tako upisati u bazu podataka.
Na kraju, usluge se mogu koliinski kvantificirati u broju sati, i to se ostvaruje upisom
u kuicu (8).
U status-panelu (9) se prikazuje vrijednost predmeta za kojeg se usluge dodaju, kao i
broj dodanih usluga u ovoj seansi.
Pritiskom na gumb (10) korisnik moe ponititi rad u seansi. Pritiskom na gumb (11)
postupak se zavrava.
Svakim pritiskom na gumb (3) u bazu podataka dodaje se identifikator usluge
(Usluga_ID), broj bodova te broj sati. Kasnije se iz ovih parametara moe izraunati
kunska protuvrijednost usluge, pa nije potrebno spremati iznos u ovom trenutku.

4. Aplikacija

27

2
9
3

10

11

Slika 4.22. Prozor Nova usluga

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);
}

4.4.7. Izrada novog rauna


Za dodavanje novog rauna treba odabrati: Meni -> Predmet -> Novo -> Raun
(CTRL+F7), za izradu rauna za trenutno aktivni predmet, ili izborom Meni -> Novo
-> Raun (CTRL+R) (odnosno pritisnuti gumb
izbor predmeta za kojeg se eli izraditi raun.

u gornjem slikovnom izborniku) za

Nakon to se odredi predmet za koji se raun izrauje, otvara se forma koja je


popunjena iz baze podataka s pruenim uslugama za taj predmet:

(1) Ovdje su ispisane pruene usluge za


dani predmet. Mogu se odabrati usluge
koje se ele ukljuiti u raun. Pritiskom na
gumb (4) odabiru se sve usluge. Korisnik
ovdje moe dodati novu uslugu pritiskom
1
na gumb (5).

(2) Ovdje su dani podaci za odabranu


pruenu uslugu, Tbr.(tarifni broj), Toka,
broj bodova, opis, broj sati i iznos u
kunama.
2

(3) Ovdje su ispisani ukupna suma (bez


PDV-a) i podaci o iro-raunu.
3

Slika 4.23. Forma za izradu rauna

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

4.4.8. Izrada novog putnog naloga


Aplikacija ima opciju izrade putnog naloga izborom Meni -> Predmet ->Novo ->
Putni nalog (CTRL+F3) za izradu putnog naloga za aktivni predmet, ili Meni ->
Novo -> Putni nalog (CTRL+P), odnosno pritiskom na gumb
u gornjem
slikovnom izborniku, pri emu se moe odabrati neki drugi predmet. Forma za putni
nalog je sljedea:
Korisnik
treba
parametre:

postaviti

sljedee

1. Datum putovanja, pri emu se iz


kalendarske kontrole izabire datum
2. U mjesto, gdje mu se prua izbor
potanskog broja iz liste mjesta na
pritisak gumba (1) (vidi sliku
3. Broj dana, gdje treba upisati cijeli
broj dana
4. Osobni automobil, padajua lista
gdje se moe izabrati vrsta
prijevoznog sredstva
5. Na teret
6. Svrha

Slika 4.24. Forma za izradu putnog naloga

Na pritisak gumba Dalje, poziva se ugraena procedura s kojom se u bazu podataka


unosi novi zapis s podacima iz forme. Ta procedura u program vraa tri parametra,
Broj_Naloga, to je redni broj naloga koji se upravo kreira, Datoteka, to je ime
datoteke pod kojim e se nalog spremiti i Dokument_ID, to je broj dokumenta pod
kojim se ovaj nalog vodi. (svaki dokument ima jedinstveni broj).
Nakon rada s bazom, aktivira se obrazac PutniNalog.dot iz direktorija obrazaca, koji
sadri prije definirana polja (bookmarks), u koje se upisuju podaci s forme, kao i
parametri koji su vraeni iz baze. Neke vrijednosti poput zaglavlja, imena i matinog
broja putnika dohvaaju se iz relacije tbl_Korisnik, koja sadri podatke o trenutnom
korisniku aplikacije i mogu se promijeniti kako je opisano u toci 4.4.12.3.
Konano, ovako izgleda generirani dokument:

4. Aplikacija

30

Slika 4.25. Izraeni putni nalog

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.4.9. Izrada novog putnog rauna


Za postojei putni nalog korisnik moe izraditi i putni raun. Izgled i stavke putnog
rauna dogovorene su u skladu s potrebama korisnika i nisu ma razini sloenosti poput
putnih rauna koji se koriste u drugim poslovnim organizacijama.
Izrada putnog rauna se zapoinje izborom Meni -> Predmet -> Novo -> Putni
raun (CTRL+F4), pri emu je sljedei korak odabir iz liste putnih naloga
napravljenih za trenutno aktivni predmet, ili izborom Meni -> Novo -> Putni raun
u gornjem slikovnom izborniku, pri emu
(CTRL+N), odnosno pritiskom na gumb
se je sljedei korak odabir iz liste svih dosad napravljenih putnih naloga.
Za izradu putnog rauna zaduena je forma prikazana na slici 4.26.

4. Aplikacija

31

Pod (1) navedeni su podaci s ve izraenog


putnog naloga, poput mjesta i dana
putovanja. Pod (2) navodi se ukupan troak
putovanja
(ovakva
obrada
trokova
dogovorena je s korisnikom). Pod (3) moe se
unijeti
kratka
primjedba
o
izvrenom
putovanju.

Slika 4.26. Forma za izradu putnog rauna

Nakon ispunjavanja forme i pritiska na gumb Dalje, pomou ugraene procedure u


bazu podataka se upisuju podaci o raunu. Ti isti podaci se zatim ubacuju u obrazac
PutniRacun.dot. Podaci o putnom nalogu proitani su iz zapisa u bazi koji odgovara
broju putnog naloga za kojeg se odabralo izraditi raun. Iz slika 4.25. i 4.27. vidi se
kako putni raun odgovara putnom nalogu.

Slika 4.27. Izraeni putni raun

4. Aplikacija

32

4.4.10. Izbor predmeta


Korisnik moe direktno skoiti na predmet odabirom Meni -> Predmet -> Promijeni
(F7), odnosno pritiskom gumba

u slikovnom izborniku. Otvara se sljedea forma:

Slika 4.28. Izbor predmeta

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.

4.4.11. Izrada izvjea


Korisnik moe u formatiranoj Word datoteci ispisati automatski generirana izvjea o
svom radu. Mogu je:
1. ispis obaveza u vremenskom razdoblju, Meni -> Izvjea -> Obaveze
(SHIFT+F1, +F2, +F3)
2. ispis stranaka (fizikih, pravnih, oba), Meni -> Izvjea -> Stranke
(SHIFT+F4, +F5, +F6)
3. ispis predmeta (otvoreni, zatvoreni, oba), Meni -> Izvjea -> Predmeti
(SHIFT+F7, +F8, +F9)
4. ispis izdanih rauna u vremenskom razdoblju, Meni -> Izvjea ->
Rauni (SHIFT+F10) ili pritiskom na gumb
izborniku.

u gornjem slikovnom

Za izradu se koriste prije napravljeni obrasci (Predmet.dot, Obaveze.dot, Stranke.dot i


Racuni.dot) koji se nalaze u direktoriju obrazaca. Nain rada s obrascima detaljnije je
opisan je u tokama 4.5.3.1. i 4.5.3.2.
Ispod je dan primjer izgleda izvjea za predmete, stranke, i za raune u danom
vremenskom razdoblju.

4. Aplikacija

33

1. Za sve predmete

Slika 4.29. Izvjee o predmetima

Zaglavlje, podaci u tablici i datum se dinamiki generiraju dok je ostali tekst statiki
sadraj obrasca (obaveze.dot).
2. Za sve stranke

Slika 4.30. Izvjee o strankama

3. Za raune u vremenskom razdoblju


Korisniku se prvo daje da odabere izbor razdoblja iz forme:

Slika 4.31. Forma za izbor razdoblja

i pritiskom na gumb Dalje generira se sljedei ispis:

4. Aplikacija

34

Slika 4.32. Izvjee o raunima

Kreiranje izvjea se ne evidentira u bazi podataka, budui da se radi o automatski


generiranom sadraju. Imena pod kojima se spremaju izvjea su takoer automatski
generirana i tokom vremena dolazi do poveanja njihovog broja na tvrdom disku.
Korisniku se stoga daje mogunost da iste obrie, izborom Meni -> Izvjea ->
Oisti (SHIFT+F12), ime se briu sva izvjea s tvrdog diska.
Jo jedna opcija pod menijem Izvjea je ispis dokumenta koji sadri Tarifni model
Meni -> Izvjea -> Tarifni model (SHIFT+F11)

4.4.12. Postavke
Opciju Postavke korisnik odabire izborom Meni -> Alati -> Postavke (F2), iz
tekstualnog izbornika, ili pritiskom na gumb

iz gornjeg slikovnog izbornika.

Korisniku su na izbor sljedee postavke koje moe podeavati:


4.4.12.1. Openite postavke
Korisnik moe ukljuiti/iskljuiti sljedee opcije: (slika 4.33.)
1. Pokai zadnje dokumente ako je ova opcija ukljuena, nakon
pokretanja aplikacije prvo se pokazuje prozor sa zadnje izraenim
dokumentima.
2. Pokai poruke ako je ova opcija ukljuena, korisniku se pokazuju poruke
tipa, Dodali ste obavezu, Dodali ste novu stranku i slino.
3. Pokai iznimke ako je ova opcija ukljuena, korisniku se pokazuju
razumljive poruke o grekama koje su nastale u radu aplikacije. Ovu opciju
se NE preporuuje iskljuivati.
4. Pokai splash screen ako je ova opcija ukljuena, prije pokazivanja
glavne forme, korisniku se pokazuje mali prozor s ponudom opcija.
Detaljniji opis u toci 4.4.14.1.
5. Pokai pozadine ako je ova opcija ukljuena, aktiviraju se slikovne
pozadine u formama. Ova opcija poboljava izgled aplikacije ali moe
usporiti njen rad.
6. Pokai podsjetnik ako je ova opcija ukljuena, pri pokretanju se
aktivira prozor s tekuim neizvrenim vremenskim uslugama. Podsjetnik je
detaljnije opisan u toci 4.4.14.2.
7. Vrijednost boda odreuje kunsku protuvrijednost boda prema Tarifnom
modelu Hrvatske odvjetnike komore.
8. PDV odreuje iznos Poreza na dodanu vrijednost za odvjetnike usluge.

4. Aplikacija

35

Slika 4.33. Prozor Openito

4.4.12.2. Postavke direktorija


Aplikacija koristi razne datoteke za svoj rad, kao to su Word obrasci, dokumenti, slike
i ikone, i ove datoteke su radi preglednosti smjetene u vlastite direktorije. Ako
korisnik eli premjestiti lokaciju nekog direktorija on to moe izborom u prozoru
Direktoriji: (slika 4.34.)

Slika 4.34. Prozor Direktoriji

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

Slika 4.35. Prozor Odvjetnik

4.4.13. Zavretak rada


Kada je korisnik spreman zavriti svoj rad, on to moe uiniti izborom Meni -> Novo
-> Kraj (CTRL+K), iz tekstualnog izbornika, ili pritiskom na gumb
slikovnog izbornika.

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:

Slika 4.36. Splash screen

Izborom jedne od opcija korisnik izravno poinje s radom.


4.4.14.2. Podsjetnik
Jedna od najbitnih stvari u radu bilo koje organizacije je potovanje zakazanih
sastanaka. U poslu odvjetnika kanjenje na npr. sudsko roite ima posebnu teinu.
Stoga je u aplikacij dodan modul Podsjetnik:

4. Aplikacija

37

Slika 4.37. Podsjetnik

Modul Podsjetnik sjedi izvan aplikacije u malom prozoru, ispisujui neispunjene


obaveze u svojem prozoru. Omogueno je mijenjanje podataka u retcima prozora,
npr. ponitavanje kuice Obavljeno?, ime se ta obaveza vie nee pokazivati.
Ovaj modul egzistira u posebnoj dretvi, koja svaku minutu iz baze podataka dohvaa
obaveze i ispisuje ih na suelje. Korisnik moe iz menija Interval odabrati do kojeg
datuma eli vidjeti obaveze (npr. ako se izabere interval 1 sat, ispisivae se obaveze
do 1 sata od trenutnog vremena, ili ako se izabere 7 dana, ispisivae se obaveze do 7
dana od trenutnog vremena, itd.). Pritiskom na meni Nova, moe se dodati nova
obaveza.
Glavna karakteristika ovog modula je da provjerava da li su obaveze prele zadano
kritino vrijeme prije isteka obaveze. Npr. ako je obaveza zakazana u 17:36, trenutno
vrijeme je 17:00, a korisnik je postavio Kritino vrijeme na 30 minuta, u 17:06
korisnika e se obavijestiti o pribliavanju roka tako da se ta obaveza (i sve druge koje
zadovoljavaju kriterij) pocrveni.

Slika 4.38. Podsjetnik s kritinom obavezom

Kritina obaveza e nastaviti crvenjeti dok trenutno vrijeme ne pree vrijeme


zakazane obaveze ili korisnik ne klikne polje Obavljeno?. Korisnik moe u meniju
Kritino vrijeme odrediti koliko prije isteka obaveze eli aktivirati obavijeivanje,
npr. 30 minuta, 60 minuta ili 2 sata.

4.5. Opis programa


Broj linija koda u ovoj aplikaciji dosegnuo je skoro 20,000, od toga oko 50% otpada
na definiciju kontrola (gumbi, panela, formi, izbornika) jer za svaku kontrolu treba
navesti poloaj, veliinu, itd. Onih ostalih 50% destiliranog koda kojeg sam napisao
nema smisla poblie opisivati, nego u samo objasniti neke bitne koncepte koritene u
izgradnji.

4.5.1. Rad s bazom podataka


Za bazu podataka odabran je Microsoft SQL Server 2000 [3] , jedna od
najpopularnijih baza za podrku klijent-aplikacija. Budui da koristimo Windows Server

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

ako se ti parametri koriste u vie procedura, mogue ih je definirati u razredu


cSqlParameter, tako da se kod poziva procedura uzme jedan od prije definiranih
parametara. Ovo e biti objanjeno u nastavku.
Ovo je primjer koritenja ugraene procedure u radu:
//Deklaracija Sql naredbe, pridjeljivanje imena ugraene
//procedure, na vezi cGlobal.con
SqlCommand com = new SqlCommand("
uspPredmet_Usluga_Select",
cGlobal.con);
//Obavezno. Naznaiti da je naredba tipa ugraene procedure
com.CommandType = CommandType.StoredProcedure;
//Fleksibilno. Razred cSqlParameter smo kreirali kako bi u
//jednoj liniji na Sql naredbu dodali Sql parametar,
//s vrijednou nPredmet_ID
cSqlParameter.iPredmet_ID(nPredmet_ID, ref com);
U razredu cSqlParameter:
//...
private static SqlParameter iParam(
string paramName, object paramValue,
SqlDbType dbType, ref SqlCommand com)
{
//ove linije se ponavljaju za svaki parametar
SqlParameter param = com.Parameters.Add(
paramName, dbType);
param.Direction = ParameterDirection.Input;
param.Value = paramValue;
return param;
}
//...
public static SqlParameter iPredmet_ID(
object paramValue, ref SqlCommand com)
{
return iParam("@Predmet_ID", paramValue,
SqlDbType.Int, ref com);
}
Nakon oblikovanja Sql naredbe, treba ju predati bazi podataka i doekati rezultat
njenog izvoenja na posluitelju. To smo inili na dva naina:
4.5.1.2.1. Razredi SqlDataAdapter i DataSet.
Razred SqlDataAdapter posreduje izmeu baze podataka i razreda DataSet, koji nam
slui kao spremite podataka. SqlDataAdapter moe itati podatke iz baze u DataSet,
ili ih pisati iz objekta DataSet u bazu. Na primjer:
//Deklaracija Data adaptera, pridjeljivanje Sql naredbe
SqlDataAdapter dad = new SqlDataAdapter(com);
//Deklaracija Data seta
DataSet ds = new DataSet();
//Punjenje Data seta iz baze prema Sql naredbi com,
//posredstvom Data adaptera
dad.Fill(ds, "Ime_Tablice");
//...

4. Aplikacija

40

Ako elimo podatke iz DataSet-a preko DataAdapter-a upisati u bazu, postupak je


sljedei:
//Tekst Update naredbe
string sUpdate = ...;
//Definirati Update naredbu SqlDataAdapter-a
dad.UpdateCommand = new SqlCommand(sUpdate, cGlobal.con);
//Definirati SqlParametre naredbe
SqlParameter prm = dad.UpdateCommand.Parameters.Add(...);
//Od kuda parameter vue vrijednost
prm.SourceColumn = "Ime_stupca_u_Data_Set-u";
//Uzmi trenutnu vrijednost stupca DataSet-a
prm.SourceVersion = DataRowVersion.Current;
//...
//Reci SqlDataAdapter-u gdje da trai podatke
dad.Update(ds.Tables["Ime_Tablice"]);
Nakon dohvata podataka iz baze, moemo ih izlistavati upotrebom foreach naredbe:
//Prolaz kroz svaki redak DataSet-a
foreach (DataRow dr in ds.Tables["Ime_Tablice"].Rows)
{
//operacije s retcima
}
Meutim ono to se ee koristi je povezivanje podataka (DataBinding) izmeu neke
kontrole i DataSet-a. Kontola moe biti tekst-kuica (TextBox), lista (ListBox), ili u
ovoj aplikaciji najee podatkovna-mrea (DataGrid). Povezivanje se izvodi ovako:
//txtKucica ce sadrzavati vrijednost stupca Ime_stupca
//iz tablice ds.Tables[Ime_Tablice].
txtKucica.DataBindings.Add("
Text, ds.Tables["Ime_Tablice"], "Ime_stupca");
//Ili za DataGrid imena dg
dg.DataSource = ds.Tables["Ime_Tablice"];
//U DataGridu dg e biti ispisan sadraj tablice
//ds.Tables[Ime_Tablice]
4.5.1.2.2. Razred SqlDataReader
Razred SqlDataReader slui za itanje redaka iz SqlServer baze na sljedei nain
(pretpostavka da je com definiran SqlCommand objekt):
//Definirati SqlDataReader kao rezultat Sql naredbe
SqlDataReader dar = com.ExecuteReader();
//Prolaz kroz podatke, dok ih ima
while (dar.Read())
{
sw.WriteLine("{0}\t{1}\t{2}\t{3}", dar[1], dar[2],
dar[3], dar[4]);
}
//Obavezno zatvoriti SqlDataReader jer je nemogue koristiti
//vezu dok je on otvoren
dar.Close();

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:

Slika 4.39. Dinamiko popunjavanje padajue liste

Poanta je da su vrijednosti u padajuoj listi dohvaene iz baze tijekom izvoenja


programa, a na statiki upisane kod kreiranja kontrole. Evo kako je ovo ostvareno:
SqlCommand com = new SqlCommand("
SELECT Ime, Prijevozno_Sredstvo_ID FROM
tbl_Prijevozno_Sredstvo", cGlobal.con);

4. Aplikacija

43

//tbl_Prijevozno_Sredstvo je relacija u bazi, s primarnim


//kljuem Prijevozno_Sredstvo_ID i atributom Ime
SqlDatAdapter dad = new SqlDataAdapter(com);
DataSet ds = new DataSet();
dad.Fill(ds, "tbl_Prijevozno_Sredstvo");
//Veemo pad. listu s izvorom podataka, opet to je DataSet
cboPrijevozno_Sredstvo.DataSource =
ds.Tables["tbl_Prijevozno_Sredstvo"];
//to korisnik vidi
cboPrijevozno_Sredstvo.DisplayMember = "Ime";
//Vrijednost s kojima aplikacija radi; primarni klju relac.
cboPrijevozno_Sredstvo.ValueMember="Prijevozno_Sredstvo_ID";
U pozadini, padajua lista radi s numerikom vrijednou Prijevozno_Sredstvo_ID,
meutim korisnik izabire po imenu; izbor e se naravno zapamtiti po numerikoj
vrijednosti, ali to ostaje skriveno od korisnika.
4.5.1.3.3. Liste (ListBox) i ek-liste (CheckListBox)
Liste pruaju puno bolju preglednost i poveanu funkcionalnost od kontrola koje smo
dosad razmatrali. Pogledajmo primjer koritenja lista kod izrade rauna:

Slika 4.40. Forma za izradu rauna

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

Kada se elimo kretati kroz kolekciju ekiranih redaka, to moemo koritenjem


svojstva clb.CheckedIndices.
4.5.1.3.4. Podatkovna-mrea (DataGrid)

Slika 4.41. Primjer podatkovne mree (DataGrid)

Ovo je korisniki-najpogodnija kontrola za prikaz podataka i prua iroku


funkcionalnost. U ovoj aplikaciji je zbog toga esto koritena. Kao i kod prije
objanjenih kontrola, poanta je povezivanje podatkovne-tablice s izvorom podataka,
meutim kod ove kontrole moemo izabrati broj i izgled stupaca koje prikazujemo;
budui da mrea svoje podatke dohvaa iz tablice podataka, imamo opciju definirati
stil te tablice (boju, broj stupaca, irinu stupaca, itd.), tako da korisniku dajemo izgled
koji mu je pristupaniji.
Budui da se u aplikaciji koristi nekoliko stilova (npr. za Obaveze, za Predmet, za
Fizike osobe, itd.) kreiran je razred cDataGridStilovi u kojem su ovi stilovi
definirani. Stil tablice iz koje mrea dohvaa podatke definira se instancom razreda
DataGridTableStyle.
Ovaj
object
sadri
kolekciju
objekata
razreda
GridColumnStyles, koji definiraju izgled i ponaanje pojedinog stupca u tablici. Za
potrebe aplikacije, iz razreda DataGridTableStyle nasljedili smo onoliko razreda
koliko nam je stilova bilo potrebno:
//Ovaj razred e definirati stil za prikaz putnih naloga
public class DataGridTableStyle_Putni_Nalog :
DataGridTableStyle { ... }
Isto smo uinili i sa stilovima stupaca. Umjesto da za svaku mreu definiramo stilskutablicu i zatim definiramo stilske-stupce, na jednom mjestu definiramo stilski-stupac
koji se esto koristi u ispisu (npr. DataGridColumnAdresa za prikaz adrese) i onda ga
recikliramo koliko nam je potrebno:
//Nasljeujemo od .NET razreda DataGridTextBoxColumn
public class DataGridColumnAdresa : DataGridTextBoxColumn
{
public DataGridColumnAdresa(ref DataSet ds)
{
//od kuda se dohvaa vrijednost koje prikazujemo
this.MappingName =
ds.Tables[0].Columns["Adresa"].ToString();
//parametri irine, ime zaglavlja, itd.
this.Width=150;
this.HeaderText = "Adresa";
this.NullText = string.Empty;
}
}
Bitno je naglasiti da e se na ekran ispisati samo oni stupci koji su dodani stilskojtablici. Iako baza vraa npr. 10 stupaca po retku, mi moemo regulirati broj i poloaj
tih stupaca u ispisu prema tome kako ih dodajemo stilskoj-tablici:

4. Aplikacija

45

public class DataGridTableStyle_Obaveza : DataGridTableStyle


{
public DataGridTableStyle_Obaveza(ref DataSet ds,
bool ShowStranka_Ime)
{
this.MappingName = ds.Tables[0].ToString();
if (ShowStranka_Ime == true)
this.GridColumnStyles.Add(new
DataGridColumnStranka_Ime(ref ds));
//Dodajemo instance razreda stilskih-stupaca
//nenavedeni stupci u DataSet-u se ne pokazuju
this.GridColumnStyles.Add(
new DataGridColumn_Obaveza_Kada(ref ds));
this.GridColumnStyles.Add(
new DataGridColumn_Obaveza_Gdje(ref ds));
this.GridColumnStyles.Add(
new DataGridColumn_Obaveza_Opis(ref ds));
this.GridColumnStyles.Add(
new DataGridColumn_Obaveza_Obavljeno(ref ds));
}
}
Jedan problem do kojeg je dolo u radu s ovom kontrolom je kako dohvatiti red u
tablici koja slui kao izvor podataka za podatkovnu mreu, vezano za redak u mrei na
kojoj se trenutno pokazuje. Npr. ako je korisnik na mreu ispisao putne naloge, izvor
podataka za mreu je tablica imena kao ds.Tables[Putni_Nalozi]. Korisnik zatim
miem odabere jedan redak iz mree i recimo eli, pomou gumba sa strane ili
kontekst-izbornika, otvoriti taj putni nalog u Word-u. Nekako moramo nai vezu
izmeu retka u mrei koji je odabran i retka u DataSet-u u kojem traimo informaciju
(imeno Dokument_ID) s kojom moemo otvoriti document.
Istina je da mrea sadri svojstvo dg.CurrentRowIndex koja daje redni broj retka na
kojeg se pokazuje. Ako tu vrijednost sad ukopamo u DataSet sa:
ds.Tables["Putni_Nalozi"].Rows[dg.CurrentRowIndex]["Dokument_ID"];
ovo e vratiti korektan redak iz DataSet-a sve dok korisnik ne odlui sortirati mreu
pritiskom na zaglavlje nekog stupca, kada se zavisnost gubi i vraaju se krivi retci.
Ako je korisnik odluio brisati retke, biti e obrisani krivi zapisi.
Naalost .NET ne prua brz nain da se dohvati pravi redak iz DataSet-a, pa smo
stoga u razredu cHelp definirali ovakvu statiku metodu [5]:
public static DataRow CurrentRow(DataGrid dg)
{
CurrencyManager xCM = (CurrencyManager)
dg.BindingContext[dg.DataSource, dg.DataMember];
DataRowView xDRV = (DataRowView)xCM.Current;
}

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.5.2. Windows aplikacija


Budui da se radi o Windows aplikaciji koristimo se objektima razreda
System.Windows.Forms.Form, odnosno formama. Visual Studio automatski generira
kod za definiranje kontrola koje je programer postavio na formu (to su npr. tekstkuice, labele i gumbi), dok programer pie kod za opis ponaanja tih kontrola. Na
primjer, kada korisnik pritisne gumb, potrebno je napisati rukovatelja dogaajem
(Event Handler) koji e obaviti izvjesnu operaciju. To moe biti poziv ugraene
procedure ili otvaranje nove forme.
Dodavanjem nove forme u projekt kreira se tijelo razreda te forme. Glavnina koda u
programu napisana je upravo u razredu forme, npr. kod za dodavanje nove stranke
napisan je u razredu FormNovaStranka. Meutim pojavila se potreba za kreiranjem
razreda npr. za obradu parametara koji se prosljeuju u ugraene procedure. Budui
da se kod svake deklaracije Sql parametra mora navesti tip podatka koji parametar
koristi (a ovi su uglavnom integer ili nvarchar), zatim da li je rije o ulaznom ili
izlaznom parametru, napravili smo razred cSqlParameter sa statikim metodama koje
vraaju izraene parametre. (vidi prva dva prozora s kodom u toci 4.5.1.2.)
Takoer smo kreirali razred cDataGridStilovi radi oblikovanja izgleda podatkovnih
mrea ili razred cPozadine koji postavlja pozadine u sve forme. Razred cGlobal sadri
globalne vrijednosti aplikacije, npr. trenutno aktivni predmet u varijabli
nAktivni_Predmet ili SqlConnection objekt kojeg koriste svi ostali objekti.
Jedan korisni razred je cPoruka koji ispisuje poruke korisniku koritenjem razreda
FormPoruka. Ovo omoguava ispis poruka na hrvatskom, pogotovo kada se korisniku
nudi Da/Ne izbor kao na slici 4.17. Isti razred ispisuje i iznimke.
Razred cPostavke brine se za dohvat postavki iz baze prilkom pokretanja aplikacije i
za njihovu pohranu kada ih korisnik promijeni i potvrdi u prozoru Postavke.

4.5.3. Word objekt


Za izradu dokumenata, u dosadanjem sustavu i u ovom informacijskom sustavu
koristi se Microsoft Word, jedan od danas najee koritenih paketa. Veina
korisnika koristi Word samo kao tekstualni editor, ali Word ima bogati i snaan objektmodel koji se moe programirati za specifine svrhe. U tu svrhu potrebno je na

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)

Slika 4.42. Obrazac za izradu rauna

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;

Nakon otvaranja dokumenta, program e potraiti ig zadanog imena i popuniti ga


odgovarajuim sadrajem. Ako navedeni ig ne postoji, sustav e prijaviti greku.
4.5.3.2. Primjer izrade dokumenta
Za primjer izrade dokumenta koristei Word objekt iz .NET okruenja pokazat emo
izradu rauna. Koristi se obrazac prikazan na slici 4.42. Prilikom izrade rauna koristi
se forma prikazana na slici 4.23. Nakon odabira usluga koje se eli koristiti u izradi
rauna i pritiska gumba Dalje, u bazu podataka se dodaje zapis o novom raunu sa
iznosom izraunatim iz odabranih usluga. Zatim se poziva metoda Create() u razredu
FormNoviRacun. Prvo se obavljaju kuanski poslovi oko Word objekta:
//Deklaracija objekta Application i Document
Word._Application app;
Word._Document doc;
//Instanciranje, aktiviranje aplikacije
app = new Word.Application();
app.Visible = true;
app.Activate();
//Instanciranje doc objekta na novi dokument temeljen na
//obrascu templateName (ovdje je to racun.dot)
doc = app.Documents.Add(ref templateName,
ref missingValue, ref missingValue, ref missingValue);
Zatim se kree u obradu igova (bookmarks). Obrazac racun.dot (slika 4.42.) sadri
nekoliko igova, od kojih emo razmotriti ig koji e sadravati tablice sa stavkama
rauna:
//Definiranje iga za ispis tablice
object bkmTablica = "Tablica";
Word.Range wrdRng = doc.Bookmarks.get_Item(ref
bkmTablica).Range;
//Deklariramo objekt Table
Word.Table oTable;
//Dimenzije tablice:
//broj redaka = broj ekiranih redaka u listi usluga + 1 za
//zaglavlje s imenima stupaca
//broj stupaca = 2, jedan za tekst usluge, drugi za kunsku

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.";

//Dodajemo u prvi stupac tekst usluge


oTable.Cell(++nStavka, 1).Range.Text = sTekst;
//Dodajemo u drugi stupac iznos usluge
oTable.Cell(nStavka, 2).Range.Text = sIznos;
//...

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);

Objekt filename je vrijednost izlaznog parametra ugraene procedure za ubacivanje


rauna u bazu podataka, procedure koja se izvodi prije izgradnje dokumenta. Ta
procedura formira ime nove datoteke jednostavno uzimajui redni broj novog
dokumenta i dodajui prefiks doc i sufiks .doc.
Izgled izraenog dokumenta je dan na sljedeoj slici. igovi (I) su ostavljeni vidljivima
kako bi se vidio dinamiki sadraj i usporediti sa slikom 4.42.

4. Aplikacija

50

Slika 4.43. Izraeni raun iz aplikacije

4. Aplikacija

51

Ovo je primjer stvarnog rauna koji je dosad bio u uporabi:

Slika 4.44. Raun koji je trenutno u uporabi

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

4.4.14.1. Splash screen........................................................................ 36


4.4.14.2. Podsjetnik............................................................................. 36
4.5. Opis programa ................................................................................... 37
4.5.1. Rad s bazom podataka................................................................... 37
4.5.1.1. Povezivanje s bazom podataka .................................................. 38
4.5.1.2. Rad s podacima iz baze ............................................................ 38
4.5.1.3. Prikaz podataka iz baze u aplikaciji ............................................ 41
4.5.2. Windows aplikacija ........................................................................ 46
4.5.3. Word objekt ................................................................................. 46
4.5.3.1. Obrasci (Templates) i igovi (Bookmarks) ................................... 47
4.5.3.2. Primjer izrade dokumenta......................................................... 48
5. Zakljuak................................................................................................ 52
6. Literatura ............................................................................................... 53

You might also like