Cum putem genera un cod de bare in aplicatia noastra .net?
Dupa indelungi cautari la cum pot genera un cod de bare in reporting services nu am gasit o metoda open source, toate aceste librari fiind librarii fiind cu plata la preturi destul de mari incepand de la cateva sute de euro pana la cateva mii.
De aceea am decis sa scriu un tutorial cu o metoda total gratuita si foarte buna pentru a adauga intr-un raport un cod de bare.
Pentru acest proiect voi folosi un site ASP.Net dar aceasta metoda poate fi folosita pentru MVC dar si pentru reporting services. Pentru realizarea proiectul este recomandat sa folositi Visual Studio 2013, dar acesta poate realizat cu versiuni mai vechi ale aplicatiei.
Pasul 1: Se realizeaza un nou proiect web.
Pasul 2: Se adauga un nou item la acest proiect, acesta trebuie sa fie o pagina ASPX goala (Default.aspx).
Pasul 3: Se va adauga in pagina noua Default.aspx un Control ReportViewer folosind drag and drop din componentele toolbox.
Pasul 4: Daca se ruleaza acest proiect in stadiul in care se afla acum, acesta va genera eroarea “The Report Viewer Web Control requires a System.Web.UI.ScriptManager on the web form. ”
Pasul 5: Pentru a rezolva aceasta eroare se adauga din toolbox un control de tip Script Manager folosind drag and drop.
Pasul 6: Se adauga in proiect un raport rdlc.
Pasul 7: Se ataseaza acest nou raport la Report Viewer pentru a fi afisat default in pagina.
Daca este rulat site-ul va arata ca in imaginea de mai jos, controlul de vizualizare a raportului o sa afiseze o pagina goala deoarece raportul nou nu contine nimic. Acum ca proiectul afiseaza raportul fara nici o eroare trebuie adaugat doar codul de bare.
Pasul 8: Se adauga un nou item la proiect numit generic handler denumit “Image.ashx” care o sa afiseze o imagine cu codul de bare.
Pasul 9: Pentru a genera o imagine cu codul de bare o sa se adauge la proiect o librarie din NuGet Packages. Acest lucru se face prin selectarea proiectului din Solution Explorer si prin click dreapta pe acesta se alege Manage NuGet Packeges. La search se scrie barecode si o sa fie afisate numeroase librarii care pot genera coduri de bare. Pentru exemplu sa ales libraria ZXing.Net si se apasa install.
Pasul 10: Pentru a genera imaginea cu codul de bare, in Handler (“Image.ashx”) se scrie urmatoarea secventa de cod.
Aceasta secventa face ca atunci cand handler-ul primeste ca variabila GET “ID” un text sau un numar sa genereze o imagine cu codul de bare aferent inputului.
In acest exemplu am generat codul de bare pentru textul “www.totpe.ro” folosind URL-ul : http://numesite:numarport/Image.ashx?ID=coddebaretext.
Pasul 11: Se adauga imaginea cu codul de bare in raport, folosind un control de tip imagine care se adauga in raport si la care trebuie selectata ca si sursa External. Acest lucru este necesa. In inputul “Use this image” se adauga link-ul catre pagina care genereaza codul de bare iar dupa variabila GET ID se poate adauga o variabila din raport care de exemplu se poate aduce dintr-un dataset sau seta programatic.
Pe raport in designer o sa apara codul de bare generat:
Daca este rulat proiectul o sa afiseze o eroare “the enableexternalimages property has not been set for this report”.
Pasul 12: Pentru a corecta aceasta eroare trebuie setat din ReportViewer ->local Report proprietatea enableexternalimages sa aiba atribuita valoarea true.
Acum daca este rulat proiectul o sa fie afisat raportul care contine codul de bare.
Daca ati ajuns deja la acest pas veti avea un barcode generator foarte usor de realizat si cel mai important ca este total gratis aceasta metoda. La acest tutorial este atasat si proiectul din demonstratie.