You are on page 1of 25

SEMINARSKI RAD

PANEVROPSKI UNIVERZITET APEIRON

FAKULTET INFORMACIONIH TEHNOLOGIJA

REDOVNE STUDIJE

SMJER „PROGRAMIRANJE I SOFTVERSKO


INŽENJERSTVO”

Predmet
Viši programski jezici i RAD alati

E-evidencije -
Projekat povezivanja baze podataka i
Visual Basic-a
(seminarski rad)

Predmetni nastavnik
Prof. dr Zoran Ž. Avramović, dipl.inž.elek.

Student
Jovo Simić

Banja Luka, jun 2020.


Sadržaj
1. UVOD..............................................................................................................................................3
2. SQL – Baza podataka......................................................................................................................4
2.1. Kreiranje baze podataka.........................................................................................................4
2.2. SQL..........................................................................................................................................7
2.3. Naredbe SQL-a........................................................................................................................8
3. APLIKACIJA....................................................................................................................................10
3.1. MICROSOFT VISUAL STUDIO.................................................................................................10
3.2. APLIKACIJA............................................................................................................................11
4. PRIKAZ RADA APLIKACIJE..............................................................................................................21
5. ZAKLJUČAK...................................................................................................................................24
6. LITERATURA..................................................................................................................................25
1. UVOD

Tema seminarskog rada je projektni zadatak pod nazivom „E-evidencije“. Projekat


zahtijeva iskustvo iz predmeta „Viši programski jezici i RAD alati” i „Baze podataka“.
Projekat je ostvaren pomoću programskog jezika Visual Basic i sistema za menadžment
relacionih baza podataka “Microsoft SQL Server“. U ovom dijelu možemo da vidimo kako
izgleda završni dio zadatka.
2. SQL – Baza podataka

2.1. Kreiranje baze podataka

Da bi se kreirala baza podataka u SQL server potrebno je prethodno instalirati neki od


SQL paketa. U mom slučaju to je bio paket Microsoft SQL server 2014, koji je besplatno
dostupan na internetu. Unutar paketa Microsoft SQL server 2014 nalazi se program SQL
Server 2014 Management Studio, koji omogućava kreiranje baze podataka, te dalje
modelovanje baze i povezivanje baze sa drugim programima, kao što su Visual Studio 2019 i
ostali.
Nakon odgovarajuće instalacije, verifikacije te povezivanja operativnog sistema ili SQL
servera, može se početi sa kreiranjem baze.U programu Microsoft SQL Server Management
Studio, na lijevoj strain nalazi se prozor Object Explorer, koji prikazuje konekcije server i
sadrži foldere Database, Security… Kreiranje baze se vrši desnim klikom na folder Database,
gdje se otvara mini meni, u kojem se bira New Database.

Klikom na opciju New Database, otvara se prozor u kojem se upisuje ime baze
podataka, veličina, tip podataka i ostalo. Nakon postavke osnovnih podešavanja baze, klikom
na dugme OK kreira se baza.
Kreiranjem baze stvaraju se opcije za kreiranje baznih dijagrama, tabela, bezbjedosna
podešavanja i druge… Desnim klikom na folder Tables otvara nam se prozor opcija u kojem
se nalazi i opcija Table , pomoću koje se kreira tabela u bazi podataka.

Stvaranjem nove tabele otvaraju se mogućnosti za kreiranje kolona, koje će data


tabela da sadrži. Koloni se treba dodijeliti naziv, tip podatka, i mogućnosti da li može da bude
prazna ili ne.
U ovom slučaju tabele KIF i KUF nisu povezane jedna sa drugom, pa ne koristimo
primarne ključeve za povezivanje bitnih podataka.
2.2. SQL

SQL (eng. Structured Query Language) je strukturisani jezik upita koji se koristi kao
kompjuterski jezik kojim se uspostavlja komunikacija sa bazom podataka. Prostije rečeno,
SQL je programski jezik namijenjen za rad sa bazama podataka. Koristi se za kreiranje,
izmjenu i pretraživanje konkretnih podataka , koji su obično organizovani u vidu tabela.
Svaka tabela sadrži svoje podatke i svrha SQL-a je da pronađe i izmjeni informacije na koje
korisnik želi. Zove se još i "sequel".

Postojanje baze podataka omogućava korisniku pretraživanje i brz pregled podataka


u njoj. Program koji omogućava kontrolu nad samom bazom naziva se DBMS (Database
Management System), što u prevodu znači sistem za upravljanje bazom podataka. Za
pretragu baze koristimo SQL jezik kojim “pitamo” nešto bazu, taj SQL upit obrađuje DBMS
koja nam onda kao odgovor vraća ispis sa odgovorom na naš upit.

SQL ne služi samo za pisanje upita. SQL posjeduje i funkcije koje omogućavaju
korisniku da definiše strukturu podataka koji se koriste u bazi kao i njihovu međusobnu vezu
sa drugim podacima u bazi. Korisnicima je omogućeno dodavanje, brisanje iz baze i
ažuriranje postojećih podataka unutar baze. SQL takođe zaštitu podataka unutar baze od
strane neovlaštenih pristupa i onemogućavanje izvršavanja upita za određene korisnike baze
koji tim podacima ne mogu pristupati. Pristup jednoj bazi može biti omogućen i većem broju
korisnika, a jedan od zadataka SQL-a je i koordinisanje dijeljenim podacima tako da se
korisnici međusobno ne ometaju.
2.3. Naredbe SQL-a

SELECT kolona FROM baza;


Ova funkcija služi za ispisivanje podataka iz baze. Nakon riječi select navodi se jedna
ili više kolona koje želimo ispisati. Za ispisivanje svih kolona iz tabele, nakon riječi select
upisuje se *. Poslije riječi FROM navodimo iz koje baze uzimamo podatke.

SELECT kolona FROM baza WHERE uslov;


U kombinaciji sa naredbom WHERE mogu se odabrane kolone iz navedene baze
izdvojiti, tj. one kolone koje zadovoljavaju uslov postavljanjem uslova nakon riječi WHERE.
Pored ove dopune može se koristiti ORDER BY.
Funkcija COUNT (prebrojavanje) omogućava da prebrojite koliko će redova imati
rezultat upita, a da pri tome se ne prikaže rezultat. COUNT funkcija je vrlo korisna kada se
radi sa velikim tabelama ili se očekuje rezultat sa mnogo redova.
3. APLIKACIJA

3.1. MICROSOFT VISUAL STUDIO

Microsoft Visual Studio jest integrirano razvojno okruženje (IDE) koga pravi Microsoft.
Koristi se za razvoj računarskih programa za Windows, veb-stranica, aplikacija i usluga.
Koristi Microsoftove platforme za razvoj poput aplikativnih programskih interfejsa (API)
za Windows, Windows Forms, Windows Presentation Foundation, Windows Store i
Microsoft Silverlight. Može proizvesti nativni kôd i upravljani kôd (eng. managed code).

Visual Studio sadrži uređivač izvornog kôda koji podržava IntelliSense (komponenta
koja predlaže ostatak kôda) kao i refaktoriranje kôda. Integrirani program za otklanjanje
grešaka (debugger) radi na nivou izvornog i mašinskog koda. Program također sadrži
alate poput dizajnera oblika koji se koristi za pravljenje aplikacija s grafičkom korisničkim
interfejsom, veb-dizajnera, dizajnera klasa i dizajnera shema baza podataka. Prihvata
proširenja koja poboljšavaju funkcionalost na skoro svakom nivou dodajući podršku
sistema za upravljanje izvornim kôdom (poput softvera subversion) i dodajući nove
nizove alata poput tekstualnih uređivača i vizualnih dizajnera za jezik određenih domena
ili za druge dijelove procesa razvoja softvera (poput klijenta Team Explorer).

Visual Studio podržava različite programske jezike i dozvoljava uređivaču kôda i


debuggeru da podržava (u različitoj mjeri) gotovo bilo koji programski jezik, pod uvjetom
da usluga za taj jezik postoji. Ugrađeni jezici su C, C++ i C++/CLI (preko Visual C++),
VB.NET (preko Visual Basic .NET)-a, C# (preko Visual C#) i F# (počevši sa programom
Visual Studio 2010). Podrška za ostale programske jezike poput M-a, Pythona, i Rubyja
kao i ostalih dostupna je instalacijom jezičkih servisa koji se mogu zasebno instalirati.
Također podržava XML/XSLT, HTML/XHTML, JavaScript i CSS.

Microsoft besplatno pruža izdanja "Express" programa Visual Studio. Komercijalna


izdanja programa Visual Studio, kao i određena prethodna izdanja, studentima su
dostupna preko Microsoftovog programa DreamSpark.
3.2. APLIKACIJA

Porjekat započinjemo otvaranjem programa Microsoft Visual Studio 2019 I biramo opciju Create
New Project

Dobijamo prozor gdje možemo da biramo kakav projekat želimo. U našem slučaju koristimo
Windows Forms App u programskom jeziku Visual Basic.
U sledećem dijelu dobijamo formu u koju možemo da dodamo alate iz toolboxa koji se nalazi
na lijevoj strain ekrana. Na sledećoj slici možemo vidjet alate kao što su Button, TextBox,
ComboBox i Label.

Dvoklikom na Button otvara se kodni dio aplikacije, koja se odnosi na projekat. U


kodnom dijelu se programiraju alati koji su postavljeni u prethodno opisanoj formi.
Međutim da bi ova aplikacija radila potrebno je izvršiti i povezivanje sa bazom podataka.
Povezivanje na bazu se vrši u meniju Data Source gdje možemo da selektujemo opciju
Add New Data Source

Nakon klika na opciju Add New Data Source dobijamo prozor u kom biramo opciju Database.

Sledeća opcija nam daje mogućnost da izaberemo način povezivanja na bazu gdje ćemo da
se konektujemo pomoću unosa imena servera i windows autentifikacije.
Nakon spajanja sa serverom i odgovarajućom bazom podataka, potrebno je iskodirati
komande za "dovođenje" u aplikaciju, da bi postupci, koje bi vršili u aplikaciji, mogli
uticati i na bazu podataka.

Za konekciju baze i Visual Studio programa potrebno je uključiti biblioteku


System.Data.SqlClient koja stvara novu konekciju SqlConnection, gdje se navodi ime servera,
baze i sigurnost.

U sledećem dijelu koda deklarisana je naredba "radi" kao nova SqlCommand koja
prima neki upit-query i informacije, i definisana je sa connection, kako bi se navedeni query
tj. upit izvršio nad definisanom konektovanom bazom. Otvori se konekcija, izvrši se naredba i
nakon toga se konekcija zatvara.

Nakon toga dolazimo do dijela gdje želimo da damo funkcionalnost našim Button-
ima. Dugme Dodaj fakturu otvara novu formu koja ima novi dizajn i zavisi od opcije u
ComboBoxu.

Obe forme sadrže dugme Unesi koje ima sledeći kod


U VALUES su unešeni TextBox-ovi koji odgovaraju svakoj od navedenih vrijednosti.
Dodati su navodnici i ampersendi, da bi se pomenuti string očitao kao odgovarajući podatak.
Ako je dugme uspješno unijelo podatke, ispisuje se poruka Uspjesno ste unijeli fakturu!.

Sledeće dugme na Form1 je Obriši fakturu koje nas takođe zavisno od izbora vodi na
novu formu brišemo fakturu tako što unesemo ID fakture.

Kod dugmeta Obrisi izgleda ovako:

Ispis baze podataka nas takođe vodi na novu formu gdje dobijamo DataGridView ispunjen
vrstom formi koje želimo
Kod izgleda ovako za KUF

A ovako za KIF
Poslednje i najbitnije dugme jeste dugme koje generiše CSV fajl koji se šalje na websajt
poreske uprave. I ovako izgleda kod za generisanje fajla.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


Dim PDV As String
Dim Period As String
Dim num As Integer = 1
Dim numString As String = num.ToString("00")
Dim vrijeme As String = DateTime.Now.ToString("yyyy/MM/dd,HH:mm:ss")
vrijeme = vrijeme.Replace(".", "-")
Label1.Text = vrijeme
Dim count As Integer = 1
Dim thirdPart As String = ""
Dim nazivfajla As String
Dim numofrows As Integer

If PDVBroj.Text.Length = 12 And PoreskiPeriod.Text.Length = 4 Then


If ComboBox1.Text = "Nabavke" Then
PDV = PDVBroj.Text
Period = PoreskiPeriod.Text
Dim thecsvfile As String = "1," & PDV & "," & Period & "," & "1," &
numString & "," & vrijeme & ","
Form8.Show()
For Each row As DataGridViewRow In Form8.DataGridView1.Rows
thecsvfile = thecsvfile & vbCr & vbLf
For Each cell As DataGridViewCell In row.Cells
If count = 21 Then
Continue For
End If
thecsvfile = thecsvfile &
cell.FormattedValue.ToString.Replace(",", ".") & ","
count = count + 1

Next
countline = countline + 1
count = 1
thecsvfile = thecsvfile.TrimEnd(",")

If thecsvfile.Length > 4900000 Then


Form9.Show()
countlineNew = countline
nazivfajla = "" & PDV & "_" & Period & "_1_" & numString &
".csv"
For Each row1 As DataGridViewRow In Form9.DataGridView1.Rows
For Each cell1 As DataGridViewCell In row1.Cells
thirdPart = thirdPart &
cell1.FormattedValue.ToString.Replace(",", ".") & ","
Next
Next
thirdPart = thirdPart.Replace(",,,,,,,,,", "")

numofrows = countline - countlineNew - 1


thecsvfile = thecsvfile & "3," & thirdPart &
numofrows.ToString

My.Computer.FileSystem.WriteAllText("" & nazivfajla & "",


thecsvfile, False)
Form9.Close()
num = num + 1
numString = num.ToString("00")

thecsvfile = "1," & PDV & "," & Period & "," & "1," &
numString & "," & vrijeme & ","
End If

Next
Form8.Close()
thecsvfile = thecsvfile.Replace(",,,,,,,,,,,,,,,,,,,,", "")
nazivfajla = "" & PDV & "_" & Period & "_1_" & numString & ".csv"
Form9.Show()
For Each row1 As DataGridViewRow In Form9.DataGridView1.Rows
For Each cell1 As DataGridViewCell In row1.Cells
thirdPart = thirdPart &
cell1.FormattedValue.ToString.Replace(",", ".") & ","
Next
Next
thirdPart = thirdPart.Replace(",,,,,,,,,", "")

numofrows = countline - countlineNew - 1


thecsvfile = thecsvfile & "3," & thirdPart & numofrows.ToString

My.Computer.FileSystem.WriteAllText("" & nazivfajla & "", thecsvfile,


False)
Form9.Close()
MsgBox("Uspjesno generisan fajl: " & nazivfajla & "")

End If
If ComboBox1.Text = "Isporuke" Then
PDV = PDVBroj.Text
Period = PoreskiPeriod.Text
Dim thecsvfile As String = "1," & PDV & "," & Period & "," & "2," &
numString & "," & vrijeme & ","
Form11.Show()
For Each row As DataGridViewRow In Form11.DataGridView1.Rows
thecsvfile = thecsvfile & vbCr & vbLf
For Each cell As DataGridViewCell In row.Cells
If count = 22 Then
Continue For
End If
thecsvfile = thecsvfile &
cell.FormattedValue.ToString.Replace(",", ".") & ","
count = count + 1

Next
countline = countline + 1
count = 1
thecsvfile = thecsvfile.TrimEnd(",")

If thecsvfile.Length > 4900000 Then


Form11.Show()
countlineNew = countline
nazivfajla = "" & PDV & "_" & Period & "_1_" & numString &
".csv"
For Each row1 As DataGridViewRow In Form11.DataGridView1.Rows
For Each cell1 As DataGridViewCell In row1.Cells
thirdPart = thirdPart &
cell1.FormattedValue.ToString.Replace(",", ".") & ","
Next
Next
thirdPart = thirdPart.Replace(",,,,,,,,,,,", "")

numofrows = countline - countlineNew - 1


thecsvfile = thecsvfile & "3," & thirdPart &
numofrows.ToString

My.Computer.FileSystem.WriteAllText("" & nazivfajla & "",


thecsvfile, False)
Form11.Close()
num = num + 1
numString = num.ToString("00")

thecsvfile = "1," & PDV & "," & Period & "," & "1," &
numString & "," & vrijeme & ","
End If

Next
Form11.Close()
thecsvfile = thecsvfile.Replace(",,,,,,,,,,,,,,,,,,,,,,", "")
nazivfajla = "" & PDV & "_" & Period & "_2_" & numString & ".csv"
Form10.Show()
For Each row1 As DataGridViewRow In Form10.DataGridView1.Rows
For Each cell1 As DataGridViewCell In row1.Cells
thirdPart = thirdPart &
cell1.FormattedValue.ToString.Replace(",", ".") & ","
Next
Next
thirdPart = thirdPart.Replace(",,,,,,,,,,,", "")

numofrows = countline - countlineNew - 1


thecsvfile = thecsvfile & "3," & thirdPart & numofrows.ToString

My.Computer.FileSystem.WriteAllText("" & nazivfajla & "", thecsvfile,


False)
Form10.Close()
MsgBox("Uspjesno generisan fajl: " & nazivfajla & "")
End If
End If
If PDVBroj.Text.Length < 12 Then
MsgBox("PDV Broj mora da ima 12 karaktera", 0, "Error")

End If
If PoreskiPeriod.Text.Length < 4 Then
MsgBox("Poreski period se dostavlja u YYMM formatu", 0, "Error")

End If
If ComboBox1.Text = "" Then
MsgBox("Izaberite tip datoteke", 0, "Error")
End If

End Sub
4. PRIKAZ RADA APLIKACIJE

Kada se aplikacija pokrene početni ekran izgleda kao na sledećoj slici.

Klikom na dugme Ispisi fakture otara se nova forma koja nam ispisuje tabelu KIF ili KUF u
zavisnosti od selektovanog tipa datoteke.

Sa selektovanom opcijom dodaj fakturu otvara se nova forma gdje možemo da unesemo sve
potrebene podatke za fakturu.
Kada pravilno popunimo fakturu i idemo na dugme Unesi ako je sve uredu dobijamo sledeći
MsgBox

Klikom na obrisi fakturu dobijamo prozor u koji možemo da unesemo ID fakture koju želimo
da obrišemo.
Nakon klika na dugme obriši ako je sve uredu dobijamo sledeći MsgBox

Za dugme Gegeneriši CSV fajl unosimo PDV Broj obeznika koji podnosi datoteku u
odgovarajući textbox i Poreski period za koji se podnosi datoteka.
Ako je sve uredu dobijamo sledeći MsgBox.

Taj CSV fajl izgleda ovako.


5. ZAKLJUČAK

Kombinovanjem znanja iz programskog jezika Visual Basic i SQL Baza podataka dobija se
aplikacija za sistem E-evidencije. Cilj aplikacije je da generiše jedan ili više csv fajl zavisnosti
od količine faktura i veličine svakog pojedinačnog fajla. Možemo da kažemo da je cilj
uspješno ispunjen.
Dodatnim radom na nekim sitnicama vjerujem da bi se aplikacija mogla koristit za
jednostavno generisanje svih fajlova koji se šalju na websajt porezne uprave BiH.
6. LITERATURA

https://bs.wikipedia.org/wiki/Microsoft_Visual_Studio

https://bs.wikipedia.org/wiki/SQL

https://stackoverflow.com/

You might also like