Академический Документы
Профессиональный Документы
Культура Документы
Alexander timac
Saetak: U ovom seminarskom radu opisan je postupak izrade aplikacije za automatsko generiranje zapisnika sa sastanka te kratak opis svih koritenih tehnologija. Aplikacija je izraena u programskom jeziku Java pomou Swing i JDBC tehnologija. Swing sadri klase i komponente potrebne za izradu modernog grafikog suelja, a JDBC je izvrstan API za komunikaciju s bazama podataka. Ukupno su obraena tri poglavlja koja ine seminarski rad. U prvom su opisane koritene tehnologije zajedno s Java programskim jezikom i njezinom povijeu .U sljedeem poglavlju opisani su poslovni sastanci te zapisnici koji se u veini sluajeva piu runo. Opisana je njihova primjena, razlog koritenja, prednosti i nedostaci. Na posljetku je objanjena primjena i mogunosti automatsko generiranog zapisnika, prikazane su dijelovi programskog koda zajedno s fotografijama.
Rjenik pojmova
Source code tekst napisan u programskom jeziku. Sadri niz instrukcija koje mogu biti prevedene u strojni jezik koji raunalo moe proitati i izvriti. Java Bytecode visoko optimiziran set instrukcija koji Java Virtual Machine moe izvriti. Java Virtual Machine prividno raunalo koje izvrava bytecode. Moe biti implementirano na razliite platforme ime je omogueno pokretanje aplikacija na razliitim ureajima. Open source otvoreni kod aplikacije koji je dostupan javnosti na koritenje i izmjene. Svrha stavljanja otvorenog koda na Internet je pozivanje to vie ljudi da sudjeluju u razvoju aplikacije kako bi postala to bolja. Java Applet manja aplikacija koja izvrava neku zadau a moe se pokrenuti u Web pregledniku pomou Java Virtual Machine. Compiler set raunalnih programa koji prevode izvorni kod iz jednog programskog jezika u drugi. Glavna zadaa Compiler-a je prevoenje high-level programskih jezika u strojni jezik kojeg raunalo raunalo. Megabyte mjerna jedinica za digitalnu pohranu podataka na raunalu. Bug greka koja uzrokuje smetnje i neispravno koritenje u programu. Nasljeivanje pojam u objektno orijentiranim programskim jezicima koji se odnosi na injenicu da jedna klasa moe naslijediti dio ili sva svojstva i ponaanja druge klase. Polimorfizam jedna od glavnih osobina koje se odnose na objektno - orijentirano programiranje. Omoguava klasi da definira metode koje mogu biti zajednike za sve ostale klase koje su iz nje izvedene. Enkapsulacija omoguuje sakrivanje podataka objektna tako da postanu nedostupni klasama koje ih ne bi trebale mijenjati Apstrakcija pojam koji se odnosi na nedovrene klase iz kojih nije predvieno kreiranje objekata, ve su namijenjene za nasljeivanje.
Sadraj
1. Uvod .................................................................................................................................................... 5 2. Izrada aplikacije u programskom jeziku Java....................................................................................... 6 2.1. Programski jezik Java .................................................................................................................... 6 2.2. Java Swing..................................................................................................................................... 7 2.3. JDBC .............................................................................................................................................. 8 3. Poslovni sastanci.................................................................................................................................. 9 3.1. Primjena zapisnika ...................................................................................................................... 10 3.2. Prednost i nedostaci ................................................................................................................... 10 4. Automatsko generirani zapisnik sa sastanaka ................................................................................... 11 4.1. Baza podataka ............................................................................................................................ 12 4.2. Log In Screen .............................................................................................................................. 13 4.3. Odabir prisutnih osoba ............................................................................................................... 14 4.4. Unos novog zaposlenika ............................................................................................................. 15 4.5. Organizacija dnevnog reda ......................................................................................................... 16 4.6. Organizacija zakljuka sastanka.................................................................................................. 17 4.7. Generiranje zapisnika ................................................................................................................. 18 5. Zakljuak ............................................................................................................................................ 19 6. Popis literature .................................................................................................................................. 20
1. Uvod
U dananje vrijeme se veina dogovora rjeava poslovnom komunikacijom. Jedan od naina komunikacije je odlazak na poslovni sastanak. To je najei ali i najskuplji oblik bez kojeg je u dananje vrijeme nemogue napredovati i sklapati dogovore. Nezaobilazna toka sastanka je sastavljanje biljeki ili zapisnika. To je ujedno i poetna toka ovog seminarskog rada. Veina biljeki pisana je na papiru za vrijeme trajanja sastanka. Da bi se pohvatale sve vane informacije potrebno je paljivo sluati i brzo pisati to ini vrlo zahtjevan zadatak. Postoje jo i audio i video zapisi meutim nisu se pokazali dovoljno efikasnim. Poto je u dananje vrijeme ogroman broj stvari digitaliziran, treba zaboraviti na zamorno pisanje rukom jer postoji bolje rjeenje. U ovom seminarskom radu je predstavljena aplikacija koja e automatski generirati zapisnik i ispisati ga ili poslati sudionicima. Zapisniar e uz minimalan broj unosa podataka dobiti kvalitetan zapisnik koji e uzimati njegove natuknice i od njih raditi pune reenice.
interakciju korisnika s aplikacijom. Interakcija moe biti putem tipkovnice, mia ili nekog drugog ulaznog ureaja. Alati su sastavni dio Java Standard Edition platforme, a prva izdana verzija sadravala je oko 250 klasa i 80 suelja. Takoer su sastavni dio Java Foundation klasa koje sadravaju sve potrebne komponente za izradu grafikog suelja. Komponente se nalaze u paketu
javax.swing.* kojeg je potrebno dodati klasi kako bi se mogle koristiti.
Uz Swing se koriste i paketi java.awt koji takoer sadri alate za izradu grafikog suelja, te
java.awt.event koji sadrava sve to je potrebno za interakciju korisnika s aplikacijom.
njihovu primjenu.
JLabel - tekst ili slike koje pruaju informacije. TextField i TextArea komponente koje prihvaaju unos s tipkovnice.
Slika 2.1. Primjer Swing aplikacije koja sadri sve navedene komponente
2.3.
JDBC
JDBC ili Java Database Connectivity je suelje za programiranje klijent/server aplikacija koje pristupa relacijskim bazama podataka. Omoguuje spajanje s odreenom bazom, izvoenje sloenih SQL upita, pohranjivanje podataka u bazu, te dohvaanje rezultata upita nad bazom podataka. Prava vrijednost JDBC API-a je to pomou njega aplikacija moe pristupiti gotovo svim bazama podataka i kompatibilan je na svim platformama koje koriste Java Virtual
Machine. iroku primjenu ima u Appletima i Enterprise aplikacijama jer podrava pristup
podacima u dvoslojnom i troslojnom modelu. Veza prema bazi podataka se moe uspostaviti pomou objekta klase Connection i klase
DriverManager. Metoda getConnection prima tri parametra. To su tip i lokacija baze
podataka, korisniko ime i lozinku. Ako su svi podaci ispravni, DriverManager e otvoriti vezu prema zadanoj bazi. Ovdje se nalazi prikaz metode za spajanje koritene u seminarskom radu:
public void otvoriKonekciju(){ Connection conn = null; String url = "jdbc:derby:C:/Users/Alexander/MyDB"; String username = "seminar"; String password = "seminar"; try { conn = DriverManager.getConnection(url, username, password); System.out.println("Spojen na databazu."); }catch(SQLException e){ e.printStackTrace(); } }
JDBC nudi i izvravanje upita nad bazom podataka. To omoguuju suelja Statement i PreparedStatement. Statement suelje je najee koriteno za jednostavne upite, dok PreparedStatement se koriste kada je isti upit potrebno pozvati vie puta.
Programski odsjeak 2.2. primjer suelja Statement i izvravanje upita Potrebno je uzeti u obzir da je veza prema bazi otvorena. Poziva se metoda koja odreuje pomak pokazivaa po tablici i konkurentnost rezultata. U ovom sluaju pokaziva se moe pomicati gore i dolje, a skup podataka je namijenjen samo za itanje. Nakon toga izvrava se upit metodom stmt.executeQuery, a rezultat se pohranjuje u objekt klase ResultSet.
3. Poslovni sastanci
Poslovni sastanci su jedan od najeih naina poslovnoga komuniciranja s kojima se pokree aktivnost i omoguuje primjena teorijskih spoznaja u praksi. Radi se o okupljanju djelatnika sa ciljem i svrhom. Razlozi odravanja sastanaka su: Komunikacija zaposlenika koja osigurava tonu razmjenu informacija. Donoenje proceduralnih zahtjeva i pravila poslovanje u tvrtki. Donoenje odluka koja omoguuje razmjenu znanja i udruivanje strunih miljenja te procjena najboljeg rjeenja i obvezivanje na njegovo provoenje. Kreativno rjeavanje problema s kojim se potie stvaranje novih ideja putem grupne interakcije. Razvoj timova u poslovnim organizacijama to podrazumijeva stvaranje lojalnosti tima, prilagoavanje novih lanova te unaprjeenje meusobnih odnosa. Poslovni sastanci predstavljaju najskuplji i najzahtjevniji oblik komuniciranja. Najskuplji su zbog raznih trokova i resursa koje je potrebno osigurati. To podrazumijeva putne i administrativne trokove, tiskanje uredskog materijala, trokove jela i pia te gubitak vremena. Uz to, potrebna su odreena znanja i vjetine u pripremi i voenju sastanka. Tako da e biti uinkovit jedino kada se sudionici, a posebice voditelj sastanka kvalitetno pripreme.
Tijek sastanka sastoji se od: Iznoenje dnevnog reda te upoznavanje i usmjeravanje svih sudionika o tokama o kojima e se raspravljati. Navesti cilj i oekivane krajnje ishode sastanka. Diskusije o navedenim tokama iz dnevnog reda po redoslijedu kojim su navedene. Donoenje zakljuka i dogovora te zatvaranje sastanka. Izrada zapisnika.
10
11
Programski odsjeak 4.1. : SQL kod za stvaranje nove tablice Kada je tablica stvorena, u nju je mogue pohraniti podatke na nain:
INSERT INTO dev.zaposlenik( ime, prezime, titula, polozaj, prebivaliste, email, odjel) VALUES('Elvira', 'Gospoi', 'mag.bioproc.ing', 'Ravnatelj', 'Zagreb', 'elvira@bolnica.hr', 'Uprava');
Imena i prezimena osoba koje se nalaze u bazi djelomino su uzeta sa stranice Akromion bolnice. Iskoritena su samo u demonstrativne svrhe i koritena su kao primjer tijekom izrade zapisnika sa sastanka.
12
Slika 4.1. Forma za prijavu zapisniara Metoda koja provjerava unos prima objekt klase Zapisnicar te u njega pohranjuje podatke koje je unio. Lozinku je potrebno prvo pretvoriti u niz znakova ( char ), a zatim u string kako ne bi dolo do pohrane tijekom usporeivanja. Nakon toga se otvara veza s bazom i poziva metoda provjeriLogin koja vraa vrijednosti true ili false, ovisno o tome jesu li podaci ispravni. U sluaju true prikazuje se glavni prozor aplikacije, a veza s bazom i Log in forma se zatvaraju.
private void provjera(Zapisnicar zapisnicar) throws SQLException{ zapisnicar.setUsername(userField.getText()); char[] text = passField.getPassword(); String pass = new String(text); zapisnicar.setPassword(pass); kon.otvoriKonekciju(); if(kon.provjeriLogIn(zapisnicar.getUsername(), zapisnicar.getPassword())){ glavni.setVisible(true); this.dispose(); kon.closeConnection(); System.out.println("Pristup odobren."); }else{ kon.closeConnection();}}
13
4.3.
Prozivka je obavezan dio poslovnog sastanka u kojem se utvruje tko je sve na njemu prisutan. Obino se svaki lan treba pisati runo, to zapisniaru oduzima dosta vremena, pogotovo ako na sastanku sudjeluje vei broj osoba. U automatsko generiranom zapisniku sa sastanaka taj je problem rijeen implementiranjem tablica. U lijevoj tablici nalazi se popis svih osoba koje su pozvane ili koje su obavezne dolaziti na sastanke, a desna tablica je prazna. Zapisniar treba oznaiti odreenu osobu i klikom na desnu strelicu preseliti tu osobu u drugu tablicu. Tako e sve prisutne osobe biti odijeljene, a one koje ostanu u lijevoj tablici smatrat e se neprisutnima.
Slika 4.2. Forma za odabir prisutnih osoba na sastanku Uz glavnu opciju odabira prisutnih, forma nudi dodatne mogunosti kao to su dodavanje ili brisanje svih osoba odjednom kako bi se jo vie ubrzao itav proces. Takoer postoji i mogunost dodavanja nove osobe u bazu. Pritiskom na gumb Dodaj novog otvara se potpuno nova forma koju je potrebno ispuniti.
14
4.4.
Za unos zaposlenika implementirana je metoda koja prima sve upisane parametre i pohranjuje ih u bazu podataka. Treba uzeti u obzir da je veza s bazom otvorena i nakon toga postaviti konkurentnost rezultata na promjene. Metodom moveToInsertRow() se postavlja pokaziva na prvi slobodni redak u tablici. Podaci se upisuju u tablicu tako da svaki string odgovara odreenom atributu u tablici. Pozivom insertRow()se potvruje transakcija i podaci su upisani u tablicu.
public void unesiZaposlenika(String ime, String prezime, String tit, String polozaj, String odjel, String email, String mjesto){ try { stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); rs = stmt.executeQuery("SELECT * FROM DEV.ZAPOSLENICI"); rs.moveToInsertRow(); rs.updateString("IMEZAPOSLENIKA", ime); rs.updateString("PREZIMEZAPOSLENIKA", prezime); rs.updateString("TITULAZAPOSLENIKA", tit); rs.updateString("POLOZAJZAPOSLENIKA", polozaj); rs.updateString("ODJEL", odjel); rs.updateString("EMAILZAPOSLENIKA", email); rs.updateString("MJESTOZAPOSLENIKA", mjesto); rs.insertRow(); JOptionPane.showMessageDialog(null,"Zaposlenik je uspjeno uneen u bazu.", "Klik", JOptionPane.INFORMATION_MESSAGE); } catch (SQLException e) { e.printStackTrace();} closeConnection();}
4.5.
Dnevni red je popis svih toaka koje su predviene za raspravu na poslovnom sastanku. Trebaju biti jasne, vrsto utvrene i vremenski ograniene. Za kvalitetno odrani sastanak potrebno ih je dostaviti svim uzvanicima kako bih se mogli pripremiti i na najbolji nain iskoristiti vrijeme. U automatsko generiranom zapisniku sa sastanaka izrada dnevnog reda je vrlo jednostavna. Zapisniar tijekom sastanka odabire temu trenutne stavke i njezinog voditelja. Nakon toga u natuknicama upisuje vane podatke koji su reeni. Opisana stavka pohranjuje se u tablicu iz koje e dalje procesirati i oblikovati za ispis zapisnika. Upis je dinamian, tako da je mogue imati neogranieni broj stavki, te ih je mogue mijenjati i brisati. Suelje je dizajnirano jednostavnom primjenom GridBagLayout-a i BorderLayout-a, a za odabir voditelja i tema stavki koriten je JComboBox. Popis voditelja moe biti bilo koja osoba zapisana u bazi podataka iz koje se izravno stvara padajui izbornik. To predstavlja problem jer je mogue odabrati osobu koja trenutno nije prisutna na sastanku, meutim radi se na ispravljanju takve pogreke.
public void popuniComboBox(JComboBox box) throws SQLException{ otvoriKonekciju(); stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery("SELECT * FROM DEV.ZAPOSLENICI"); String ime, prezime; String[] prisutni = new String[25]; int i = 0; while (rs.next()){ ime = rs.getString("IMEZAPOSLENIKA"); prezime = rs.getString("PREZIMEZAPOSLENIKA"); prisutni[i] = ime.concat(" " + prezime); box.addItem(prisutni[i]); i++; } closeConnection(); }
Programski odsjeak 4.5. : Metoda za dodavanje zaposlenika iz baze u ComboBox Metoda kao argument prima komponentu JComboBox-a te otvara vezu prema bazu. Zatim izvrava upit za odabir svih zaposlenika iz tablice Dev.Zaposlenici. U while petlji uzima imena i prezimena zaposlenika te ih pohranjuje u privremene varijable. Varijable se spajaju u jedan string i na kraju dodaju u JComboBox. Kada su svi zaposlenici dodani, zatvara se veza prema bazi.
16
4.6.
Zakljuak sastanka bazira se na prijanjim stavkama navedenima u dnevnom redu. Za svaku stavku potrebno je iznijeti plan o poduzimanju daljnjih koraka koji e se primijeniti u svrhu poboljanja i unaprjeenja prijedloga o kojima se diskutiralo. Takoer potrebno je navesti i osobu koja je odgovorna za provoenje daljnjih koraka, te krajnji rok do kojeg moraju biti izvreni. Ako je sve uredno dogovoreno, sastanak se moe smatrati uspjenim. Unos zakljuka u aplikaciji je slian kao i unos dnevnog reda. Potrebno je popuniti sva polja koja se odnose na odreenu stavku iz dnevnog reda. Podaci se pohranjuju u bazu gdje su relacijski povezani sa stavkama pomou primarnog i stranog kljua. Od dodatnih mogunosti ponuena je izmjena i brisanje odreenih zakljuaka. Grafiko suelje prikazano je na slici, a sastoji se od spoja GridLayout i GridBagLayout okvira.
17
4.7.
Generiranje zapisnika
Generiranje zapisnika predstavlja zavrni produkt itavog procesa izrade zapisnika sa sastanaka. Uzimaju se svi podaci koje je zapisniar unio, preoblikuju se u prihvatljivu formu i ispisuju na ekran. Tako oblikovani podaci ine kvalitetan i profesionalan zapisnik koji je spreman za ispis ili slanje e-potom. Automatsko generirani zapisnik nudi mnotvo opcija s kojima je mogue promijeniti itavu datoteku. To su: promjena boje i veliine teksta, podebljanje i podcrtavanje, kopiranje i lijepljenje te ispis i pohranjivanje datoteke u Wordov ili PDF dokument. Naalost, dodatne opcije jo nisu implementirane u aplikaciju jer su predviene za zavrnu verziju zajedno s ostalim karakteristikama. Na slici je prikazan trenutno nepotpuni generirani zapisnik.
18
5. Zakljuak
Automatsko generirani zapisnik sa sastanaka u trenutnoj verziji ne nudi mnogo. Izraeno je grafiko suelje koje e se s vremenom jo modificirati, te baza podataka. Ova faza predstavlja tek 30% od sveukupne izrade programa. Za daljnji rad na projektu osmiljene su sljedee zadae: Implementacija brzih tipki (eng. Hot Keys) koje e omoguavati brz izbor opcija i tako utedjeti vrijeme. Automatizacija unosa podataka. Cilj je da aplikacija to vie informacija sama ispisuje i generira. Implementacija raznih mogunosti za izmjenu gotovog zapisnika. Mogunost pohrane i slanje zapisnika e-potom svim sudionicima. Ispravak manjih pogreaka i bugova.
Krajnji je cilj da aplikacija u potpunosti bude primjenjiva u stvarnome ivotu. To znai da je u mogunosti izraditi kvalitetan i toan zapisnik u to kraem vremenu i time pojednostaviti posao zapisniara.
19
6. Popis literature
1. Thinking in Java 4th Edition Bruce Eckel, 2006 2. Java Swing Robert Eckstein, O'Reilly, 1998 3. Database Programming with JDBC and Java 2nd Edition George Reese, O'Reilly, 2001 4. Java Database Programming Bible - John O'Donahue , John Wiley & Sons, 2002 5. http://www.utirus.netfirms.com/sastanak.htm 6. http://www.wisegeek.com/what-are-meeting-minutes.htm 7. http://careerplanning.about.com/cs/communication/a/minutes.htm 8. http://en.wikipedia.org/wiki/Minutes
20