designing text layouts
TRANSCRIPT
Designing Text Layouts Difficulty Level: Intermediate
By: Ian Strahler / Matt Messinger
2
• E-Commerce: Extreme Topics (Adv) • Salesware Basics 8: Operator Setup & Security (Beg) • Reservations: Confirmations (Adv) • Retail: Basics (Beg) • Private Instruction: Advanced Topics(Adv)
Concurrent Sessions
3
• Design and customize text layouts • Learn basic printer language • Assigning layouts to items / salespoints • How to print to file • Basic troubleshooting skills
Class Objectives
4
• Text Merge Layouts
– Fast / Flexible – Used for Receipts, tickets and vouchers – Layout is stored along with the item – Receipts can be different per salespoint or salespoint
group
• Shared Text Merge Layouts
– Fast / Flexible – Used for tickets and vouchers – Can be shared among items
Types of Text Layouts
5
• Tickets, Vouchers and Rental Contracts
– Printing tab of the item setup in SysManager
• Sales Summary, Receipts, Invoices, CC, Saved Sales, Remote and Z-Tape Reports
– In SysManager -> Preferences -> Miscellaneous section
• Salespoint Specific Layouts
– Using Remote Layouts – Creating a new layouts folder
Layouts and their specific applications
6
• All fields in the local printing table
• All fields in the Guests, alladres, gst_pass, access, alltrans, transact, tr_save, accounts, invoices, operator and sale_hdr tables depending on what type of layout you are editing
• In most cases when referencing a table in a layout you should write the expression using both the table as well as the field name ex. local_table->field_name = SALES_PT->salespoint which grabs the name of the salespoint from the SALES_PT table
Commonly Used Tables and Fields
7
• Examples: Saved Sales and Regular Receipts, CC Receipts, Remote Receipts, Sales Summaries and Invoices
• Basic text, no positioning
• Prints in the order that is seen in the layout
• Layouts can either be “short” or “long”. Short layouts print to a 40–Column printer such as a receipt printer and long layouts print to standard 8.5X11 paper.
• The width of the layout is determined by the number at the end of each line.
System Layouts
8
<|CENTER(defaults->C_name,40)|> <|CENTER(defaults->address,40)|> <|CENTER(alltrim(defaults->city)+' '+defaults->state+' '+defaults->zip,40)|> <|NEWLINE()|> <|CENTER('SALES RECEIPT',40)|> <|CENTER('Sale Number: '+IIF(sale_hdr->sale_no=sale_hdr->mastersale,ALLTRIM(STR(sale_hdr->mastersale,16,0)),ALLTRIM(STR(sale_hdr->sale_no))),40)|> <|CENTER(alltrim(operator->first_name)+' '+alltrim(sales_pt->descrip),40)|> <|CENTER(DSTR2(sale_hdr->Date_time),40)|> <|NEWLINE()|> <|'Qty Item Price '|> <|' Special Discount'|> <|'----------------------------------------------'|> <|Details(IIF(Item="**TRANS**",' Account Payment '+STR(extension,8,2),IIF(MODIFIER(),NEWLINE()+' '+Items->descrip+' '+STR(extension-tax_amount-tax_amt2+disc_amt,8,2),NEWLINE()+STR(quantity,3,0)+' '+Items->descrip+' '+STR(extension-tax_amount-tax_amt2+disc_amt,8,2))+IIF(disc_amt=0,NEWLINE()+ALLTRIM(' '),NEWLINE()+' '+IIF(ALLTRIM(UPPER(special))="CUSTOM","Custom Special ",specials->descrip)+' '+STR(-1*disc_amt,8,2))+IIF(guest_no=0,ALLTRIM(' '),NEWLINE()+' '+alltrim(guests.first_name)+' '+alltrim(guests.last_name))+IIF(pass_no=0,ALLTRIM(' '),NEWLINE()+' Starting Number: '+ALLTRIM(STR(pass_no,16,0)))+ NEWLINE()|> <|JUSTRIGHT('---------------------------',40)|> <|JUSTRIGHT(' SUB TOTAL:'+STR(Utility->sale_sub,10,2),40)|> <|JUSTRIGHT(' TAX:'+STR(Utility->sale_tax,10,2),40)|> <|JUSTRIGHT('---------------------------',40)|> <|JUSTRIGHT(' TOTAL:'+STR(Utility->sale_ext,10,2),40)|> <|JUSTRIGHT(' PAYMENTS:'+STR(Utility->amt_paid,10,2),40)|> <|JUSTRIGHT('---------------------------',40)|> <|JUSTRIGHT(' BALANCE DUE:'+STR(Utility->bal_due,10,2),40)|> <|NEWLINE()|> <|JUSTRIGHT('Payment Type: ',40)|> <|JUSTRIGHT(FOP(),40)|> <|Printers->cut_code|> <|NEWLINE()|>
9
• Sample Layout <|ALLTRIM("<NR><RC135,75><F9><HW4,2>")+'SiriusSeminar 09'|> <|ALLTRIM ("<RC320,75><X2><OL6>")+'^%AA'+ALLTRIM (STR(tmp_access,20,0))+'^'|> <|ALLTRIM ("<NR><RC400,75><F9><HW1,1>")+ALLTRIM(tmp_oper)+' -'+ALLTRIM(tmp_loc)+' -
'+DTOC(DATE())+' TIME:'+TIME()|> <|ALLTRIM ("<p>")|>
• Key pieces of the layout broken out <|ALLTRIM("<NR><RC135,75><F9><HW4,2>")+'SiriusSeminar 2011'|> Alltrim – removes spaces NR – no rotation, options include RR rotate right, RL rotate left, RU rotate 180 RC135,75 – Row 135, Column 75 F9 – Font style, 13 fonts to choose from HW4,2 – Font height 4, width 2 ‘SiriusSeminar 2011’ – Text to be printed
• Sample Output SiriusSeminar 2011 *%AA1001000*
ADMIN TKT01 08/04/11 10:32AM
Printer Specific Language – Boca
10
• Sample Layout ! 0 100 1050 <|TICKETQTY(tmp_qty)|> JUSTIFY CENTER U C40 (6,5,0) 500 190 <|ALLTRIM(tmp_idesc)|> BR code128(2:4) 710 500 70
<|'*A'+ALLTRIM(STR(tmp_access,20,0))+'*'|> END
• Key pieces of the layout broken out 1050 – Printable length of ticket (distance between
black bars) measured in points. The Advantage/Blaster is a 200 dpi (dots/points per inch) printer so 1050 represents 5.25”
<|TICKETQTY(tmp_qty)|> - Allows multiple quantities of the same ticket to print rapidly
U C40 (6,5,0) 500 190 <|alltrim(tmp_idesc)|> U – Stands for UltraFont meaning this will be a line of
text. Other common options include: B –barcode BR –
rotated barcode BT –barcode text F –Box. C – Font style. Three styles A, B, C A = Rounded
corners B = Angled corners C = Bolded horizontal strokes
• Sample Output Adult Day Admission *A1001000*
40 – Font Size Available options are 1-65535 (6,5,0) – Boldness 1-255, Inter-character spacing 0 -10,
Rotation (0, 90, 180, 270) 500 – Horizontal position (in points) columns 190 – Vertical position (in points) rows <|alltrim(tmp_idesc)|> - field to be printed
Printer Specific Language – Cognitive
11
• Sample Layout ! 0 100 970 1 JUSTIFY LEFT TEXT 3 (1,90,1,1) 580 250 <|Siriusware Seminar 2011'|> TEXT 1 (1,90,1,1) 540 250 <|'Designing Text Layouts'|> TEXT 2 (1,90,1,1) 520 250 <|Items->help_info|> TEXT 2 (1,90,1,1) 455 250 <|ALLTRIM(tmp_mod1)|> TEXT 2 (1,90,1,1) 470 250 <|ALLTRIM(tmp_idesc)|> END
• Key pieces of the layout broken out TEXT 3 (1,90,1,1) 580 250 <|Siriusware Seminar 2011'|> TEXT 3 – Options include 0 –6. 0 = 6pt, 1 = 8pt, 2 = 10pt, 3 = 16pt, 4 = 24pt, 5 = 36pt, 6 = 48pt (1, 90, 1, 1) = (Spacing, Rotation, xMult, yMult) Spacing options include 0 –255 Rotation options include 0, 90, 270 xMult, yMult (expands font) options include 0 –4 580 250 = x y coordinates on ticket
Printer Specific Language – Alternative Cognitive
12
Function Description ALLTRIM(STRING) Trims all of the blanks from both the beginning and the end
of the specified STRING.
LEFT(STRING, NUMBER) Returns a specified NUMBER of characters from a character STRING, beginning at the first character.
SUBSTR(STRING, START, NUMBER)
Returns a specified NUMBER of characters from a specified STRING beginning at the specified START character.
Available Layout Functions
ALLTRIM(' SEMINAR2011 ') returns 'SEMINAR2011’ LEFT('SEMINAR2011', 4) returns 'SEMI' The same result could be achieved with SUBSTR('SEMINAR2011', 1, 4) SUBSTR('SEMINAR2011', 3, 3) returns 'MIN' SUBSTR('SEMINAR2011', 8, 4) returns ‘2011'
13
Function Description DATE() Returns the current system date.
DAY(DATE) Returns the day of the month for the DATE passed as a number between 1 and 31.
MONTH(DATE) Returns the month of the year for the DATE passed as a number between 1 and 12.
YEAR(DATE) Returns the year of the DATE passed as a four digit year.
Available Layout Functions
DAY(DATE()) returns 21 MONTH(DATE()) returns 9 YEAR(DATE()) returns 2011 Note: These are numeric values. Since we are sending text to the printer, we need to convert any numeric or date fields to characters.
14
Function Description STR(NUMBER, LENGTH, DECIMALS)
The string function converts a numeric value into a character value. LENGTH is the number of characters in the new string, including the decimal point. DECIMALS is the number of decimal places desired.
Available Layout Functions
STR(21,2,0) returns ‘21‘ STR(21,4,1) returns ‘21.0‘ STR(9,2,0) returns ‘ 9’ STR(14.3625,8,2) returns ‘ 14.36‘ STR(2010,4,0) returns '2010‘ STR(DAY(DATE()),2,0) returns ‘21‘ STR(MONTH(DATE()),2,0) returns ‘ 9‘ STR(YEAR(DATE()),4,0) returns ‘2011‘ ALLTRIM(STR(MONTH(DATE()),2,0)) returns '9‘ ALLTRIM(STR(MONTH(DATE()),2,0)) + '/' + ALLTRIM(STR(DAY(DATE()),2,0)) + '/' + STR(YEAR(DATE()),4,0) returns '9/21/2011'
15
Function Description
IIF(CONDITION,STRING1,STRING2)
Evaluates the CONDITION and returns STRING1 if the condition is TRUE and STRING2 if the condition is FALSE. Note: STRING1 and STRING2 must be the same length.
Available Layout Functions
IIF(transact->extension < 0, 'Refund', 'Purchase') IIF(guests->first_name='JOHN', 'The name is John', 'Not John') These have been just a few of the commonly used layout functions. There are many more general functions as well as functions specific to sale receipts, tickets/vouchers, and credit card receipts.
16
• All necessary layouts will automatically print from Sales when a sale is saved or finalized
• Creating a header ticket (.INI Setting) for batch ticket printing in Reservations for advanced purchase
• Reprinting credit card receipts, sales receipts, remote receipts, tickets, and vouchers
Printing From Sales
17
• To encrypt or not to encrypt • If there is an open parenthesis, there must be one to close. Ex. () • If there is an open delimiter, there must be one to close Ex. <> • ALLTRIM can only be used to remove spaces on character fields or if a numeric field is converted to
a string (e.g. ALLTRIM(STR(tmp_access,20,0))) • Blaster layouts require the END command and a carriage return at the bottom of the layout • Boca layouts require the “<P>” command at the bottom of the layout • Print to File
– This will determine if there is a problem communicating with the printer or a problem with the layout
– To setup, go into the printer driver and change the port setting to be: File, Print to file – The file will be place in the Sales32c directory
• Print a Test Page – This will ensure that the printer is functioning properly outside of the Siriusware system
• Always test with real ticket stock and printer BEFORE opening • Text layouts test tool in Sales • If no receipt is printing but the reprint receipt is working, make sure the salespoint has the Print
Receipt box checked
Troubleshooting
18
• Open the Test Layout tool in Sales. Sales > Tools > Diagnostics > Test Layout. Choose the default Receipt layout and change the expression in the Receipt Layout to say Gift Receipt instead of Sales Receipt and click evaluate.
• Set up your Adult One Day ticket to print the Boca Admission.txt shared TM layout to Ticket 1 on your item > edit > printing tab.
• Set up your salespoint to print Ticket 1 layouts to a generic/text printer • Does anyone know how to get more than one ticket to print when the
quantity is set to 1?
Exercises
19
• Tables and fields available for use from layouts • Fields for text ticket layouts • Function reference • Character functions • Logic functions • Date functions • Data / Character conversion functions • Number / Character conversion functions • Database functions • Receipt layout functions • Ticket layout functions • Guest card layout functions • Siriusware –provided layouts
References
Thank You!