Quest Labels – Creation and Configuration
Quest can print case labels and address labels. The attached documentation covers the requirements and steps to create, load and print labels in Quest.
REQUIREMENTS:
Printing labels in Quest requires the following:
- Label printer
- Zebra XML-enabled printer. The GK420t printer was the first model used by Quest.
- The printer must be network attached so Quest can FTP to the printer via
- Locally attached to the same network as Quest or,
- If connecting over the internet, then Quest must have an IP address and Port which is allowed through the client’s firewall or,
- If connecting over the internet, install a webservice provided by GAW in the form of a WAR file on a local computer.
- Label designs
- XML enabled label designs
- Label formats/templates must be loaded/stored onto the label printer(s).
- Configure Quest – Generic validation tables.
- Labels
- Label formats
- Label printers
DESIGNING LABELS
Designing labels can be done with free software from Zebra. We first used a program called ZebraDesigner for XML, which can still be used, but the current program is ZebraDesigner for Developers 3. It can be downloaded at
https://www.zebra.com/us/en/support-downloads/printer-software/zebra-designer-3-developer.html
Labels are designed with hard coded text and fields that will later be populated with Quest case data. The fields that will be populated by Quest must be defined with field names that match the available fields specified below in the ”Label Fields” section. The available fields are case related fields and address related fields.
This is an example of a case label:
To create a field in the label that will be populated by Quest, first create a variable with a name that matches one of the fields available in Quest. Variables can be defined by pressing “+ Add new variable” in the list of variables. For example create a variable named “cause” for Quest cause number. Next click “Text” or “Text box” to draw the field on the label. Then click on the label object just drawn and connect it to the variable “cause”. This is done by using the “Source” tab of the “Properties” window for the text object.
Hint: When creating a new label, start with an existing label and use “save as” to create a new copy. This way you will you’ll start out with all the variables already defined in the previous label.
LABEL FIELDS:
The following are the field names that will be populated for the case label. If case.names.showAll is true or roles are configured, <cnt> is appended to the appropriate field names where <cnt> is 1,2,3, etc.
Field name (case fields) |
Description |
caseNameRole<cnt> |
Role of person in the case |
caseNameLFM<cnt> |
Last, First Middle |
caseNameFML<cnt> |
First Middle Last |
caseNameFileNbr<cnt> |
File number |
casemated<cnt> |
Date of birth |
caseType |
Case type code |
caseTypeLongDesc |
Case type long description |
cause |
Formatted cause number |
causeBar |
Cause number (not formatted) |
courtCode |
Assigned/home court code |
courtLongDesc |
Assigned/home court long description |
courtOfficialHighestCode |
Official court code of Assigned/home court |
courtOfficialHighestLongDesc |
Official court long description of Assigned/home court |
openDate |
Start date of first case name |
fileDate |
Filed date of the lead charge |
leadCharge |
Lead charge description |
openCause<cnt> |
Formatted cause numbers of all other open cases for the first case name (case.openCases option must be “y”) |
otherID<cnt> |
Other id of the configured other identifier types if not tied to a case or is tied to the current case |
Field name (address fields) |
Description |
addressName |
Name of person or entity for the address |
addressLine<cnt> |
Address lines where <cnt> is 1,2,3 |
CREATING THE LABEL FORMAT/TEMPLATE
After designing the label, use the label software to generate an XML-Enabled ZPL format (template) which will be stored in the Quest Label formats table. This format file will later be sent and stored on the label printer. The process to generate the file changes from version to version of the client label software. In ZebraDesigner for Developers, click the “Store” icon in the tool bar.
Select the following:
- Operation=Store to printer
- Recall stream format: XML
- Store fonts: No
- Destination: Local disk
- Template name on printer: 8 character name with no spaces. Use the same name when creating the entry in Quest Label Formats table.
- Printer memory: Internal Flash
Click “Browse” and select a file location where you want to store copies of the ZPL formats. The file will be created with a .prn file extension.
The format files are often used by more than one label, so name the label according to the type and size of the label. For example, “fol42” could be the name for the “folder” label that is a 4X2 label. Press the “Save” button after entering the file name.
Next press the “Store to printer” button which will create the label format file. Open the file just created with Notepad. If successful, you should see the field names in the file prefixed by ^FD
STORE THE LABEL FORMAT IN QUEST
After generating the label format and generating the .prn file, open the file in Notepad and copy the contents to the clipboard. Create a new entry in the Quest Label formats table and paste the contents of the .prn file into the notes of the Quest table entry.
Menu-Tables-Generic Validation Tables. Enter “label” in the “List tables containing” field and press Submit to filter the list.
Select the Label format files table and click “Add a new entry”. Enter the same name used when creating the .prn file (without the .prn suffix). Enter the description and paste the contents of the .prn file into the Notes field and press Update to save the new table entry.
LABEL CONFIGURATION OPTIONS:
Defined in the “LABELS” table of generic validation tables.
Configuration option |
Description |
labelFormat=<labelformats> |
Valid entry in the LABELFORMATS table of the generic validation tables. The LABELFORMATS table entry contains the Zebra ZPL code which is the label design/template. This ZPL code is generated using the Zebra label designer program. |
loadPgm=<program name> |
Optional. Custom load program to load the variables/data for the current label. The program must implement the GAWLabel interface. For an example, see equest.rules.Indiana MarionCoPD. The default load routine will make the case or address fields listed above available. |
trace=<y/n> |
If yes, the xml that would have been sent to the printer is displayed on the Print label screen for debugging purposes. |
case.names.showAll=<y/n> |
Includes all case names for the case and <cnt> will be appended to appropriate field label names (see field names in table above). If not true AND no roles are configured, only the first case name is included and <cnt> will not be appended. |
case.names.role.<n>=<personRole> |
Filters the names included by person role. |
case.names.<caseType>.role.<n>=<personRole> |
Overrides the case.names.role option for the case type specified. |
case.names.prefix=<name prefix> |
Prefix included case names with the specified prefix |
oneNamePerLabel=<y/n> |
Print one name per label when multiple case names are included. |
oneNamePerLabel.<caseType>=<y/n> |
Overrides the oneNamePerLabel option for the case type specified. |
namesPerLabel=<cnt> |
Specifies the number of case names to include on each label when multiple names are printed per label. The default is 3. |
case.openCases=<y/n> |
If “y”, the openCause<cnt> label fields are populated. |
case.otherID.<n>=<identifier type(otherIDs)> |
Identifier types of Other IDs desired. otherID<cnt> label fields will be populated for OtherIDs that match the specified type and either match current case or are NOT tied to a case. |
fieldName.<n>=<fieldname> fieldValue.<n>=<field value> |
These configured field names and values will be populated and available for use in the label. |
LABEL PRINTERS:
Each printer must be defined in the Quest Label Printers table.
Configuration option |
Description |
port=<port number> |
Optional. ftp port if other than default |
ipaddr=<ip address> |
IP address of the label printer |
passiveMode=<y/n> |
Optional. If yes, this method causes a PASV (or EPSV) command to be issued to the server before the opening of every data connection, telling the server to open a data port to which the client will connect to conduct data transfers. |
useGAWCommandServer=<y/n> |
Optional. If yes, the ftp command is passed via a webservice call to the GAWCommandServer on a remote server. Further configuration is required to use the remote command server. |
TRACING THE XML SENT TO PRINT LABELS:
To debug and/or verify the XML sent to the printer for any given label, use the “trace=<y/n>” option in the label definition. When trace=y option is set, the XML is displayed on the Print label screen instead of sending it to the printer.