[This is preliminary documentation and is subject to change.]

PRIMJERI

CopyC#
TringFiskalniPrinter printer = new TringFiskalniPrinter();
            KasaOdgovor odgovor = new KasaOdgovor();
            StatusUredjaja status;

            //vrsta fiskalnog uređaja
            printer.VrstaUredjaja = VrsteFiskalnihUredjaja.TringTF1;

            //promijeni režim u emulator
            printer.PromjeniRezimRada(RezimRada.Emulator);

            //postavka ip adrese Tring.Fiscal.Server
            //localhost za slučaj lokalnog server
            //ip adresa ili mrežni naziv računala u slučaju da je server lociran u mreži
            printer.IPadresa("localhost");

            //testiranje dostupnosti Tring.Fiscal.Server
            odgovor = printer.TestirajTringFiscalServer();

            if (odgovor.VrstaOdgovora == VrsteOdgovora.OK)
            {
                //server dostupan
                //provjera statusa uredjaja
                status = printer.ProvjeriStatusUredjaja();
                if (status == StatusUredjaja.Normalan || status == StatusUredjaja.Test)
                {
                    //nastavak koda
                    OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\..\..\..\VB6\pos.mdb");
                    OleDbCommand command = new OleDbCommand("select * from KOMITENTI where JIB=1234567890123", con); //komitent na računu

                    OleDbDataReader dr;
                    try
                    {
                        con.Open();
                        dr = command.ExecuteReader();

                        Kupac kup = new Kupac();

                        while (dr.Read())
                        {

                            kup.IDbroj = dr.GetValue(0).ToString(); //samo brojevi ipak
                            kup.Naziv = dr.GetString(1);
                            kup.Adresa = dr.GetString(2);
                            kup.PostanskiBroj = int.Parse(dr.GetString(3));
                            kup.Grad = dr.GetString(4);
                        }
                        dr.Close();
                        //novi racun
                        Racun _racun = new Racun();
                        _racun.Kupac = kup;

                        //učitavanje stavki iz računa
                        command.CommandText = "SELECT RACUNI_STAVKE.BrojStavke, RACUNI_STAVKE.BrojRacuna, RACUNI_STAVKE.Artikal, RACUNI_STAVKE.Kolicina, RACUNI_STAVKE.Cijena, RACUNI_STAVKE.Rabat, ARTIKLI.Naziv, ARTIKLI.JM,  ARTIKLI.StopaPDV " +
                                            "FROM RACUNI_STAVKE INNER JOIN ARTIKLI ON RACUNI_STAVKE.Artikal = ARTIKLI.Sifra " +
                                            " where RACUNI_STAVKE.BrojRacuna=1"; //može ići i parametar
                        dr = command.ExecuteReader();

                        while (dr.Read())
                        {
                            RacunStavka _stavka = new RacunStavka();
                            //izmjena od CTP2
                            Artikal art = new Artikal();
                            art.Sifra = dr.GetValue(2).ToString();
                            art.Naziv = dr.GetString(6);
                            art.JM = dr.GetString(7);
                            art.Stopa = (VrstePoreskihStopa)dr.GetInt16(8);
                            art.Cijena = dr.GetDouble(4);
                            //_stavka.SifraArtikla = dr.GetValue(2).ToString(); //samo brojevi ipak
                            _stavka.Kolicina = (double) dr.GetValue(3);
                            //_stavka.Cijena = (double)dr.GetValue(4); izbačeno u CTP2, pošto se već nalazi u objektu Artikal
                            _stavka.Rabat = (double)dr.GetValue(5);

                            _racun.DodajStavkuRacuna(_stavka);

                        }

                        //unijeti način plaćanja
                        //kada je iznos 0 to znači kompletan iznos ide za tu vrstu plaćanja
                        //prema Zakonu, mora se omogućiti da jedan račun bude plaćen na više vrsta plaćanja
                        //npr. ako je iznos računa 110 KM, treba omogućiti da 100 bude plaćano Karticom a 10 u Gotovini
                        _racun.DodajVrstuPlacanja(VrstePlacanja.Virman, 0);

                        //dodati u printer
                        odgovor = printer.StampatiFiskalniRacun(_racun);
                        if (odgovor.VrstaOdgovora == VrsteOdgovora.OK)
                        {
                            Debug.WriteLine("OK");
                            for (int i = 0; i less odgovor.Odgovori.Count; i++)
                            {
                                if (odgovor.Odgovori[i].Naziv == "BrojFiskalnogRacuna")
                                {
                                    // 
                                }
                            }
                        }
                        dr.Close();
                        con.Close();


                    }
                    catch (Exception ex)
                    {

                        MessageBox.Show(ex.Message);
                    }
                }
            }
            else
            {
                //greška
            }
            printer = null;
            odgovor = null;
CopyVB 5,6
Dim printer As TringFiskalniPrinter
 Dim odgovor As KasaOdgovor
 Dim status As StatusUredjaja
 Dim racun As racun
 Dim stavkaracuna As racunstavka
 Dim kupac  As kupac

 Dim i As Integer

 Dim adoRacun As New ADODB.Recordset
 Dim adoRacunStavke As New ADODB.Recordset

 Dim con As New ADODB.Connection
 With con
         .Provider = "MSDataShape"
         .Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0"
         .Properties("Data Source") = Replace("D:\PROJEKTI\Tring.Fiscal\Sample\VB6\pos.mdb", vbNullChar, "")
         .Properties("User ID").Value = "Admin"
 End With

 Set printer = New TringFiskalniPrinter
 Set odgovor = New KasaOdgovor

 'vrsta fiskalnog uređaja
 printer.VrstaUredjaja = VrsteFiskalnihUredjaja_TringTF1

 'promijeni režim u emulator
 printer.PromjeniRezimRada (RezimRada_Emulator)

 'postavka ip adrese Tring.Fiscal.Server
 'localhost za slučaj lokalnog server
 'ip adresa ili mrežni naziv računala u slučaju da je server lociran u mreži
 printer.IPadresa ("localhost")

 'testiranje dostupnosti Tring.Fiscal.Server
 Set odgovor = printer.TestirajTringFiscalServer()

 If odgovor.VrstaOdgovora = VrsteOdgovora_OK Then
     'server dostupan
     status = printer.ProvjeriStatusUredjaja()
     'provjera statusa uredjaj
     If status = StatusUredjaja_Normalan Or status = StatusUredjaja_Test Then
         'nastavak koda
         'otvaranje konekcije
         Call con.Open
         Set adoRacun.ActiveConnection = con
         'zadavanje SQL naredbe
         adoRacun.Source = "SELECT KOMITENTI.JIB, KOMITENTI.NazivKomitenta, KOMITENTI.Adresa1, KOMITENTI.Adresa2, KOMITENTI.Adresa3, KOMITENTI.PDVbroj " + _
                         "FROM RACUNI INNER JOIN KOMITENTI ON RACUNI.Komitent = KOMITENTI.JIB " + _
                         "WHERE (((RACUNI.BrojRacuna)= 1));"  'možete koristiti parametar za broj računa


         Call adoRacun.Open
         Set kupac = New kupac
         With kupac
                 .IDbroj = adoRacun!JIB
                 .Naziv = adoRacun!NazivKomitenta
                 .Adresa = adoRacun!Adresa1
                 .PostanskiBroj = adoRacun!Adresa2
                 .Grad = adoRacun!Adresa3
         End With

         'novi racun
         Set racun = New racun
         'dodjeljivanje kupca. Ako ne postoji ostaviti nothing null
         Set racun.kupac = kupac

         'dodavanje stavki na račun
         Set adoRacunStavke.ActiveConnection = con
         adoRacunStavke.Source = "SELECT RACUNI_STAVKE.BrojStavke, RACUNI_STAVKE.BrojRacuna, RACUNI_STAVKE.Artikal, RACUNI_STAVKE.Kolicina, RACUNI_STAVKE.Cijena, RACUNI_STAVKE.Rabat, ARTIKLI.Naziv, ARTIKLI.JM,  ARTIKLI.StopaPDV " + _
                                         "FROM RACUNI_STAVKE INNER JOIN ARTIKLI ON RACUNI_STAVKE.Artikal = ARTIKLI.Sifra " + _
                                         " where RACUNI_STAVKE.BrojRacuna=1" 'može ići parametar
         adoRacunStavke.Open
         'učitavanje artikala iz recordseta u listu artikala
         For i = 0 To adoRacunStavke.RecordCount - 1
             'kreiranje novog artikla
             Set stavkaracuna = New RacunStavka
             Set art = New Artikal

             With art
                     .Sifra = adoRacunStavke!Artikal
                     .Naziv = adoRacunStavke!Naziv
                     .JM = adoRacunStavke!JM
                     .Stopa = CInt(adoRacunStavke!StopaPDV)
                     .Cijena = CDbl(adoRacunStavke!Cijena)
             End With
             With stavkaracuna
                         Set .Artikal = art
                         'izbačeno od CTP2
                         '.SifraArtikla = adoRacunStavke!Artikal
                         .Kolicina = CDbl(adoRacunStavke!Kolicina)
                         'izbačeno od CTP2
                         '.Cijena = CDbl(adoRacunStavke!Cijena)
                         .Rabat = CDbl(adoRacunStavke!Rabat)
             End With
             'dodavanje artikla u listu
             Call racun.DodajStavkuRacuna(stavkaracuna)

             adoRacunStavke.MoveNext
         Next i
         'zatvaranje konekcije
         adoRacun.Close
         adoRacunStavke.Close
         Call con.Close

         'stampati racun
         Set odgovor = printer.StampatiFiskalniRacun(racun)

         If odgovor.VrstaOdgovora = VrsteOdgovora_OK Then
             'račun uspješno odštampan na fiskalnom printeru
             For i = 0 To odgovor.BrojOdgovora - 1
                 If odgovor.OdgovorCom(i).Naziv = "BrojFiskalnogRacuna" Then
                     'insertovanje broja fiskalnog računa u bazu
                     'broj fiskalnog računa je obavezno prikazati na štampanoj A4 verziji računa
                 End If
             Next i
         End If
     End If
 Else
     'greška
     '....
 End If
 Set adoRacun = Nothing
 Set adoRacunStavke = Nothing
 Set con = Nothing
 Set printer = Nothing
 Set odgovor = Nothing