GS1-128, formerly known as UCC/EAN-128 Symbology, is a variant of the Code 128 Symbology.
The UCC EAN System was established by Uniform Code Council (UCC) in 1973.
In 1977, the European Article Numbering Association (EAN International) designed a compatible system for use in Europe.
The pattern of using FNC1 right after start character is reserved for GS1128.
According to the specification, a GS1128 symbol has the following characteristics:
Space is excluded from encodable charset.
The maximum data characters can be encoded is 48.
Including quiet zones, the maximum physical length is 165 mm (6.5 in.).
The minimum height of the symbol is 32 mm (1.25 in.).
The Human Readable Text of the data must be shown below the symbol. Start, stop, FNC1 character, and check digit are not shown.
Application Identifiers (AIs) define the interpretation of data.
GS1-128 (UCC/EAN-128) Symbology Structure
A Code-128 Start character (A, B, or C).
FNC1
Application Identifier (AI)
Data
Check Digit
Stop Character
GS1-128 (UCC/EAN-128) is flexible. It is used for the representation of Element Strings using EAN-UCC System Application Identifiers. It is not intended to be read on items passing through the Point-of-Sale.
The system provides a series of Application Identifiers (AIs) that define the interpretation of data.
This is a list of all GS1128 Application Identifiers (AI).
AI | Full Title | Data Title | Data Length |
---|---|---|---|
00 | SSCC ( Serial Shipping Container Code) | SSCC | 18 |
01 | Global Trade Item Number | GTIN | 18 |
02 | GTIN of Trade Items Contained in a logistic unit | Content | 14 |
10 | Batch or lot number | BATCH/LOT | variable, up to 20 alphanumeric |
11* | Production date (YYMMDD) | Prod Date | 6 |
12* | Due date (YYMMDD) | Due Date | 6 |
13* | Packaging date (YYMMDD) | Pack Date | 6 |
15* | Best before date (YYMMDD) | Best Before | 6 |
17* | Expiration date (YYMMDD) | Expiry | 6 |
20 | Product variant | VARIANT | 2 |
21 | Serial Number | Serial | variable, up to 20 alphanumeric |
22 | Secondary data for specific health industry products | QTY/DATE/BATCH | variable, up to 29 alphanumeric |
240 | Additional product identification assigned by the manufacturer | ADDITIONAL id | variable, up to 30 alphanumeric |
241 | Customer part number | Cust. Part No. | variable, up to 30 alphanumeric |
242 | Made-to-Order Variation Number | Cust. Part No. | variable, up to 6 alphanumeric |
250** | Secondary serial number | Secondary Serial | variable, up to 30 alphanumeric |
251** | Reference to source entity | REF. TO SOURCE | variable, up to 30 alphanumeric |
253 | Global Document Type Identifier | Doc. id | variable, 13 to 17 alphanumeric |
254 | GLN Extension Component | Doc. id | variable, up to 20 alphanumeric |
30 | Variable count | VAR. Count | variable, up to 8 |
310y | Product Net Weight in kg | 6 | |
311y | Product Length/1st Dimension, in meters | 6 | |
312y | Product Width/Diameter/2nd Dimension, in meters | 6 | |
313y | Product Depth/Thickness/Height/3rd Dimension, in meters | 6 | |
314y | Product Area, in square meters | 6 | |
315y | Product Net Volume, in liters | 6 | |
316y | Product Net Volume, in cubic meters | 6 | |
320y | Product Net Weight, in pounds | 6 | |
321y | Product Length/1st Dimension, in inches | 6 | |
322y | Product Length/1st Dimension, in feet | 6 | |
323y | Product Length/1st Dimension, in yards | 6 | |
324y | Product Width/Diameter/2nd Dimension, in inches | 6 | |
325y | Product Width/Diameter/2nd Dimension, in feet | 6 | |
326y | Product Width/Diameter/2nd Dimension, in yards | 6 | |
327y | Product Depth/Thickness/Height/3rd Dimension, in inches | 6 | |
328y | Product Depth/Thickness/Height/3rd Dimension, in feet | 6 | |
329y | Product Depth/Thickness/3rd Dimension, in yards | 6 | |
330y | Container Gross Weight (kg) | 6 | |
331y | Container Length/1st Dimension (Meters) | 6 | |
332y | Container Width/Diameter/2nd Dimension (Meters) | 6 | |
333y | Container Depth/Thickness/3rd Dimension (Meters) | 6 | |
334y | Container Area (Square Meters) | 6 | |
335y | Container Gross Volume (Liters) | 6 | |
336y | Container Gross Volume (Cubic Meters) | 6 | |
337n | Kilograms per square metre | KG PER m? | 6 |
340y | Container Gross Weight (Pounds) | 6 | |
341y | Container Length/1st Dimension, in inches | 6 | |
342y | Container Length/1st Dimension, in feet | 6 | |
343y | Container Length/1st Dimension in, in yards | 6 | |
344y | Container Width/Diameter/2nd Dimension, in inches | 6 | |
345y | Container Width/Diameter/2nd Dimension, in feet | 6 | |
346y | Container Width/Diameter/2nd Dimension, in yards | 6 | |
347y | Container Depth/Thickness/Height/3rd Dimension, in inches | 6 | |
348y | Container Depth/Thickness/Height/3rd Dimension, in feet | 6 | |
349y | Container Depth/Thickness/Height/3rd Dimension, in yards | 6 | |
350y | Product Area (Square Inches) | 6 | |
351y | Product Area (Square Feet) | 6 | |
352y | Product Area (Square Yards) | 6 | |
353y | Container Area (Square Inches) | 6 | |
354y | Container Area (Square Feet) | 6 | |
355y | Container Area (Square Yards) | 6 | |
356y | Net Weight (Troy Ounces) | 6 | |
357y | Net Weight/Volume (Ounces) | 6 | |
360y | Product Volume (Quarts) | 6 | |
361y | Product Volume (Gallons) | 6 | |
362y | Container Gross Volume (Quarts) | 6 | |
363y | Container Gross Volume (U.S. Gallons) | 6 | |
364y | Product Volume (Cubic Inches) | 6 | |
365y | Product Volume (Cubic Feet) | 6 | |
366y | Product Volume (Cubic Yards) | 6 | |
367y | Container Gross Volume (Cubic Inches) | 6 | |
368y | Container Gross Volume (Cubic Feet) | 6 | |
369y | Container Gross Volume (Cubic Yards) | 6 | |
37 | Count of trade items contained in a logistic unit | Count | variable, 1 to 8 |
390(n) | Amount payable-single monetary area | Amount | variable, up to 15 |
391(n) | Amount payable with ISO currency code | Amount | variable, 3 to 18 |
392(n) | Amount payable for a Variable Measure Trade Item single monetary unit | Price | variable, up to 15 |
393(n) | Amount payable for a Variable Measure Trade Item - with ISO currency code | Price | variable, 3 to 18 |
400 | Customer's purchase order number | Order Number | variable, 1 to 30 |
401 | Consignment number | Consignment | variable, up to 30 |
402 | Shipment Identification Number | Shipment No. | variable, up to 30 |
403 | Routing code | Route | variable, up to 30 |
410 | Ship to - deliver to EAN.UCC Global Location Number | Ship to LOC | 13 |
411 | Bill to - invoice to EAN.UCC Global Location Number | Bill To | 13 |
412 | Purchased from EAN.UCC Global Location Number | Purchase From | 13 |
413 | Ship for - deliver for - forward to EAN.UCC Global Location Number | SHIP FOR LOC | 13 |
414 | Identification of a physical location EAN.UCC Global Location Number | LOC No. | 13 |
415 | EAN.UCC Global Location Number of the invoicing party | Pay To | 13 |
420 | Ship to - deliver to postal code within a single postal authority | Ship To Post | variable, up to 20 |
421 | Ship to - deliver to postal code with Three-Digit ISO country code | Ship To Post | variable, 3 to 15 |
422 | Country of origin of a trade item | Origin | 3 |
423 | Country of initial processing | COUNTRY - INITIAL PROCESS | variable, 3 to 15 |
424 | Country of processing | COUNTRY - PROCESS | 3 |
425 | Country of disassembly | COUNTRY - DISASSEMBLY | 3 |
426 | Country covering full process chain | COUNTRY - FULL PROCESS | 3 |
7001 | NATO stock number | NSN | 13 |
7002 | UN/ECE meat carcasses and cuts classification | Meat Cut | variable, up to 30 |
7003 | expiration date and time | Expiration | 10 |
7004 | Active Potency | Active Potency | variable, up to 4 |
703(s)*** | Approval number of processor with ISO country code | PROCESSOR#s4 | variable, 3 to 30 |
8001 | Roll products - width, length, core diameter, direction, and splices | Dimensions | 14 |
8002 | Electronic serial identifier for cellular mobile telephones | variable, up to 20 | |
8003 | EAN.UCC Global Returnable Asset Identifier | GRAI | variable, 14 to 30 |
8004 | EAN.UCC Global Individual Asset Identifier | GIAI | variable, up to 30 |
8005 | Price per unit of measure | Price Per Unit | 6 |
8006 | Identification of the component of a trade item | GCTIN | 18 |
8007 | International Bank Account Number | IBAN | variable, up to 30 |
8008 | Date and time of production | Prod Time | variable, 8 to 12 |
8018 | EAN.UCC Global Service Relation Number | GSRN | variable, up to 18 |
8020 | Payment Slip Reference Number | REF No. | variable, up to 25 |
8100 | UCC/EAN-128 Coupon Extended Code - NSC + Offer Code | variable, up to 6 | |
8101 | UCC/EAN-128 Coupon Extended Code - NSC + Offer Code + end of offer code | variable, up to 10 | |
8102 | UCC/EAN-128 Coupon Extended Code - NSC | variable, up to 2 | |
90** | Information mutually agreed between trading partners (including FACT DIs) | Internal | variable, 1 to 30 alphanumeric |
91* | USPS Services | Internal | 2-digit service code, 9-digit customer id, 8-digit package id plus 1 Mod10 check digit |
92-99** | Company internal information | Internal | variable, 1 to 30 alphanumeric |
License | Single User | 10-User | Site | Corporate | Developer | Unlimited Developer |
---|---|---|---|---|---|---|
Price | USD129 | USD199 | USD499 | USD599 | USD699 | USD1799 |
GS1128 is designed upon Code128. Therefore, GS1128 barcode is encoded by Code128 barcode font.
1. Open your crystal report. Right click Formula Fields, choose "New..." from the context menu.
Type in "GS1128" in the Name textbox, then click "Use Editor".
2. From Functions List ==> Additional Functions ==> COM and .NET UFLs (u212com.dll) ==> Visual Basic UFLs, double click to choose "BCSLinearGS1128" function as shown below.
3. Then type in the database field as parameter for GS1128 formula. And click "Save" button to save GS1128 formula field.
Please notice that FNC1 will be added for you automatically when necessary. When preceded by a variable-lengthed Application Identifier, the DLL will place a FNC1 before the new Application Identifier.
When you need to encode multiple AIs in one GS1-128 bar code, please put parentheses before and after each Application Identifier (AI).
Therefore, AI (02) and (10) will be input as shown below
(02)12345678901234(10)12345678901234567890
The first FNC1 will be output as "[C1".
Other FNC1 will be output as GS (ASCII 29).
4. Drag and drop the GS1128 formula field in your crystal report design view. You will see some strange characters in your report. Don't worry! You have NOT applied GS1128 barcode font yet.
5. Right click GS1128 formula field and choose "Format Field" from context menu. Then choose "code128m" font typeface.
Click OK button. You will see GS1128 barcode in your crystal report.
1. Start Microsoft® Excel® first.
If you are using Excel 2000 or 2003, click menu ===> Tools ==> Macro ===> Security. Choose Low security level.
If you are using Excel 2007 / 2010 / 2013 / 2016 / 2019, click the Microsoft Office Button.
Then click Excel Options, choose Trust Center. In the Macro Settings category, under Macro Settings, choose "Enable all macros" as shown below.
2. Press ALT + F11 to open Microsoft® Visual Basic editor.
3. From Visual Basic editor, choose menu Tools ===> References. It will popup a dialog. Click Browse button and choose cruflbcs.dll from your working folder.
Usually it's under C:\Program File (x86)\CommonFiles\Barcodesoft\Fontutil folder.
Click the checkbox beside crUFLBcs 1.0 Type Library as shown below. Then click OK button.
4. Press Ctrl+M, it will popup a dialog, choose barcodesoft.bas under C:\Program File (x86)\CommonFiles\Barcodesoft\Fontutil folder. Then click "Open".
If you don't find barcodesoft.bas, please download it from gs1128.
5. Close Visual Basic editor and go back to your spreadsheet. Now, you can use the following macros to encode data: gs1128 . When you have lots of data to process, you can just copy and paste the macro to the whole column and all data will be encoded immediately.
=gs1128(xxx)
Please use cell reference to replace xxx in the formulas as shown below.
As we mentioned before, please put GS1128 Application Identifier (AI) between a pair of parentheses. When you have multiple GS1128 Application Identifiers, please remember to put each GS1128 Application Identifier (AI) between parentheses.
6. Right click Cell B1, choose Format Cell from context menu. Then click Font to apply one of the appropriate font typefaces to the cell, such as code128mHr.
You can also change font point size to change GS1128 barcode size.
However, Font style should be Regular and Underline option should be None.
1. Start Microsoft® Access® first.
If you are using Access 2000 or 2003, click menu ===> Tools ==> Macro ===> Security. Choose Low security level.
If you are using Access 2007 / 2010 / 2013 / 2016 / 2019, click the Microsoft Office Button.
Then click Access Options, choose Trust Center. In the Macro Settings category, under Macro Settings, choose "Enable all macros" as shown below.
2. Press ALT + F11 to open Microsoft® Visual Basic editor.
3. From Visual Basic editor, choose menu Tools ===> References. It will popup a dialog. Click Browse button and choose cruflbcs.dll from your working folder.
Usually it's under C:\Program File (x86)\CommonFiles\Barcodesoft\Fontutil folder.
Click the checkbox beside crUFLBcs 4.0 Type Library as shown below. Then click OK button.
4. Press Ctrl+M, it will popup a dialog, choose barcodesoft.bas under C:\Program File (x86)\CommonFiles\Barcodesoft\Fontutil folder. Then click "Open".
If you don't find barcodesoft.bas, please download it from GS1128.
5. Close Visual Basic and go back to your Access database. Now, create a report in Design view and type in one of the following macros in the field where you want to show GS1128 barcode before apply font typeface:
=GS1128([data.code])
Please notice that 'data' is the Table name, 'code' is the Field name.
6. Right click the field you want to display GS1128 barcode. Choose Properties from context menu. Apply one of the appropriate font typefaces to the field, such as GS1128m.