Barcode Generator
Designs a label (its size, text lines, price line and barcode) and prints a sheet of them through the browser’s own print dialog, from rows you type or import from a CSV. It reads no items from inventory, writes nothing back and posts nothing. Label templates are saved to your own login, not to the tenant, so a colleague does not see the ones you designed, and labels print at the wrong size unless the print dialog is at 100% scale on the right paper.
Your job, and the screen for it
| The job | Screen or tab | Read |
|---|---|---|
| Print a sheet of labels — set the print dialog to 100% scale on the right paper | Print Barcode tab: rows, Barcode Template, Generate, Print | Screens and menus; Troubleshooting |
| Design a label template — not on Barcode Settings, which is a mock that saves nothing | Barcode Designer tab; adding (+) is the only explicit save, and a name already in use is overwritten | Fields |
| Load rows from a CSV — Import appends, and a comma in an item name shifts the columns | Print Barcode tab, Download Template and Import | Fields |
| Leave a row out of the print run — Delete Selected does not stop it printing | Print Barcode grid, set the row’s qty to 0 | Fields |
| Label items that have no retail barcode | Print Barcode grid, leave the barcode column blank so the item code is encoded | Fields |
| Get ready — nothing to set up but a template of your own, since templates are per login | Barcode Designer tab | Before you can use it |
Overview
Barcode Generator designs a label — its size, its lines of text, its price line and its barcode — and prints a sheet of them. You type or paste the rows you want (item code, item name, barcode value, price, quantity), pick a saved label template, generate, and print through the browser’s own print dialog.
It is a standalone printing tool. It does not read items from inventory, does not write anything back, and posts nothing. Everything it needs is either typed into the grid or imported from a CSV.
Where it fits
| Upstream | This applet | Downstream |
|---|---|---|
| Item codes, names, barcode values and prices — typed in, or pasted from a CSV you exported from Item Maintenance or Pricebook | The label grid and the label designer | A printed sheet, through the browser |
| — | Label templates stored in your user settings | Reused on the Print Barcode tab |
Screens and menus
One menu item, Barcode Generator (route barcode), with three tabs:
| Tab | What it does |
|---|---|
| Print Barcode | The working screen. A grid with columns item_code, item_name, barcode, price, qty — all editable in place — plus checkbox selection, Add Row, Delete Selected, a Barcode Template dropdown, Generate and Print. Two more buttons download a blank CSV template and import a CSV into the grid. |
| Barcode Designer | Where a template is built: label Width and Height in centimetres, and a list of lines. Each line has a Type (text, item code, item name, price or barcode), a Value, an Alignment, a Font Size, and — for barcode lines — a Format, Width, Height and Show Text. Add Line, Remove Line, and a Barcode Template dropdown with add and delete dialogs for naming and removing templates. There is no print button on this tab; print from Print Barcode. |
| Barcode Settings | Looks like a second designer and is not one: fixed sample content, nothing loaded or saved, and a Print button that does nothing (below) |
| Settings → Default Selection | Default Company only. The Personalization screen of the same name is not its twin — see Dead screens below. |
| Settings → Field Settings, Webhook, Feature Visibility, the permission screens, Release Notes, Applet Log | Routed; Field Settings does nothing (below), the rest are the shared screens. |
Settings → Application Settings is an empty screen with a SAVE button, and Personalization offers a per-user Default Selection and Sidebar; see Configuration for why none of them changes a label.
Barcode Settings is a mock. The tab renders a label designer and a label-settings panel over fixed sample content — lines reading 123456789012 and MYR 29.90, a CODE128 barcode, an 8 cm × 3 cm two-column label — and its print button does nothing. Nothing on that tab is loaded from, or saved to, anywhere. Design labels on the Barcode Designer tab instead.
Configuration
Before you can use it
Nothing. The applet reads no master data and calls no document endpoint. You need a saved label template before Generate produces anything, and that you create yourself on the Barcode Designer tab.
Applet settings
| Screen | What it holds | Verdict |
|---|---|---|
| Settings → Application Settings | Nothing. The screen shows only a SAVE button, and pressing it saves nothing. | Dead screen |
| Settings → Field Settings | The unbound eight-toggle stub — Unit Discount, SST/VAT/GST, WHT, Blanket Order, Segment, G/L Dimension, Profit Center, Project — none of them saved, and a SAVE button that does nothing. The labels belong to a sales-document screen. | Dead screen |
| Settings → Default Selection | Default Company — the only picker on the screen. The settings record also carries a default ledger and currency, but the screen offers no input for them. What it saves, nothing outside the settings screens reads. | Saved; no effect |
| Personalization → Default Selection | Not a twin: it offers Default Branch and Default Location, not Default Company, and it cannot save — the screen is opened with nothing bound to it, so the first pick throws in the browser and SAVE sends nothing. Nothing in the applet reads either key. | Dead screen |
The settings that do something are the label templates, and they are not on any Settings screen. Saving a template on the Barcode Designer tab stores it against the applet and the signed-in login — which is why templates are per user and per applet. Behind the save, the browser first looks up this login’s link to the applet and only then writes the template into it. When there is no link (the applet is not installed for that login), saving fails with “You do not have permission to do this” before anything reaches the server. When the link exists but the server refuses the lookup or the write, the cause is the login’s platform permission on that link — read to find it, update to save into it — and the fix is with whoever administers your BigLedger logins, not in this applet.
Each stored template holds the label width and height and the list of lines, each line carrying its type, value, alignment, font size and (for barcodes) format, width and height.
Who can change what
The applet checks no HIDE_* / SHOW_* keys. One placeholder permission, literally named code, may appear for it in the Client-Side Permission screen; nothing checks it, so treat this applet as having no client-side permissions.
Server-side there is nothing to guard beyond the applet’s own installation and the user-settings write described above: the applet reads and writes no business data.
Fields
Print Barcode grid
| Column | Meaning | Notes |
|---|---|---|
| (checkbox) | Row selection, with a select-all header | Feeds Delete Selected |
| item_code | Printed on the template’s Item Code lines | Also what the barcode encodes when the row’s barcode is empty |
| item_name | Printed on Item Name lines only | A template with no Item Name line never prints it |
| barcode | The value encoded in the barcode line | Empty: the item code is encoded instead. For an EAN13 or UPC line the value must be digits of that format’s length. A value that does not fit stops the barcode drawing at that label, so the barcodes on the labels after it are not drawn either (read, not run) — check the column before you Generate |
| price | Printed exactly as the grid holds it | No currency symbol, no rounding and no formatting are added. A new row starts at 1, so a row whose price you forgot prints 1. Put the currency in a Text line beside it |
| qty | How many copies of this label | New rows start at 1. Zero, blank or anything that is not a number prints no label for that row, silently |
CSV import. Download Template produces barcode_template.csv containing the single header line item_code,item_name,barcode,price,qty. Import appends the parsed file to whatever is already in the grid — it does not replace it, so importing the same file twice doubles the rows. The file is split on every comma with no quoting, so an item name containing a comma pushes the barcode, price and quantity one column to the right; take commas out of names before you import.
Delete Selected does not take rows out of the print run. It removes the ticked rows from the grid you are looking at, but Generate prints from the list the grid was loaded from, which still holds them — and the next Add Row or Import rebuilds the grid from that list, so the deleted rows come back (read, not run). Until you reload the applet, the dependable way to leave a row out is to set its qty to 0: a row with quantity 0 prints nothing. To start a clean sheet, reload the applet — the grid starts empty — and import the file again.
A use beyond shelf labels. Because a blank barcode column encodes the item code, the applet makes internal bin, shelf-edge or carton labels for items that have no retail barcode, with no barcode numbers to set up first. Keep one template per label stock (a template is the label size), and each colleague who prints keeps their own, since templates are per login.
Barcode Designer
| Field | Meaning | Notes |
|---|---|---|
| Barcode Template | The named template being edited | Adding (+) is the only explicit save: it stores the design on screen under the name you give, and a name already in use is overwritten. While a template is selected, editing a Value, a barcode setting or the line list saves the whole template at once; changing only the label size, a Type, an Alignment or a Font Size saves nothing until one of those happens, so a template switched away from straight after such a change loses it |
| Width (cm), Height (cm) | Physical label size | The preview tiles labels at this size across an A4 width (21 cm, 1 cm margins, 0.5 cm gap). The print window re-tiles them into cells at least 200 pixels wide, so narrow labels print fewer per row than the preview shows |
| Type | Text, Item Code, Item Name, Price or Barcode | Text prints the Value on every label. For the other four the grid row replaces the Value at generate time, so the Value you type there is only a sample for the preview |
| Font Size | Pixels, not points | New lines start at 12. On a barcode line it sizes the digits printed under the bars |
| Format | CODE128, EAN13, UPC or CODE39 | Barcode lines only; CODE128 when left empty. CODE128 takes plain letters, digits and punctuation; the other three accept narrower sets, so check the row values against the format you pick |
| Width, Height | Width of one bar and height of the bars, in pixels | Barcode lines only; 2 and 50 when left empty. Show Text prints the encoded value under the bars and is on unless you untick it |
Alignment (left, center or right) applies to the whole line.
Lifecycle and effects
No server document type, no signums, no journal, no stock movement, no queue. The only thing this applet persists is the label templates, and they go into the signed-in user’s applet settings, not into any business table.
Generating and printing. Generate reads the selected template, clones its line list once per grid row (expanding each row qty times), substitutes the row’s item code, name and price into the matching line types, and renders the barcode lines with JsBarcode into the preview area. Print takes the inner HTML of the preview area, writes it into a new browser window together with a CSS grid that tiles the labels, and opens the browser’s print dialog on it. There is no PDF generation and no server round-trip; what comes out depends on the printer and the paper the browser is given.
Related applets
- Inventory Item Maintenance — where item codes and barcode values are maintained. This applet does not read them; export or copy them into the grid.
- Pricebook — where the prices you print come from.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| The Barcode Template dropdown is empty | No template has been saved for this login. Templates are per user. | Create one on the Barcode Designer tab. |
| A colleague cannot see the template you designed | Templates are stored against the signed-in login’s applet link, not against the tenant. | Each user designs (or re-creates) their own. |
| Saving a template fails with “You do not have permission to do this” | The save first looks up this login’s link to the applet and stops when it finds none — the applet is not installed for that login. | Install the applet for that user. If the applet is installed and the save is still refused, the login lacks the platform permission to read or update its own applet link; ask whoever administers your logins. |
| Nothing appears when you press Generate | No template is selected, or the selected template has no lines. | Pick a template with at least one line. |
| Importing a CSV twice doubles the rows | Import appends to the grid rather than replacing it. | Set qty to 0 on the duplicate rows, or reload the applet and import once. Delete Selected is not a fix: deleted rows still print and return on the next Add Row or Import (see Fields). |
| Rows you deleted still print, or reappear | Delete Selected removes rows from the grid display only; Generate and the next Add Row / Import use the list underneath (read, not run). | Set qty to 0 on rows you do not want, or reload the applet for an empty grid. |
| Some barcodes are missing from the preview, from one label onwards | A barcode value that does not fit the line’s format (an EAN13 or UPC value of the wrong length or with letters) stops the drawing at that label (read, not run). | Correct the value, or switch that template’s barcode line to CODE128, then Generate again. |
| The Barcode Settings tab shows a label you never designed, and its Print does nothing | That tab is a mock over a hard-coded sample design; its print handler is empty. | Use Barcode Designer and the Print Barcode tab. |
| Settings → Application Settings has nothing on it | It genuinely has no controls; the SAVE button posts an empty object. | Nothing to configure there. |
| Setting Default Company changes nothing | The key is saved but read nowhere in the applet. | Ignore it. |
| Labels print at the wrong size | Layout is browser CSS plus whatever paper size and scaling the print dialog is set to; there is no server-side PDF. | Set the label Width and Height on the template, then set the browser print dialog to 100% scale and the right paper. |