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

                        //zapocni račun
                        odgovor = printer.ZapocniNoviRacun(_racun);
                        if (odgovor.VrstaOdgovora != VrsteOdgovora.OK )
                        {
                            //handliranje greške
                        }
                        //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);

                            odgovor = printer.DodajStavkuRacunaIPrintaj(_stavka);
                            if (odgovor.VrstaOdgovora != VrsteOdgovora.OK)
                            {
                                //handliranje greške
                            }

                        }

                        //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.ZavrsiRacun();
                        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

            'započinjanje novog računa
            Set odgovor = printer.ZapocniNoviRacun(racun)

            '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 i trenutno štampanje
                Set odgovor = printer.DodajStavkuRacunaIPrintaj(stavkaracuna)

                If odgovor.VrstaOdgovora = VrsteOdgovora_Greska Then
                    'handliranje greške
                End If

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

            'stampati kraj racuna
            Set odgovor = printer.ZavrsiRacun

            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