<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://in.compucrete.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mbarker</id>
	<title>KeystoneIntranet - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://in.compucrete.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mbarker"/>
	<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php/Special:Contributions/Mbarker"/>
	<updated>2026-05-15T15:12:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Training_Outline:_Ticket_Printing&amp;diff=1168</id>
		<title>Training Outline: Ticket Printing</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Training_Outline:_Ticket_Printing&amp;diff=1168"/>
		<updated>2026-02-10T17:49:42Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Training Outline - Dispatch System =&lt;br /&gt;
&lt;br /&gt;
== Keystone Options ==&lt;br /&gt;
&lt;br /&gt;
=== COD Payment Information ===&lt;br /&gt;
&lt;br /&gt;
Allowing Dispatch to enter Payment Information:&lt;br /&gt;
&lt;br /&gt;
'''Per Order:'''&lt;br /&gt;
This option enables &amp;quot;Cash Payment Entry&amp;quot; program under the Dispatch menu. &lt;br /&gt;
#Accounts Receivable --&amp;gt; COD Prepay Support&lt;br /&gt;
&lt;br /&gt;
'''Per Ticket:'''&lt;br /&gt;
These options will present the &amp;quot;Payment Information&amp;quot; popup when a ticket is created.&lt;br /&gt;
'''This will prompt for ALL priced tickets/orders.'''&lt;br /&gt;
#Dispatch --&amp;gt; Ticket Printing Options --&amp;gt; Ask Payment Information&lt;br /&gt;
#Dispatch --&amp;gt; Ticket Maintenance/List Options --&amp;gt; Ask Payment Information&lt;br /&gt;
&lt;br /&gt;
= Training Outline - Ticketing System =&lt;br /&gt;
&lt;br /&gt;
== CONFIGURING Keystone OPTIONS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Create Ticket Layout ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pricing Options ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Allow Price/Disc Changes&lt;br /&gt;
#Show Prices On Screen For Non Cods&lt;br /&gt;
#Print Prices On Tickets&lt;br /&gt;
##Cods Only&lt;br /&gt;
##Always&lt;br /&gt;
##Never&lt;br /&gt;
##Cods - Ask All Others&lt;br /&gt;
#Pricing Control (Remote Only)&lt;br /&gt;
##Ticketing System&lt;br /&gt;
##Office&lt;br /&gt;
=== File Maintenance Options On Ticketing Menu ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Product&lt;br /&gt;
#Customer&lt;br /&gt;
#Price&lt;br /&gt;
#Job Price&lt;br /&gt;
=== Ticket Printing Program Options ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Show A/R Balance &amp;amp; Total Open Slips&lt;br /&gt;
#Ask For Truck, Time, Miles&lt;br /&gt;
#Ask Next Delivery Time&lt;br /&gt;
#Ask For Payment&lt;br /&gt;
=== Remote Transfer Options ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Print Report&lt;br /&gt;
#Drive To Be Used&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=AP_Check_Form_Fields&amp;diff=1161</id>
		<title>AP Check Form Fields</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=AP_Check_Form_Fields&amp;diff=1161"/>
		<updated>2026-01-29T15:24:06Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Created 12/14/2022)&lt;br /&gt;
&lt;br /&gt;
===A/P Check Form Database Fields===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_AMOUNT&lt;br /&gt;
H.CHECK_MEMO&lt;br /&gt;
H.NAME&lt;br /&gt;
H.ADDRESS_1&lt;br /&gt;
H.ADDRESS_2&lt;br /&gt;
H.CITY&lt;br /&gt;
H.STATE&lt;br /&gt;
H.ZIP&lt;br /&gt;
H.SESSION_NO CM_SESSION_NO&lt;br /&gt;
H.TRANS_NO CM_TRANS_NO&lt;br /&gt;
D.INVOICE_NO&lt;br /&gt;
D.INVOICE_DATE&lt;br /&gt;
D.DUE_DATE&lt;br /&gt;
D.DISCOUNT_DATE&lt;br /&gt;
D.RETAINAGE_DATE&lt;br /&gt;
D.GROSS_AMOUNT&lt;br /&gt;
D.PAID_AMOUNT&lt;br /&gt;
D.RETAINAGE_AMOUNT&lt;br /&gt;
D.PAID_THIS_CHECK&lt;br /&gt;
D.DISC_THIS_CHECK&lt;br /&gt;
D.DISC_TAKEN&lt;br /&gt;
D.DESCRIPTION&lt;br /&gt;
D.PO_NUMBER&lt;br /&gt;
V.PARENT_VEND_ID&lt;br /&gt;
V.CREDIT_LIMIT&lt;br /&gt;
V.HIGH_CREDIT&lt;br /&gt;
V.VEND_CLASS&lt;br /&gt;
V.PAYMENT_TERMS&lt;br /&gt;
V.TEN99_CLASS&lt;br /&gt;
V.SECURITY_CLASS&lt;br /&gt;
V.LAST_PURCHASE_DATE&lt;br /&gt;
V.LAST_PAY_DATE&lt;br /&gt;
V.LAST_CHECK_NO&lt;br /&gt;
V.LAST_BANK_NO&lt;br /&gt;
V.CREDIT_LIMIT&lt;br /&gt;
V.PHONE_NO&lt;br /&gt;
V.FAX_NO&lt;br /&gt;
V.PAGER_NO&lt;br /&gt;
V.MOBILE_NO&lt;br /&gt;
V.EMAIL&lt;br /&gt;
V.URL&lt;br /&gt;
V.START_DATE&lt;br /&gt;
V.LAST_CONTACT_DATE&lt;br /&gt;
V.MTD_PURCHASES&lt;br /&gt;
V.YTD_PURCHASES&lt;br /&gt;
V.LAST_YEAR_PURCHASES&lt;br /&gt;
V.MTD_PAYMENTS&lt;br /&gt;
V.YTD_PAYMENTS&lt;br /&gt;
V.LAST_YEAR_PAYMENTS&lt;br /&gt;
V.MTD_DISC_TAKEN&lt;br /&gt;
V.YTD_DISC_TAKEN&lt;br /&gt;
V.FIN_CHARGE_CODE&lt;br /&gt;
V.TAX_CODE&lt;br /&gt;
V.COD_FLAG&lt;br /&gt;
V.TEMP_FLAG&lt;br /&gt;
V.TEN99_FLAG&lt;br /&gt;
V.AUTO_DIST_FLAG&lt;br /&gt;
V.USER_1&lt;br /&gt;
V.USER_2&lt;br /&gt;
V.TAX_AUTHORITY&lt;br /&gt;
C.NAME CONTACT&lt;br /&gt;
V.SEQUENCE_CODE&lt;br /&gt;
V.NOTES_1&lt;br /&gt;
V.NOTES_2&lt;br /&gt;
V.NOTES_3&lt;br /&gt;
V.NOTES_4&lt;br /&gt;
V.AP_GL&lt;br /&gt;
V.CASH_GL&lt;br /&gt;
V.DISC_GL&lt;br /&gt;
V.EXPENSE_GL&lt;br /&gt;
V.TAX_ID&lt;br /&gt;
V.CASH_BANK_NO&lt;br /&gt;
V.NAME_2&lt;br /&gt;
V.VEND_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Written Check Amount Line:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LINE +1 COLUMN 10       LEFT 80    FORMAT WRITTENND FIELD CHECK_AMOUNT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Notes:====&lt;br /&gt;
*H: Check Header&lt;br /&gt;
*D: Check Detail (invoice)&lt;br /&gt;
*V: Vendor&lt;br /&gt;
*C: Contact&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A/P Check Form Calculated Fields===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CALC_WRITTENAMT&lt;br /&gt;
CALC_GROSSTOTAL&lt;br /&gt;
CALC_DISCTOTAL&lt;br /&gt;
CALC_VENDADDR1&lt;br /&gt;
CALC_VENDADDR2&lt;br /&gt;
CALC_VENDADDR3&lt;br /&gt;
CALC_VENDADDR4&lt;br /&gt;
CHECK_NO&lt;br /&gt;
COND_INVOICEDESC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1160</id>
		<title>Keystone Forms</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1160"/>
		<updated>2026-01-29T13:59:30Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CATEGORY: FORMS]]&lt;br /&gt;
&lt;br /&gt;
While forms can be stored in the customer directory (e.g. ...\cust\forms), this should only be done if the form is specific to a computer.  Custom Forms belong in the database.&lt;br /&gt;
&lt;br /&gt;
==Sections==&lt;br /&gt;
===Form Section===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| BEGINCOPY &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| apply block of form only for nth copy&lt;br /&gt;
| applies to all form sections&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| CHAIN &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| the next form in the chain&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on each form&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COPIES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of copies of each form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| characters per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ENDCOPY&lt;br /&gt;
| indicates end of COPY block&lt;br /&gt;
|&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| FONTNAME &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| default font for the form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LENGTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines on the form&lt;br /&gt;
| impacts automatic page breaks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LINES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines for each label&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| Lines Per Inch - Vertical spacing between lines&lt;br /&gt;
| This will also change box sizing. Default: LPI 6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MARGIN &amp;lt;i&amp;gt;top,left,bottom,right&amp;lt;/i&amp;gt;&lt;br /&gt;
| specify page margins&lt;br /&gt;
| default is no margins&lt;br /&gt;
| 3.6.18.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION EXTEND_DETAIL&lt;br /&gt;
| allow form detail to extend into footer area&lt;br /&gt;
|&lt;br /&gt;
| 2.1.4&lt;br /&gt;
|-&lt;br /&gt;
| OPTION IMAGE_FIX&lt;br /&gt;
| fix image drawing issue&lt;br /&gt;
| some printers print border on right/bottom edge of images&lt;br /&gt;
| 3.2.3.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION LANDSCAPE&lt;br /&gt;
| force landscape orientation for the form&lt;br /&gt;
|&lt;br /&gt;
| 2.6&lt;br /&gt;
|-&lt;br /&gt;
| OPTION SUMMARIZE_PRODUCTS&lt;br /&gt;
| summarize product totals when printing invoices&lt;br /&gt;
|&lt;br /&gt;
| 1.6.6&lt;br /&gt;
|-&lt;br /&gt;
| PDFPAGES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ALL&lt;br /&gt;
| number of PDF document pages to include on form&lt;br /&gt;
| default is first page only&lt;br /&gt;
| 4.3.9.10&lt;br /&gt;
|-&lt;br /&gt;
| PRINTER &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| creates a virtual printer name&lt;br /&gt;
| Keystone can map this name to a physical printer with different settings per user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TITLE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| descriptive name of this form&lt;br /&gt;
| some options display this to the user when selecting forms&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VERSION &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| indicates the version number of the form&lt;br /&gt;
| used for special processing by some Keystone options &lt;br /&gt;
| 2.5.25&lt;br /&gt;
|-&lt;br /&gt;
| WIDTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on the form&lt;br /&gt;
| increase as needed but keep in mind this will reduce the font size&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Heading===&lt;br /&gt;
Information that prints 1 time at the top of the form.&lt;br /&gt;
&lt;br /&gt;
Alternate headings (e.g. &amp;quot;HEADING 4&amp;quot;) are used in certain types of forms for special sections of a form.&lt;br /&gt;
&lt;br /&gt;
===Detail===&lt;br /&gt;
Information that repeats for each line of detail.&lt;br /&gt;
&lt;br /&gt;
Certain forms may have alternate detail lines with unique behavior.  This could be an alternate type of detail or sub-detail.  e.g. &amp;quot;DETAIL 2&amp;quot; on an invoice is used to print comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Total===&lt;br /&gt;
Information that prints at the bottom of the form.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| NEWPAGE&lt;br /&gt;
| Start new page on a form&lt;br /&gt;
| Only verified for Total Section&lt;br /&gt;
| 3.3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample Total with a NEWPAGE:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
TOTAL  &lt;br /&gt;
&lt;br /&gt;
     LINE 42&lt;br /&gt;
&lt;br /&gt;
COLUMN 41&lt;br /&gt;
     BOX 5,24,0,20&lt;br /&gt;
     BOX 5,24&lt;br /&gt;
     BOX 5,36&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SUB TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SUBTOTAL&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SALES TAX-&lt;br /&gt;
                COLUMN 54  FIELD TAX_AUTHORITY&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SALESTAX&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT TICKET TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_TICKETTOTAL&lt;br /&gt;
     NEWPAGE &lt;br /&gt;
&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
        LINE +1 COLUMN 30       TEXT *** WARNING ***&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Cement is not good for you and It doesn't taste very good.&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Do not eat cement or stuff made from cement.  Do not eat &lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Tide Pods either.&lt;br /&gt;
        LINE +1 COLUMN 1        LEFT IMAGE 2&lt;br /&gt;
! DoNotEatCement.jpg&lt;br /&gt;
        LINE +3 COLUMN 13       TEXT RECEIVED BY:&lt;br /&gt;
                COLUMN 26       TEXT ________________________________________&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working With Forms==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formats===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
        LINE +1 COLUMN 1        FORMAT mm/dd/yy         FIELD TICKET_DATE &lt;br /&gt;
                COLUMN 10       RIGHT 7                 FIELD TICKET_NO&lt;br /&gt;
                COLUMN 18       FORMAT ####0.00         FIELD QTY_SOLD&lt;br /&gt;
                COLUMN 27                               FIELD UNIT_OF_MEASURE&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Date:''' The date April 5, 2018 with a format of '''mm/dd/yy''' will print as '''04/05/18''',  '''mm/dd/yyyy''' as '''4/05/2018'''&lt;br /&gt;
*'''Right/Left''' Slide text to the right or left of the designated space.  &lt;br /&gt;
*'''Numbers with # and 0:'''  '''#''' is a placeholder that prints if needed.  '''0''' will always print a value.  Example: 403.25 printed with a format of '''####0.00''' prints as &amp;quot;  403.25&amp;quot;, with a format of '''00000.00''' as &amp;quot;00403.25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Comments===&lt;br /&gt;
Lines that begin with a ! are comments.  They can be removed as needed.&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!   AVAILABLE CALCULATED FIELDS&lt;br /&gt;
!   ===========================&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
&lt;br /&gt;
In form Maintenance, select '''Load''' on the Images tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Image:Frm ld img.png]]&lt;br /&gt;
Load the image.&lt;br /&gt;
&lt;br /&gt;
When Setting up the form, refer to the image by number.  The following code places an image in column 3, scaled to be 12 characters wide:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
LINE 2 COLUMN 3&lt;br /&gt;
LEFT 12 IMAGE 2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conditions===&lt;br /&gt;
Conditions can be used to change the printed form logic, based on a field or form conditional value (Example 1.) IFNOT can be used to check if a condition is NOT true - it will still use ENDIF to close (Example 2.)&lt;br /&gt;
&lt;br /&gt;
When using &amp;quot;IF&amp;quot; with a field, the form will run the logic if the field is '''not''' null or zero (Example 3.)&lt;br /&gt;
&lt;br /&gt;
You can nest &amp;quot;IF&amp;quot; statements with &amp;quot;ELSE&amp;quot; to do multiple condition checks (Example 4.) Insert the first &amp;quot;IF&amp;quot; condition, then use &amp;quot;ELSE&amp;quot; followed by another &amp;quot;IF&amp;quot; statement. Note: If &amp;quot;ELSE&amp;quot; is on the same line as &amp;quot;IF&amp;quot; it will give unintended results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!EXAMPLE 1 -- Print &amp;quot;INTERNAL USE ONLY&amp;quot; if COND_INTERNAL is met.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 8 TEXT INTERNAL USE ONLY&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 2 -- Print FIELD QTY_SOLD only if the comment condition is not met.&lt;br /&gt;
IFNOT COND_COMMENT&lt;br /&gt;
COLUMN 43 FORMAT ####.00 FIELD QTY_SOLD&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 3 -- Print UNIT_PRICE, if UNIT_PRICE is not null or zero.&lt;br /&gt;
IF UNIT_PRICE&lt;br /&gt;
COLUMN 16 FIELD UNIT_PRICE&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 4 -- Print PRODUCT_COST if COND_INTERNAL is met, otherwise print UNIT_PCT_DISC if it is not null or zero. If COND_INTERNAL is not met and UNIT_PCT_DISC is null or zero, nothing will print.&lt;br /&gt;
!          -- Note that only ONE &amp;quot;ENDIF&amp;quot; is used despite the use of TWO &amp;quot;IF&amp;quot; statements.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 70       FORMAT ####.000         FIELD PRODUCT_COST&lt;br /&gt;
ELSE&lt;br /&gt;
IF UNIT_PCT_DISC            &lt;br /&gt;
COLUMN 70       RIGHT 8                 FIELD CALC_DISCOUNT&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHAIN command: Creating Multiple Forms ===&lt;br /&gt;
The Chain command allows multiple forms to print at one time.  These forms can be identical or unique, and can print to multiple printers.&lt;br /&gt;
&lt;br /&gt;
The Chain command is used in the FORM section.&lt;br /&gt;
Syntax: CHAIN [formname].FRM   (e.g. CHAIN ARTCK.FRM)&lt;br /&gt;
&lt;br /&gt;
In order to use multiple printers, make sure that the printer ALIAS is unique for each of the forms.  Make sure to update the Plant to point to the correct form. Then in Ticket Printing/ Printer setup you can assign each alias to a printer.  &lt;br /&gt;
&lt;br /&gt;
When mixing a special form and a standard form, it is probably best to have the special form chain to the standard form.  This prevents you from needing to create a new standard form and makes setting up the printers easier.  The Printer setup develops the Alias list from the primary form for each plant.  So if a special form with a unique alias is used as the primary form for a plant, then that Alias will appear on the list.&lt;br /&gt;
&lt;br /&gt;
===Bar Codes===&lt;br /&gt;
Here is a section from a sample ticket form file that shows how to print barcodes on ticket forms.&lt;br /&gt;
&lt;br /&gt;
NOTE that this should work in a similar way for dot-matrix (With EPSON emulation) and laser printers. However, for dot-matrix printers the only (currently) supported bar code format is Code 39. For laser/inkjet printers you must have a bar code font available on the printer, and you would specify that font name where you see “FONTNAME BARCODE39” in the sample below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
FORM&lt;br /&gt;
LENGTH 66       WIDTH 80        PRINTER ARTicket&lt;br /&gt;
     FONTNAME VERDANA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HEADING&lt;br /&gt;
     LINE 1     COLUMN 1                   &lt;br /&gt;
                FONTNAME BARCODE39&lt;br /&gt;
                     FORMAT 00000000      FIELD TICKET_NO                &lt;br /&gt;
                FONTNAME DEFAULT&lt;br /&gt;
&lt;br /&gt;
     LINE 8     COLUMN 5                   FIELD PLANT_NO&lt;br /&gt;
           COLUMN 10  FORMAT #0&amp;quot;:&amp;quot;00       FIELD TICKET_TIME&lt;br /&gt;
           COLUMN 30                       FIELD TRUCK_NO&lt;br /&gt;
           COLUMN 38                       FIELD DRIVER_NAME&lt;br /&gt;
           COLUMN 58  FORMAT MM/DD/YY      FIELD TICKET_DATE&lt;br /&gt;
           COLUMN 71                       &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boxes/Shading===&lt;br /&gt;
&lt;br /&gt;
The BOX command may be used in any form printing section (Heading, Detail, Total.) The syntax is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
BOX Height, Width [,Weight [,Shading [,Color]]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;BOX 1,76,0,20,clYellow&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Height and Width are expressed in printed characters.&lt;br /&gt;
&lt;br /&gt;
Weight is optional (default is 8 pixels) and indicates the number of pixels for the box border. The border is drawn in the current COLOR setting (black is default.)&lt;br /&gt;
&lt;br /&gt;
Shading is optional (default is no shading) and specifies the shading percentage (0-100.) Lower shading is brighter color, higher shading is darker color.&lt;br /&gt;
&lt;br /&gt;
(Keystone 3.6.4.7+) Color is optional (default is black) and specifies the shading color.  The borders are drawn in the current font color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;When Color is black it is treated as white internally, meaning that a lower shading will tend toward white (no shading) while a higher shading will tend toward black.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
:[[Keystone Form Colors]]&lt;br /&gt;
:[[Sample Forms]]&lt;br /&gt;
:[[Payroll: Form Versions]]&lt;br /&gt;
:[[Invoice Form Fields]] &lt;br /&gt;
:[[Ticket Form Fields]]&lt;br /&gt;
:[[AP Check Form Fields]]&lt;br /&gt;
:[[Quote Form Fields]]&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1159</id>
		<title>Keystone Forms</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1159"/>
		<updated>2026-01-29T13:57:53Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CATEGORY: FORMS]]&lt;br /&gt;
&lt;br /&gt;
While forms can be stored in the customer directory (e.g. ...\cust\forms), this should only be done if the form is specific to a computer.  Custom Forms belong in the database.&lt;br /&gt;
&lt;br /&gt;
==Sections==&lt;br /&gt;
===Form Section===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| BEGINCOPY &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| apply block of form only for nth copy&lt;br /&gt;
| applies to all form sections&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| CHAIN &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| the next form in the chain&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on each form&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COPIES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of copies of each form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| characters per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ENDCOPY&lt;br /&gt;
| indicates end of COPY block&lt;br /&gt;
|&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| FONTNAME &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| default font for the form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LENGTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines on the form&lt;br /&gt;
| impacts automatic page breaks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LINES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines for each label&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| Lines Per Inch - Vertical spacing between lines&lt;br /&gt;
| This will also change box sizing. Default: LPI 6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MARGIN &amp;lt;i&amp;gt;top,left,bottom,right&amp;lt;/i&amp;gt;&lt;br /&gt;
| specify page margins&lt;br /&gt;
| default is no margins&lt;br /&gt;
| 3.6.18.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION EXTEND_DETAIL&lt;br /&gt;
| allow form detail to extend into footer area&lt;br /&gt;
|&lt;br /&gt;
| 2.1.4&lt;br /&gt;
|-&lt;br /&gt;
| OPTION IMAGE_FIX&lt;br /&gt;
| fix image drawing issue&lt;br /&gt;
| some printers print border on right/bottom edge of images&lt;br /&gt;
| 3.2.3.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION LANDSCAPE&lt;br /&gt;
| force landscape orientation for the form&lt;br /&gt;
|&lt;br /&gt;
| 2.6&lt;br /&gt;
|-&lt;br /&gt;
| OPTION SUMMARIZE_PRODUCTS&lt;br /&gt;
| summarize product totals when printing invoices&lt;br /&gt;
|&lt;br /&gt;
| 1.6.6&lt;br /&gt;
|-&lt;br /&gt;
| PDFPAGES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ALL&lt;br /&gt;
| number of PDF document pages to include on form&lt;br /&gt;
| default is first page only&lt;br /&gt;
| 4.3.9.10&lt;br /&gt;
|-&lt;br /&gt;
| PRINTER &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| creates a virtual printer name&lt;br /&gt;
| Keystone can map this name to a physical printer with different settings per user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TITLE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| descriptive name of this form&lt;br /&gt;
| some options display this to the user when selecting forms&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VERSION &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| indicates the version number of the form&lt;br /&gt;
| used for special processing by some Keystone options &lt;br /&gt;
| 2.5.25&lt;br /&gt;
|-&lt;br /&gt;
| WIDTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on the form&lt;br /&gt;
| increase as needed but keep in mind this will reduce the font size&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Heading===&lt;br /&gt;
Information that prints 1 time at the top of the form.&lt;br /&gt;
&lt;br /&gt;
Alternate headings (e.g. &amp;quot;HEADING 4&amp;quot;) are used in certain types of forms for special sections of a form.&lt;br /&gt;
&lt;br /&gt;
===Detail===&lt;br /&gt;
Information that repeats for each line of detail.&lt;br /&gt;
&lt;br /&gt;
Certain forms may have alternate detail lines with unique behavior.  This could be an alternate type of detail or sub-detail.  e.g. &amp;quot;DETAIL 2&amp;quot; on an invoice is used to print comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Total===&lt;br /&gt;
Information that prints at the bottom of the form.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| NEWPAGE&lt;br /&gt;
| Start new page on a form&lt;br /&gt;
| Only verified for Total Section&lt;br /&gt;
| 3.3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample Total with a NEWPAGE:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
TOTAL  &lt;br /&gt;
&lt;br /&gt;
     LINE 42&lt;br /&gt;
&lt;br /&gt;
COLUMN 41&lt;br /&gt;
     BOX 5,24,0,20&lt;br /&gt;
     BOX 5,24&lt;br /&gt;
     BOX 5,36&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SUB TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SUBTOTAL&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SALES TAX-&lt;br /&gt;
                COLUMN 54  FIELD TAX_AUTHORITY&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SALESTAX&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT TICKET TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_TICKETTOTAL&lt;br /&gt;
     NEWPAGE &lt;br /&gt;
&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
        LINE +1 COLUMN 30       TEXT *** WARNING ***&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Cement is not good for you and It doesn't taste very good.&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Do not eat cement or stuff made from cement.  Do not eat &lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Tide Pods either.&lt;br /&gt;
        LINE +1 COLUMN 1        LEFT IMAGE 2&lt;br /&gt;
! DoNotEatCement.jpg&lt;br /&gt;
        LINE +3 COLUMN 13       TEXT RECEIVED BY:&lt;br /&gt;
                COLUMN 26       TEXT ________________________________________&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working With Forms==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formats===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
        LINE +1 COLUMN 1        FORMAT mm/dd/yy         FIELD TICKET_DATE &lt;br /&gt;
                COLUMN 10       RIGHT 7                 FIELD TICKET_NO&lt;br /&gt;
                COLUMN 18       FORMAT ####0.00         FIELD QTY_SOLD&lt;br /&gt;
                COLUMN 27                               FIELD UNIT_OF_MEASURE&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Date:''' The date April 5, 2018 with a format of '''mm/dd/yy''' will print as '''04/05/18''',  '''mm/dd/yyyy''' as '''4/05/2018'''&lt;br /&gt;
*'''Right/Left''' Slide text to the right or left of the designated space.  &lt;br /&gt;
*'''Numbers with # and 0:'''  '''#''' is a placeholder that prints if needed.  '''0''' will always print a value.  Example: 403.25 printed with a format of '''####0.00''' prints as &amp;quot;  403.25&amp;quot;, with a format of '''00000.00''' as &amp;quot;00403.25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Comments===&lt;br /&gt;
Lines that begin with a ! are comments.  They can be removed as needed.&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!   AVAILABLE CALCULATED FIELDS&lt;br /&gt;
!   ===========================&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
&lt;br /&gt;
In form Maintenance, select '''Load''' on the Images tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Image:Frm ld img.png]]&lt;br /&gt;
Load the image.&lt;br /&gt;
&lt;br /&gt;
When Setting up the form, refer to the image by number.  The following code places an image in column 3, scaled to be 12 characters wide:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
LINE 2 COLUMN 3&lt;br /&gt;
LEFT 12 IMAGE 2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conditions===&lt;br /&gt;
Conditions can be used to change the printed form logic, based on a field or form conditional value (Example 1.) IFNOT can be used to check if a condition is NOT true - it will still use ENDIF to close (Example 2.)&lt;br /&gt;
&lt;br /&gt;
When using &amp;quot;IF&amp;quot; with a field, the form will run the logic if the field is '''not''' null or zero (Example 3.)&lt;br /&gt;
&lt;br /&gt;
You can nest &amp;quot;IF&amp;quot; statements with &amp;quot;ELSE&amp;quot; to do multiple condition checks (Example 4.) Insert the first &amp;quot;IF&amp;quot; condition, then use &amp;quot;ELSE&amp;quot; followed by another &amp;quot;IF&amp;quot; statement. Note: If &amp;quot;ELSE&amp;quot; is on the same line as &amp;quot;IF&amp;quot; it will give unintended results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!EXAMPLE 1 -- Print &amp;quot;INTERNAL USE ONLY&amp;quot; if COND_INTERNAL is met.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 8 TEXT INTERNAL USE ONLY&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 2&lt;br /&gt;
IFNOT COND_COMMENT&lt;br /&gt;
COLUMN 43 FORMAT ####.00 FIELD QTY_SOLD&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 3 -- Print UNIT_PRICE, if UNIT_PRICE is not null or zero.&lt;br /&gt;
IF UNIT_PRICE&lt;br /&gt;
COLUMN 16 FIELD UNIT_PRICE&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 4 -- Print PRODUCT_COST if COND_INTERNAL is met, otherwise print UNIT_PCT_DISC if it is not null or zero. If COND_INTERNAL is not met and UNIT_PCT_DISC is null or zero, nothing will print.&lt;br /&gt;
!          -- Note that only ONE &amp;quot;ENDIF&amp;quot; is used despite the use of TWO &amp;quot;IF&amp;quot; statements.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 70       FORMAT ####.000         FIELD PRODUCT_COST&lt;br /&gt;
ELSE&lt;br /&gt;
IF UNIT_PCT_DISC            &lt;br /&gt;
COLUMN 70       RIGHT 8                 FIELD CALC_DISCOUNT&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHAIN command: Creating Multiple Forms ===&lt;br /&gt;
The Chain command allows multiple forms to print at one time.  These forms can be identical or unique, and can print to multiple printers.&lt;br /&gt;
&lt;br /&gt;
The Chain command is used in the FORM section.&lt;br /&gt;
Syntax: CHAIN [formname].FRM   (e.g. CHAIN ARTCK.FRM)&lt;br /&gt;
&lt;br /&gt;
In order to use multiple printers, make sure that the printer ALIAS is unique for each of the forms.  Make sure to update the Plant to point to the correct form. Then in Ticket Printing/ Printer setup you can assign each alias to a printer.  &lt;br /&gt;
&lt;br /&gt;
When mixing a special form and a standard form, it is probably best to have the special form chain to the standard form.  This prevents you from needing to create a new standard form and makes setting up the printers easier.  The Printer setup develops the Alias list from the primary form for each plant.  So if a special form with a unique alias is used as the primary form for a plant, then that Alias will appear on the list.&lt;br /&gt;
&lt;br /&gt;
===Bar Codes===&lt;br /&gt;
Here is a section from a sample ticket form file that shows how to print barcodes on ticket forms.&lt;br /&gt;
&lt;br /&gt;
NOTE that this should work in a similar way for dot-matrix (With EPSON emulation) and laser printers. However, for dot-matrix printers the only (currently) supported bar code format is Code 39. For laser/inkjet printers you must have a bar code font available on the printer, and you would specify that font name where you see “FONTNAME BARCODE39” in the sample below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
FORM&lt;br /&gt;
LENGTH 66       WIDTH 80        PRINTER ARTicket&lt;br /&gt;
     FONTNAME VERDANA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HEADING&lt;br /&gt;
     LINE 1     COLUMN 1                   &lt;br /&gt;
                FONTNAME BARCODE39&lt;br /&gt;
                     FORMAT 00000000      FIELD TICKET_NO                &lt;br /&gt;
                FONTNAME DEFAULT&lt;br /&gt;
&lt;br /&gt;
     LINE 8     COLUMN 5                   FIELD PLANT_NO&lt;br /&gt;
           COLUMN 10  FORMAT #0&amp;quot;:&amp;quot;00       FIELD TICKET_TIME&lt;br /&gt;
           COLUMN 30                       FIELD TRUCK_NO&lt;br /&gt;
           COLUMN 38                       FIELD DRIVER_NAME&lt;br /&gt;
           COLUMN 58  FORMAT MM/DD/YY      FIELD TICKET_DATE&lt;br /&gt;
           COLUMN 71                       &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boxes/Shading===&lt;br /&gt;
&lt;br /&gt;
The BOX command may be used in any form printing section (Heading, Detail, Total.) The syntax is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
BOX Height, Width [,Weight [,Shading [,Color]]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;BOX 1,76,0,20,clYellow&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Height and Width are expressed in printed characters.&lt;br /&gt;
&lt;br /&gt;
Weight is optional (default is 8 pixels) and indicates the number of pixels for the box border. The border is drawn in the current COLOR setting (black is default.)&lt;br /&gt;
&lt;br /&gt;
Shading is optional (default is no shading) and specifies the shading percentage (0-100.) Lower shading is brighter color, higher shading is darker color.&lt;br /&gt;
&lt;br /&gt;
(Keystone 3.6.4.7+) Color is optional (default is black) and specifies the shading color.  The borders are drawn in the current font color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;When Color is black it is treated as white internally, meaning that a lower shading will tend toward white (no shading) while a higher shading will tend toward black.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
:[[Keystone Form Colors]]&lt;br /&gt;
:[[Sample Forms]]&lt;br /&gt;
:[[Payroll: Form Versions]]&lt;br /&gt;
:[[Invoice Form Fields]] &lt;br /&gt;
:[[Ticket Form Fields]]&lt;br /&gt;
:[[AP Check Form Fields]]&lt;br /&gt;
:[[Quote Form Fields]]&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Invoice_Form_Fields&amp;diff=1153</id>
		<title>Invoice Form Fields</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Invoice_Form_Fields&amp;diff=1153"/>
		<updated>2026-01-09T17:51:51Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CATEGORY: FORMS]]&lt;br /&gt;
Fields available for the invoice form.  &lt;br /&gt;
&lt;br /&gt;
NOTE:  In most cases just the field name is used.   In some cases an alias is used and both the actual field name and the alias will be presented - in this case use the alias name on the form.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
IV.SESSION_NO INV_SESSION_NO,  &lt;br /&gt;
IV.TRANS_NO INV_TRANS_NO,  &lt;br /&gt;
SP.DESCRIPTION SALESPERSON_NAME, &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Use:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
INV_SESSION_NO&lt;br /&gt;
INV_TRANS_NO&lt;br /&gt;
SALESPERSON_NAME&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A ticket Image can be added as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add ticket form to invoice....&lt;br /&gt;
! ---------- Ticket Document Image&lt;br /&gt;
DETAIL 5&lt;br /&gt;
     LINE 4 COLUMN 1 LEFT 80         IMAGEFIELD TICKET DOC_ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a Voided message for voided invoices:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
IF CALC_VOIDFLAGMSG&lt;br /&gt;
	LINE 32&lt;br /&gt;
	FONTSIZE 48&lt;br /&gt;
	COLOR clRed&lt;br /&gt;
	BOLD ON&lt;br /&gt;
	COLUMN 30 TEXT VOID&lt;br /&gt;
	COLOR clBlack&lt;br /&gt;
	FONTSIZE 8&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a Barcode or Payment Link:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
For QR Code:&lt;br /&gt;
LINE +1 COLUMN 15	LEFT 40 FORMAT BARCODE_QR	FIELD CALC_LINK_PAYMENT_QR&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
For payment link:&lt;br /&gt;
COLUMN 15	LEFT 12 FORMAT PDF_HYPERLINK	FIELD CALC_LINK_PAYMENT&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Invoice Form Fields==&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
IV.SESSION_NO INV_SESSION_NO,  &lt;br /&gt;
IV.TRANS_NO INV_TRANS_NO,  &lt;br /&gt;
IV.CUST_NO,  &lt;br /&gt;
IV.INVOICE_NO,  &lt;br /&gt;
IV.INVOICE_DATE,  &lt;br /&gt;
SALES_TAX,  &lt;br /&gt;
SALES_TAX_1,  &lt;br /&gt;
SALES_TAX_2,  &lt;br /&gt;
SALES_TAX_3,  &lt;br /&gt;
IV.DEBIT_AMOUNT INVOICE_TOTAL,  &lt;br /&gt;
IV.DISC_OFFERED DISC_AVAILABLE,  &lt;br /&gt;
IV.DISC_VALID_DATE DISC_DATE,  &lt;br /&gt;
NON_TAXABLE_1,  &lt;br /&gt;
NON_TAXABLE_2,  &lt;br /&gt;
NON_TAXABLE_3,  &lt;br /&gt;
IV.PRIOR_AR_BALANCE,  &lt;br /&gt;
IV.TAX_AUTHORITY,  &lt;br /&gt;
IV.JOB_DESC,  &lt;br /&gt;
IV.AGING_1,  &lt;br /&gt;
IV.AGING_2,  &lt;br /&gt;
IV.AGING_3,  &lt;br /&gt;
IV.AGING_4,  &lt;br /&gt;
IV.AGING_5,  &lt;br /&gt;
IV.FINCHG_1,  &lt;br /&gt;
IV.FINCHG_2,  &lt;br /&gt;
IV.FINCHG_3,  &lt;br /&gt;
IV.FINCHG_4,  &lt;br /&gt;
IV.FINCHG_5,  &lt;br /&gt;
IV.INVOICEMESSAGE_1,  &lt;br /&gt;
IV.INVOICEMESSAGE_2,  &lt;br /&gt;
IV.INVOICEMESSAGE_3,  &lt;br /&gt;
IV.INVOICEMESSAGE_4,  &lt;br /&gt;
IV.RETURNADDR_1,  &lt;br /&gt;
IV.RETURNADDR_2,  &lt;br /&gt;
IV.RETURNADDR_3,  &lt;br /&gt;
IV.RETURNADDR_4,  &lt;br /&gt;
IV.UMS_1,  &lt;br /&gt;
IV.UMS_2,  &lt;br /&gt;
IV.UMS_3,  &lt;br /&gt;
IV.UMS_4,  &lt;br /&gt;
IV.UMS_5,  &lt;br /&gt;
IV.UMSTOTAL_1,  &lt;br /&gt;
IV.UMSTOTAL_2,  &lt;br /&gt;
IV.UMSTOTAL_3,  &lt;br /&gt;
IV.UMSTOTAL_4,  &lt;br /&gt;
IV.UMSTOTAL_5,  &lt;br /&gt;
IV.CUST_NAME,  &lt;br /&gt;
IV.CUST_ADDRESS_1,  &lt;br /&gt;
IV.CUST_ADDRESS_2,  &lt;br /&gt;
IV.CUST_CITY,  &lt;br /&gt;
IV.CUST_STATE,  &lt;br /&gt;
IV.CUST_ZIP,  &lt;br /&gt;
IV.CREDIT_TERMS,  &lt;br /&gt;
IV.DISCOUNT_MESSAGE,  &lt;br /&gt;
(0) SPLIT_RATE,   temporary&lt;br /&gt;
(0) SPLIT_LIMIT,  &lt;br /&gt;
IV.PLANT_NAME,  &lt;br /&gt;
IV.PLANT_SCREEN_ID,  &lt;br /&gt;
IV.PLANT_ADDRESS_1,  &lt;br /&gt;
IV.PLANT_ADDRESS_2,  &lt;br /&gt;
IV.PLANT_PHONE_NO,  &lt;br /&gt;
IV.SPACE_BETWEEN_TICKETS,  &lt;br /&gt;
IV.NONTAX_TOTAL,  &lt;br /&gt;
IV.TICKET_COMMENTS,  &lt;br /&gt;
IV.PRODUCT_TOTALS,  &lt;br /&gt;
IV.PRINT_CASH,  &lt;br /&gt;
IV.PRINT_PRICED,  &lt;br /&gt;
IV.PRINT_UNPRICED,  &lt;br /&gt;
IV.CUST_COD_FLAG,  &lt;br /&gt;
IV.CUST_USER_1,  &lt;br /&gt;
IV.CUST_USER_2,  &lt;br /&gt;
IV.DUE_DATE,  &lt;br /&gt;
IV.VOID_FLAG,  &lt;br /&gt;
IV.PLANT_NO INV_PLANT_NO,  &lt;br /&gt;
IV.DIVISION_NO,  &lt;br /&gt;
IV.CREDIT_AMOUNT,  &lt;br /&gt;
&lt;br /&gt;
// customer fields&lt;br /&gt;
CU.TAX_ID CUST_TAX_ID,  &lt;br /&gt;
&lt;br /&gt;
// sales header fields&lt;br /&gt;
SH.SESSION_NO TCK_SESSION_NO,  &lt;br /&gt;
SH.TRANS_NO TCK_TRANS_NO,  &lt;br /&gt;
SH.TICKET_NO,  &lt;br /&gt;
SH.TICKET_DATE,  &lt;br /&gt;
SH.SLUMP,  &lt;br /&gt;
SH.MILES,  &lt;br /&gt;
SH.TICKET_TIME,  &lt;br /&gt;
SH.SALESPERSON,  &lt;br /&gt;
SH.CUST_CLASS,  &lt;br /&gt;
SH.SYS_LOC,  &lt;br /&gt;
SH.PLANT_NO,  &lt;br /&gt;
SH.JOB_PO_LOC,  &lt;br /&gt;
SH.JOB_LOT,  &lt;br /&gt;
SH.TRUCK_NO,  &lt;br /&gt;
SH.TRAILER_1,  &lt;br /&gt;
SH.TRAILER_2,  &lt;br /&gt;
SH.SOURCE_FLAG,  &lt;br /&gt;
SH.VOID_FLAG,  &lt;br /&gt;
SH.PRICED_FLAG,  &lt;br /&gt;
SH.OFFICE_PRICE_FLAG,  &lt;br /&gt;
SH.ZONE,  &lt;br /&gt;
SH.COD_FLAG,  &lt;br /&gt;
SH.ELAPSED_TIME,  &lt;br /&gt;
SH.BATCH_START_DT,  &lt;br /&gt;
SH.BATCH_END_DT,  &lt;br /&gt;
SH.LEAVE_PLANT_DT,  &lt;br /&gt;
SH.ARRIVE_JOB_DT,  &lt;br /&gt;
SH.BEGIN_POUR_DT,  &lt;br /&gt;
SH.END_POUR_DT,  &lt;br /&gt;
SH.LEAVE_JOB_DT,  &lt;br /&gt;
SH.RETURN_PLANT_DT,  &lt;br /&gt;
SH.CUSTOMER_PO,  &lt;br /&gt;
SH.DRIVER,  &lt;br /&gt;
SH.JOB_CLASS,  &lt;br /&gt;
SH.PAYMENT_AMOUNT,  &lt;br /&gt;
SH.CHECK_DATE,  &lt;br /&gt;
SH.CHECK_NO,  &lt;br /&gt;
SH.BANK_NO,  &lt;br /&gt;
SH.SHIP_TO_1,  &lt;br /&gt;
SH.SHIP_TO_2,  &lt;br /&gt;
SH.SHIP_TO_3,  &lt;br /&gt;
SH.SHIP_TO_4,  &lt;br /&gt;
SH.DELV_INST_1,  &lt;br /&gt;
SH.DELV_INST_2,  &lt;br /&gt;
SH.DELV_INST_3,  &lt;br /&gt;
SH.DELV_INST_4,  &lt;br /&gt;
SH.ORDER_CODE, &lt;br /&gt;
SH.JOB_BLOCK, &lt;br /&gt;
SH.CUSTOM_1, &lt;br /&gt;
SH.CUSTOM_2, &lt;br /&gt;
SH.USAGE_TYPE, &lt;br /&gt;
SH.DOC_LINK,  &lt;br /&gt;
&lt;br /&gt;
// sales detail fields&lt;br /&gt;
SD.LINE_NO TCK_LINE_NO,  &lt;br /&gt;
SD.COMMENT_FLAG,  &lt;br /&gt;
SD.UNIT_PRICE,  &lt;br /&gt;
SD.LIST_PRICE,  &lt;br /&gt;
SD.UNIT_DISC,  &lt;br /&gt;
SD.STD_DISC,  &lt;br /&gt;
SD.QTY_SOLD,  &lt;br /&gt;
SD.PRODUCT_CODE,  &lt;br /&gt;
SD.UNIT_OF_MEASURE,  &lt;br /&gt;
SD.DESCRIPTION,  &lt;br /&gt;
SD.TAX_CODE,  &lt;br /&gt;
SD.TAX_CODE_2,  &lt;br /&gt;
SD.TAX_CODE_3,  &lt;br /&gt;
SD.PRICE_SOURCE,  &lt;br /&gt;
SD.GROSS_WEIGHT,  &lt;br /&gt;
SD.TARE_WEIGHT,  &lt;br /&gt;
SD.WEIGHT_UMS,  &lt;br /&gt;
SD.SCALE_WEIGHT_FLAG,  &lt;br /&gt;
SD.EXT_PRICE,  .99.27&lt;br /&gt;
&lt;br /&gt;
      // salesperson fields&lt;br /&gt;
SP.DESCRIPTION SALESPERSON_NAME,  &lt;br /&gt;
&lt;br /&gt;
      // product fields&lt;br /&gt;
PR.ROLLUP_FLAG,   &lt;br /&gt;
PR.PRODUCT_TYPE,  &lt;br /&gt;
PR.DESCRIPTION_1 PROD_DESCRIPTION_1,  &lt;br /&gt;
PR.DESCRIPTION_2 PROD_DESCRIPTION_2,&lt;br /&gt;
PR.BASE_PRODUCT  &lt;br /&gt;
&lt;br /&gt;
// usage class fields&lt;br /&gt;
UC.DESCRIPTION USAGE_DESC,  .32&lt;br /&gt;
&lt;br /&gt;
// plant fields&lt;br /&gt;
PT.PLANT_NAME TCK_PLANT_NAME, &lt;br /&gt;
PT.PLANT_SCREEN_ID TCK_PLANT_SCREEN_ID,  &lt;br /&gt;
&lt;br /&gt;
// division fields&lt;br /&gt;
//DV.DIVISION_NO,  &lt;br /&gt;
DV.DIVISION_NAME, &lt;br /&gt;
&lt;br /&gt;
// tax authority fields  &lt;br /&gt;
TA.DESCRIPTION TAX_AUTH_DESC  &lt;br /&gt;
&amp;lt;/PRE&amp;gt;			  &lt;br /&gt;
&lt;br /&gt;
==Calculated Fields==&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
CALC_RETADDR1, CALC_RETADDR2, CALC_RETADDR3,&lt;br /&gt;
 CALC_RETADDR4, CALC_INVOICEDATE, CALC_CUSTADDR1,&lt;br /&gt;
 CALC_CUSTADDR2, CALC_CUSTADDR3, CALC_CUSTADDR4,&lt;br /&gt;
 CALC_INVMSG1, CALC_INVMSG2, CALC_INVMSG3,&lt;br /&gt;
 CALC_INVMSG4, CALC_CREDITTERMS, CALC_INVOICENO,&lt;br /&gt;
 CALC_SUBTOTAL, CALC_NONTAXTOTAL, CALC_SALESTAX,&lt;br /&gt;
 CALC_INVTOTAL, UNIT_PRICE, CALC_EXTPRICE,&lt;br /&gt;
 CALC_TAXIND, CALC_TAXAUTH, CALC_DISCOUNTLINE,&lt;br /&gt;
 CALC_DISCTOTAL, CALC_NFAGING1, CALC_NFAGING2,&lt;br /&gt;
 CALC_NFAGING3, CALC_NFAGING4, CALC_NFAGING5,&lt;br /&gt;
 CALC_NFAGING4&amp;amp;5, CALC_FINCHGBAL, CALC_AGING1,&lt;br /&gt;
 CALC_AGING2, CALC_AGING3, CALC_AGING4,&lt;br /&gt;
 CALC_AGING5, CALC_AGING4&amp;amp;5, CALC_DISCBALDUE,&lt;br /&gt;
 COND_NONTAXTOTAL, CALC_UMS, CALC_UMSTOTAL,&lt;br /&gt;
 COND_PRODUCTTOTALS, CALC_UMSTOTALLINE, JOB_PO_LOC,&lt;br /&gt;
 CALC_DISCDATE, CALC_TAXRATEPCT, CALC_TAXINDYN,&lt;br /&gt;
 CALC_MATLTOTAL, CALC_DELVTOTAL, QTY_SOLD,&lt;br /&gt;
 CALC_TKROLL_MATLTOTAL, CALC_TKROLL_DELVTOTAL, CALC_TKROLL_TAXTOTAL,&lt;br /&gt;
 CALC_TKROLL_TKTTOTAL, CALC_TAXABLETOTAL, ORDER_CODE,&lt;br /&gt;
 TAX_RATE, SPLIT_RATE, SPLIT_LIMIT,&lt;br /&gt;
 PLANT_NAME, PLANT_SCREEN_ID, PLANT_ADDRESS_1,&lt;br /&gt;
 PLANT_ADDRESS_2, PLANT_PHONE_NO, CUST_USER_1,&lt;br /&gt;
 CUST_USER_2, CALC_PAYMENTTOTAL, CALC_NETDUE,&lt;br /&gt;
 CALC_PRIORARBAL, CALC_NEWARBAL, TICKET_JOB,&lt;br /&gt;
 PS_DESCRIPTION, PS_QUANTITY, PS_U_OF_M,&lt;br /&gt;
 PS_PRODUCT_CODE, PS_UNIT_PRICE, PS_EXT_PRICE,&lt;br /&gt;
 CALC_VOIDFLAGMSG,&lt;br /&gt;
 PS_TAX_IND,  &lt;br /&gt;
 TS_PLANT_NO, TS_TICKET_NO,  &lt;br /&gt;
 COND_TICKET_LINE_1,  &lt;br /&gt;
 COND_PRICE_ROLLUP,  &lt;br /&gt;
 COND_COD_CUST, COND_CASH_CUST,  &lt;br /&gt;
 TAX_DESC_1, TAX_DESC_2, TAX_DESC_3,  &lt;br /&gt;
 DOC_ID,  &lt;br /&gt;
 CALC_INVBAL&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1128</id>
		<title>Keystone Forms</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1128"/>
		<updated>2025-07-14T18:10:25Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CATEGORY: FORMS]]&lt;br /&gt;
&lt;br /&gt;
While forms can be stored in the customer directory (e.g. ...\cust\forms), this should only be done if the form is specific to a computer.  Custom Forms belong in the database.&lt;br /&gt;
&lt;br /&gt;
==Sections==&lt;br /&gt;
===Form Section===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| BEGINCOPY &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| apply block of form only for nth copy&lt;br /&gt;
| applies to all form sections&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| CHAIN &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| the next form in the chain&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on each form&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COPIES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of copies of each form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| characters per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ENDCOPY&lt;br /&gt;
| indicates end of COPY block&lt;br /&gt;
|&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| FONTNAME &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| default font for the form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LENGTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines on the form&lt;br /&gt;
| impacts automatic page breaks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LINES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines for each label&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| Lines Per Inch - Vertical spacing between lines&lt;br /&gt;
| This will also change box sizing. Default: LPI 6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MARGIN &amp;lt;i&amp;gt;top,left,bottom,right&amp;lt;/i&amp;gt;&lt;br /&gt;
| specify page margins&lt;br /&gt;
| default is no margins&lt;br /&gt;
| 3.6.18.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION EXTEND_DETAIL&lt;br /&gt;
| allow form detail to extend into footer area&lt;br /&gt;
|&lt;br /&gt;
| 2.1.4&lt;br /&gt;
|-&lt;br /&gt;
| OPTION IMAGE_FIX&lt;br /&gt;
| fix image drawing issue&lt;br /&gt;
| some printers print border on right/bottom edge of images&lt;br /&gt;
| 3.2.3.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION LANDSCAPE&lt;br /&gt;
| force landscape orientation for the form&lt;br /&gt;
|&lt;br /&gt;
| 2.6&lt;br /&gt;
|-&lt;br /&gt;
| OPTION SUMMARIZE_PRODUCTS&lt;br /&gt;
| summarize product totals when printing invoices&lt;br /&gt;
|&lt;br /&gt;
| 1.6.6&lt;br /&gt;
|-&lt;br /&gt;
| PDFPAGES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ALL&lt;br /&gt;
| number of PDF document pages to include on form&lt;br /&gt;
| default is first page only&lt;br /&gt;
| 4.3.9.10&lt;br /&gt;
|-&lt;br /&gt;
| PRINTER &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| creates a virtual printer name&lt;br /&gt;
| Keystone can map this name to a physical printer with different settings per user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TITLE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| descriptive name of this form&lt;br /&gt;
| some options display this to the user when selecting forms&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VERSION &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| indicates the version number of the form&lt;br /&gt;
| used for special processing by some Keystone options &lt;br /&gt;
| 2.5.25&lt;br /&gt;
|-&lt;br /&gt;
| WIDTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on the form&lt;br /&gt;
| increase as needed but keep in mind this will reduce the font size&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Heading===&lt;br /&gt;
Information that prints 1 time at the top of the form.&lt;br /&gt;
&lt;br /&gt;
Alternate headings (e.g. &amp;quot;HEADING 4&amp;quot;) are used in certain types of forms for special sections of a form.&lt;br /&gt;
&lt;br /&gt;
===Detail===&lt;br /&gt;
Information that repeats for each line of detail.&lt;br /&gt;
&lt;br /&gt;
Certain forms may have alternate detail lines with unique behavior.  This could be an alternate type of detail or sub-detail.  e.g. &amp;quot;DETAIL 2&amp;quot; on an invoice is used to print comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Total===&lt;br /&gt;
Information that prints at the bottom of the form.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| NEWPAGE&lt;br /&gt;
| Start new page on a form&lt;br /&gt;
| Only verified for Total Section&lt;br /&gt;
| 3.3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample Total with a NEWPAGE:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
TOTAL  &lt;br /&gt;
&lt;br /&gt;
     LINE 42&lt;br /&gt;
&lt;br /&gt;
COLUMN 41&lt;br /&gt;
     BOX 5,24,0,20&lt;br /&gt;
     BOX 5,24&lt;br /&gt;
     BOX 5,36&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SUB TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SUBTOTAL&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SALES TAX-&lt;br /&gt;
                COLUMN 54  FIELD TAX_AUTHORITY&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SALESTAX&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT TICKET TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_TICKETTOTAL&lt;br /&gt;
     NEWPAGE &lt;br /&gt;
&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
        LINE +1 COLUMN 30       TEXT *** WARNING ***&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Cement is not good for you and It doesn't taste very good.&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Do not eat cement or stuff made from cement.  Do not eat &lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Tide Pods either.&lt;br /&gt;
        LINE +1 COLUMN 1        LEFT IMAGE 2&lt;br /&gt;
! DoNotEatCement.jpg&lt;br /&gt;
        LINE +3 COLUMN 13       TEXT RECEIVED BY:&lt;br /&gt;
                COLUMN 26       TEXT ________________________________________&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working With Forms==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formats===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
        LINE +1 COLUMN 1        FORMAT mm/dd/yy         FIELD TICKET_DATE &lt;br /&gt;
                COLUMN 10       RIGHT 7                 FIELD TICKET_NO&lt;br /&gt;
                COLUMN 18       FORMAT ####0.00         FIELD QTY_SOLD&lt;br /&gt;
                COLUMN 27                               FIELD UNIT_OF_MEASURE&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Date:''' The date April 5, 2018 with a format of '''mm/dd/yy''' will print as '''04/05/18''',  '''mm/dd/yyyy''' as '''4/05/2018'''&lt;br /&gt;
*'''Right/Left''' Slide text to the right or left of the designated space.  &lt;br /&gt;
*'''Numbers with # and 0:'''  '''#''' is a placeholder that prints if needed.  '''0''' will always print a value.  Example: 403.25 printed with a format of '''####0.00''' prints as &amp;quot;  403.25&amp;quot;, with a format of '''00000.00''' as &amp;quot;00403.25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Comments===&lt;br /&gt;
Lines that begin with a ! are comments.  They can be removed as needed.&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!   AVAILABLE CALCULATED FIELDS&lt;br /&gt;
!   ===========================&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
&lt;br /&gt;
In form Maintenance, select '''Load''' on the Images tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Image:Frm ld img.png]]&lt;br /&gt;
Load the image.&lt;br /&gt;
&lt;br /&gt;
When Setting up the form, refer to the image by number.  The following code places an image in column 3, scaled to be 12 characters wide:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
LINE 2 COLUMN 3&lt;br /&gt;
LEFT 12 IMAGE 2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conditions===&lt;br /&gt;
Conditions can be used to change the printed form logic, based on a field or form conditional value (Example 1.) When using &amp;quot;IF&amp;quot; with a field, the form will run the logic if the field is '''not''' null or zero (Example 2.)&lt;br /&gt;
&lt;br /&gt;
You can nest &amp;quot;IF&amp;quot; statements with &amp;quot;ELSE&amp;quot; to do multiple condition checks (Example 3.) Insert the first &amp;quot;IF&amp;quot; condition, then use &amp;quot;ELSE&amp;quot; followed by another &amp;quot;IF&amp;quot; statement. Note: If &amp;quot;ELSE&amp;quot; is on the same line as &amp;quot;IF&amp;quot; it will give unintended results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!EXAMPLE 1 -- Print &amp;quot;INTERNAL USE ONLY&amp;quot; if COND_INTERNAL is met.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 8 TEXT INTERNAL USE ONLY&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 2 -- Print UNIT_PRICE, if UNIT_PRICE is not null or zero.&lt;br /&gt;
IF UNIT_PRICE&lt;br /&gt;
COLUMN 16 FIELD UNIT_PRICE&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 3 -- Print PRODUCT_COST if COND_INTERNAL is met, otherwise print UNIT_PCT_DISC if it is not null or zero. If COND_INTERNAL is not met and UNIT_PCT_DISC is null or zero, nothing will print.&lt;br /&gt;
!          -- Note that only ONE &amp;quot;ENDIF&amp;quot; is used despite the use of TWO &amp;quot;IF&amp;quot; statements.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 70       FORMAT ####.000         FIELD PRODUCT_COST&lt;br /&gt;
ELSE&lt;br /&gt;
IF UNIT_PCT_DISC            &lt;br /&gt;
COLUMN 70       RIGHT 8                 FIELD CALC_DISCOUNT&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHAIN command: Creating Multiple Forms ===&lt;br /&gt;
The Chain command allows multiple forms to print at one time.  These forms can be identical or unique, and can print to multiple printers.&lt;br /&gt;
&lt;br /&gt;
The Chain command is used in the FORM section.&lt;br /&gt;
Syntax: CHAIN [formname].FRM   (e.g. CHAIN ARTCK.FRM)&lt;br /&gt;
&lt;br /&gt;
In order to use multiple printers, make sure that the printer ALIAS is unique for each of the forms.  Make sure to update the Plant to point to the correct form. Then in Ticket Printing/ Printer setup you can assign each alias to a printer.  &lt;br /&gt;
&lt;br /&gt;
When mixing a special form and a standard form, it is probably best to have the special form chain to the standard form.  This prevents you from needing to create a new standard form and makes setting up the printers easier.  The Printer setup develops the Alias list from the primary form for each plant.  So if a special form with a unique alias is used as the primary form for a plant, then that Alias will appear on the list.&lt;br /&gt;
&lt;br /&gt;
===Bar Codes===&lt;br /&gt;
Here is a section from a sample ticket form file that shows how to print barcodes on ticket forms.&lt;br /&gt;
&lt;br /&gt;
NOTE that this should work in a similar way for dot-matrix (With EPSON emulation) and laser printers. However, for dot-matrix printers the only (currently) supported bar code format is Code 39. For laser/inkjet printers you must have a bar code font available on the printer, and you would specify that font name where you see “FONTNAME BARCODE39” in the sample below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
FORM&lt;br /&gt;
LENGTH 66       WIDTH 80        PRINTER ARTicket&lt;br /&gt;
     FONTNAME VERDANA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HEADING&lt;br /&gt;
     LINE 1     COLUMN 1                   &lt;br /&gt;
                FONTNAME BARCODE39&lt;br /&gt;
                     FORMAT 00000000      FIELD TICKET_NO                &lt;br /&gt;
                FONTNAME DEFAULT&lt;br /&gt;
&lt;br /&gt;
     LINE 8     COLUMN 5                   FIELD PLANT_NO&lt;br /&gt;
           COLUMN 10  FORMAT #0&amp;quot;:&amp;quot;00       FIELD TICKET_TIME&lt;br /&gt;
           COLUMN 30                       FIELD TRUCK_NO&lt;br /&gt;
           COLUMN 38                       FIELD DRIVER_NAME&lt;br /&gt;
           COLUMN 58  FORMAT MM/DD/YY      FIELD TICKET_DATE&lt;br /&gt;
           COLUMN 71                       &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boxes/Shading===&lt;br /&gt;
&lt;br /&gt;
The BOX command may be used in any form printing section (Heading, Detail, Total.) The syntax is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
BOX Height, Width [,Weight [,Shading [,Color]]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;BOX 1,76,0,20,clYellow&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Height and Width are expressed in printed characters.&lt;br /&gt;
&lt;br /&gt;
Weight is optional (default is 8 pixels) and indicates the number of pixels for the box border. The border is drawn in the current COLOR setting (black is default.)&lt;br /&gt;
&lt;br /&gt;
Shading is optional (default is no shading) and specifies the shading percentage (0-100.) Lower shading is brighter color, higher shading is darker color.&lt;br /&gt;
&lt;br /&gt;
(Keystone 3.6.4.7+) Color is optional (default is black) and specifies the shading color.  The borders are drawn in the current font color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;When Color is black it is treated as white internally, meaning that a lower shading will tend toward white (no shading) while a higher shading will tend toward black.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
:[[Keystone Form Colors]]&lt;br /&gt;
:[[Sample Forms]]&lt;br /&gt;
:[[Payroll: Form Versions]]&lt;br /&gt;
:[[Invoice Form Fields]] &lt;br /&gt;
:[[Ticket Form Fields]]&lt;br /&gt;
:[[AP Check Form Fields]]&lt;br /&gt;
:[[Quote Form Fields]]&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Quote_Form_Fields&amp;diff=1127</id>
		<title>Quote Form Fields</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Quote_Form_Fields&amp;diff=1127"/>
		<updated>2025-06-25T19:39:27Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quote form Fields&lt;br /&gt;
(Oct. 10, 2019 ver. 3.6)&lt;br /&gt;
&lt;br /&gt;
Part of [[Keystone Forms]]&lt;br /&gt;
&lt;br /&gt;
===Selected Fields===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
CAST(' + IntToStr(i) + ' AS INTEGER) LOCPRODCLASS, &lt;br /&gt;
QH.PROSPECT_NO, QH.JOB_PO_LOC, QH.SALESPERSON, QC.D_AND_B_RATING, &lt;br /&gt;
QH.FOLLOW_UP_DATE, QH.WON_LOST_FLAG, QH.REASON_CODE, &lt;br /&gt;
QH.QUOTE_DATE, QH.LAST_REVISED_DATE,&lt;br /&gt;
QH.EXPIRATION_DATE, QH.SESSION_NO, QH.TRANS_NO, QD.LINE_NO, &lt;br /&gt;
QH.*, QD.*, &lt;br /&gt;
QC.NAME, &lt;br /&gt;
QC.ADDRESS_1, &lt;br /&gt;
QC.ADDRESS_2, &lt;br /&gt;
QC.CITY, &lt;br /&gt;
QC.STATE, &lt;br /&gt;
QC.ZIP, &lt;br /&gt;
QC.CLASS, &lt;br /&gt;
QC.D_AND_B_RATING, &lt;br /&gt;
QC.PHONE_NO CUST_PHONE_NO, &lt;br /&gt;
QC.FAX_NO CUST_FAX_NO, &lt;br /&gt;
(0) TAX_RATE, &lt;br /&gt;
SL.DESCRIPTION SLSPN_NAME, &lt;br /&gt;
SL.JOB_TITLE SLSPN_JOB_TITLE, &lt;br /&gt;
SL.PHONE_NO SLSPN_PHONE_NO, &lt;br /&gt;
SL.CELL_NO SLSPN_CELL_NO, &lt;br /&gt;
SL.FAX_NO SLSPN_FAX_NO, &lt;br /&gt;
SL.EMAIL SLSPN_EMAIL, &lt;br /&gt;
SL.USER_1 SLSPN_USER_1, &lt;br /&gt;
SL.USER_2 SLSPN_USER_2, &lt;br /&gt;
SL.SIGNATURE_IMAGE SL_SIGNATURE_IMAGE, &lt;br /&gt;
SL.SIGNATURE_IMAGE_EXT SL_SIGNATURE_IMAGE_EXT, &lt;br /&gt;
CT.DESCRIPTION TERMS_DESC, &lt;br /&gt;
PL.PLANT_NAME, PL.PLANT_SCREEN_ID, &lt;br /&gt;
PL.ADDRESS_1 PLANT_ADDRESS_1, PL.ADDRESS_2 PLANT_ADDRESS_2, &lt;br /&gt;
PL.PHONE_NO PLANT_PHONE_NO, &lt;br /&gt;
PR.PRODUCT_TYPE, PR.PLANT_NO PROD_PLANT_NO, &lt;br /&gt;
PL2.PLANT_NAME PROD_PLANT_NAME, PL2.PLANT_SCREEN_ID PROD_PLANT_SCREEN_ID, &lt;br /&gt;
UC.DESCRIPTION USAGE_DESC &lt;br /&gt;
FROM ' + VIEW_QTPROSP_CUST_LIST + ' QC &lt;br /&gt;
INNER JOIN ' + TBL_QTJOBHD + ' QH ON (QH.PROSPECT_NO = QC.PROSPECT_NO) &lt;br /&gt;
INNER JOIN ' + TBL_QTJOBDT + ' QD ON (QH.SESSION_NO = QD.SESSION_NO) AND (QH.TRANS_NO = QD.TRANS_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARSLSPER + ' SL ON (QH.SALESPERSON = SL.CLASS_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARCTMCLS + ' CT ON (QH.TERMS_CLASS = CT.CLASS_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARPROD + ' PR ON (PR.PRODUCT_CODE = QD.PRODUCT_CODE) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARPLANT + ' PL ON (PL.PLANT_NO = QH.PLANT_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARPLANT + ' PL2 ON (PL2.PLANT_NO = PR.PLANT_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_DIUSECLS + ' UC ON (UC.CLASS_NO = QH.USAGE_TYPE)&lt;br /&gt;
PROD_DESCRIPTION_1 (4.7.4)&lt;br /&gt;
PROD_DESCRIPTION_2 (4.7.4)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calculated Fields===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
CALC_CUSTADDR1&lt;br /&gt;
CALC_CUSTADDR2&lt;br /&gt;
CALC_CUSTADDR3&lt;br /&gt;
CALC_CUSTADDR4&lt;br /&gt;
CALC_RETADDR1&lt;br /&gt;
CALC_RETADDR2&lt;br /&gt;
CALC_RETADDR3&lt;br /&gt;
CALC_RETADDR4&lt;br /&gt;
CALC_SYSDATE&lt;br /&gt;
CALC_ORDTAXABLE&lt;br /&gt;
CALC_ORDNONTAX&lt;br /&gt;
CALC_ORDSUBTOTAL&lt;br /&gt;
CALC_ORDTAXTOTAL&lt;br /&gt;
CALC_ORDTOTAL&lt;br /&gt;
CALC_LISTSUBTOTAL&lt;br /&gt;
CALC_LISTTAXTOTAL&lt;br /&gt;
CALC_LISTTOTAL&lt;br /&gt;
CALC_SAVINGS&lt;br /&gt;
CALC_DISCOUNT&lt;br /&gt;
CALC_COSTTOTAL&lt;br /&gt;
CALC_PROFIT&lt;br /&gt;
COND_PRTRETADDR&lt;br /&gt;
COND_INTERNAL&lt;br /&gt;
COND_PRTLISTS&lt;br /&gt;
CALC_USERID&lt;br /&gt;
CALC_EXTPRICE&lt;br /&gt;
CALC_DISC_UNITPRICE&lt;br /&gt;
CALC_DISC_EXTPRICE&lt;br /&gt;
COND_COMMENT&lt;br /&gt;
CALC_DISCTOTAL&lt;br /&gt;
CALC_DISC_ORDSUBTOTAL&lt;br /&gt;
CALC_DISC_ORDTOTAL&lt;br /&gt;
CALC_UNIT_DISC&lt;br /&gt;
CALC_UNIT_TAX&lt;br /&gt;
CALC_UNIT_NET&lt;br /&gt;
CONDITION_1&lt;br /&gt;
CONDITION_2&lt;br /&gt;
CONDITION_3&lt;br /&gt;
CONDITION_4&lt;br /&gt;
CONDITION_5&lt;br /&gt;
CONDITION_6&lt;br /&gt;
CONDITION_7&lt;br /&gt;
CONDITION_8&lt;br /&gt;
CONDITIONS (LEFT 80 - FORMAT MEMO)&lt;br /&gt;
CALC_DISCTAXTOTAL&lt;br /&gt;
CALC_DISCTAX_ORDTOTAL&lt;br /&gt;
CALC_DISCSAVINGS&lt;br /&gt;
COND_PRODTYPE_MIX&lt;br /&gt;
COND_PRODTYPE_ING&lt;br /&gt;
COND_PRODTYPE_AGG&lt;br /&gt;
COND_PRODTYPE_DEL&lt;br /&gt;
CALC_UMS&lt;br /&gt;
CALC_UMSTOTAL&lt;br /&gt;
COND_PRODUCTTOTALS&lt;br /&gt;
CALC_UMSTOTALLINE (AFTER DETAIL)&lt;br /&gt;
CONTACT_EMAIL&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Salesperson Signature Image===&lt;br /&gt;
&lt;br /&gt;
To print the salesperson's signature image on the quote form, use this line in the form file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COLUMN 1	LEFT 20	IMAGEFIELD SL_SIGNATURE SALESPERSON&lt;br /&gt;
                                                ^^^^^^^^^^^ -- the field in the quote table representing the Salesperson Id&lt;br /&gt;
                                   ^^^^^^^^^^^^ -- this specifies the salesperson signature image&lt;br /&gt;
                     ^^ -- controls the horizontal width of the signature image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Quote_Form_Fields&amp;diff=1126</id>
		<title>Quote Form Fields</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Quote_Form_Fields&amp;diff=1126"/>
		<updated>2025-06-25T19:39:14Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quote form Fields&lt;br /&gt;
(Oct. 10, 2019 ver. 3.6)&lt;br /&gt;
&lt;br /&gt;
Part of :[[Keystone Forms]]&lt;br /&gt;
&lt;br /&gt;
===Selected Fields===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
CAST(' + IntToStr(i) + ' AS INTEGER) LOCPRODCLASS, &lt;br /&gt;
QH.PROSPECT_NO, QH.JOB_PO_LOC, QH.SALESPERSON, QC.D_AND_B_RATING, &lt;br /&gt;
QH.FOLLOW_UP_DATE, QH.WON_LOST_FLAG, QH.REASON_CODE, &lt;br /&gt;
QH.QUOTE_DATE, QH.LAST_REVISED_DATE,&lt;br /&gt;
QH.EXPIRATION_DATE, QH.SESSION_NO, QH.TRANS_NO, QD.LINE_NO, &lt;br /&gt;
QH.*, QD.*, &lt;br /&gt;
QC.NAME, &lt;br /&gt;
QC.ADDRESS_1, &lt;br /&gt;
QC.ADDRESS_2, &lt;br /&gt;
QC.CITY, &lt;br /&gt;
QC.STATE, &lt;br /&gt;
QC.ZIP, &lt;br /&gt;
QC.CLASS, &lt;br /&gt;
QC.D_AND_B_RATING, &lt;br /&gt;
QC.PHONE_NO CUST_PHONE_NO, &lt;br /&gt;
QC.FAX_NO CUST_FAX_NO, &lt;br /&gt;
(0) TAX_RATE, &lt;br /&gt;
SL.DESCRIPTION SLSPN_NAME, &lt;br /&gt;
SL.JOB_TITLE SLSPN_JOB_TITLE, &lt;br /&gt;
SL.PHONE_NO SLSPN_PHONE_NO, &lt;br /&gt;
SL.CELL_NO SLSPN_CELL_NO, &lt;br /&gt;
SL.FAX_NO SLSPN_FAX_NO, &lt;br /&gt;
SL.EMAIL SLSPN_EMAIL, &lt;br /&gt;
SL.USER_1 SLSPN_USER_1, &lt;br /&gt;
SL.USER_2 SLSPN_USER_2, &lt;br /&gt;
SL.SIGNATURE_IMAGE SL_SIGNATURE_IMAGE, &lt;br /&gt;
SL.SIGNATURE_IMAGE_EXT SL_SIGNATURE_IMAGE_EXT, &lt;br /&gt;
CT.DESCRIPTION TERMS_DESC, &lt;br /&gt;
PL.PLANT_NAME, PL.PLANT_SCREEN_ID, &lt;br /&gt;
PL.ADDRESS_1 PLANT_ADDRESS_1, PL.ADDRESS_2 PLANT_ADDRESS_2, &lt;br /&gt;
PL.PHONE_NO PLANT_PHONE_NO, &lt;br /&gt;
PR.PRODUCT_TYPE, PR.PLANT_NO PROD_PLANT_NO, &lt;br /&gt;
PL2.PLANT_NAME PROD_PLANT_NAME, PL2.PLANT_SCREEN_ID PROD_PLANT_SCREEN_ID, &lt;br /&gt;
UC.DESCRIPTION USAGE_DESC &lt;br /&gt;
FROM ' + VIEW_QTPROSP_CUST_LIST + ' QC &lt;br /&gt;
INNER JOIN ' + TBL_QTJOBHD + ' QH ON (QH.PROSPECT_NO = QC.PROSPECT_NO) &lt;br /&gt;
INNER JOIN ' + TBL_QTJOBDT + ' QD ON (QH.SESSION_NO = QD.SESSION_NO) AND (QH.TRANS_NO = QD.TRANS_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARSLSPER + ' SL ON (QH.SALESPERSON = SL.CLASS_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARCTMCLS + ' CT ON (QH.TERMS_CLASS = CT.CLASS_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARPROD + ' PR ON (PR.PRODUCT_CODE = QD.PRODUCT_CODE) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARPLANT + ' PL ON (PL.PLANT_NO = QH.PLANT_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_ARPLANT + ' PL2 ON (PL2.PLANT_NO = PR.PLANT_NO) &lt;br /&gt;
LEFT OUTER JOIN ' + TBL_DIUSECLS + ' UC ON (UC.CLASS_NO = QH.USAGE_TYPE)&lt;br /&gt;
PROD_DESCRIPTION_1 (4.7.4)&lt;br /&gt;
PROD_DESCRIPTION_2 (4.7.4)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calculated Fields===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
CALC_CUSTADDR1&lt;br /&gt;
CALC_CUSTADDR2&lt;br /&gt;
CALC_CUSTADDR3&lt;br /&gt;
CALC_CUSTADDR4&lt;br /&gt;
CALC_RETADDR1&lt;br /&gt;
CALC_RETADDR2&lt;br /&gt;
CALC_RETADDR3&lt;br /&gt;
CALC_RETADDR4&lt;br /&gt;
CALC_SYSDATE&lt;br /&gt;
CALC_ORDTAXABLE&lt;br /&gt;
CALC_ORDNONTAX&lt;br /&gt;
CALC_ORDSUBTOTAL&lt;br /&gt;
CALC_ORDTAXTOTAL&lt;br /&gt;
CALC_ORDTOTAL&lt;br /&gt;
CALC_LISTSUBTOTAL&lt;br /&gt;
CALC_LISTTAXTOTAL&lt;br /&gt;
CALC_LISTTOTAL&lt;br /&gt;
CALC_SAVINGS&lt;br /&gt;
CALC_DISCOUNT&lt;br /&gt;
CALC_COSTTOTAL&lt;br /&gt;
CALC_PROFIT&lt;br /&gt;
COND_PRTRETADDR&lt;br /&gt;
COND_INTERNAL&lt;br /&gt;
COND_PRTLISTS&lt;br /&gt;
CALC_USERID&lt;br /&gt;
CALC_EXTPRICE&lt;br /&gt;
CALC_DISC_UNITPRICE&lt;br /&gt;
CALC_DISC_EXTPRICE&lt;br /&gt;
COND_COMMENT&lt;br /&gt;
CALC_DISCTOTAL&lt;br /&gt;
CALC_DISC_ORDSUBTOTAL&lt;br /&gt;
CALC_DISC_ORDTOTAL&lt;br /&gt;
CALC_UNIT_DISC&lt;br /&gt;
CALC_UNIT_TAX&lt;br /&gt;
CALC_UNIT_NET&lt;br /&gt;
CONDITION_1&lt;br /&gt;
CONDITION_2&lt;br /&gt;
CONDITION_3&lt;br /&gt;
CONDITION_4&lt;br /&gt;
CONDITION_5&lt;br /&gt;
CONDITION_6&lt;br /&gt;
CONDITION_7&lt;br /&gt;
CONDITION_8&lt;br /&gt;
CONDITIONS (LEFT 80 - FORMAT MEMO)&lt;br /&gt;
CALC_DISCTAXTOTAL&lt;br /&gt;
CALC_DISCTAX_ORDTOTAL&lt;br /&gt;
CALC_DISCSAVINGS&lt;br /&gt;
COND_PRODTYPE_MIX&lt;br /&gt;
COND_PRODTYPE_ING&lt;br /&gt;
COND_PRODTYPE_AGG&lt;br /&gt;
COND_PRODTYPE_DEL&lt;br /&gt;
CALC_UMS&lt;br /&gt;
CALC_UMSTOTAL&lt;br /&gt;
COND_PRODUCTTOTALS&lt;br /&gt;
CALC_UMSTOTALLINE (AFTER DETAIL)&lt;br /&gt;
CONTACT_EMAIL&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Salesperson Signature Image===&lt;br /&gt;
&lt;br /&gt;
To print the salesperson's signature image on the quote form, use this line in the form file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COLUMN 1	LEFT 20	IMAGEFIELD SL_SIGNATURE SALESPERSON&lt;br /&gt;
                                                ^^^^^^^^^^^ -- the field in the quote table representing the Salesperson Id&lt;br /&gt;
                                   ^^^^^^^^^^^^ -- this specifies the salesperson signature image&lt;br /&gt;
                     ^^ -- controls the horizontal width of the signature image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1125</id>
		<title>Keystone Forms</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1125"/>
		<updated>2025-06-25T19:36:56Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: /* Formats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CATEGORY: FORMS]]&lt;br /&gt;
&lt;br /&gt;
While forms can be stored in the customer directory (e.g. ...\cust\forms), this should only be done if the form is specific to a computer.  Custom Forms belong in the database.&lt;br /&gt;
&lt;br /&gt;
==Sections==&lt;br /&gt;
===Form Section===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| BEGINCOPY &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| apply block of form only for nth copy&lt;br /&gt;
| applies to all form sections&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| CHAIN &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| the next form in the chain&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on each form&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COPIES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of copies of each form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| characters per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ENDCOPY&lt;br /&gt;
| indicates end of COPY block&lt;br /&gt;
|&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| FONTNAME &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| default font for the form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LENGTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines on the form&lt;br /&gt;
| impacts automatic page breaks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LINES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines for each label&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| lines per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MARGIN &amp;lt;i&amp;gt;top,left,bottom,right&amp;lt;/i&amp;gt;&lt;br /&gt;
| specify page margins&lt;br /&gt;
| default is no margins&lt;br /&gt;
| 3.6.18.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION EXTEND_DETAIL&lt;br /&gt;
| allow form detail to extend into footer area&lt;br /&gt;
|&lt;br /&gt;
| 2.1.4&lt;br /&gt;
|-&lt;br /&gt;
| OPTION IMAGE_FIX&lt;br /&gt;
| fix image drawing issue&lt;br /&gt;
| some printers print border on right/bottom edge of images&lt;br /&gt;
| 3.2.3.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION LANDSCAPE&lt;br /&gt;
| force landscape orientation for the form&lt;br /&gt;
|&lt;br /&gt;
| 2.6&lt;br /&gt;
|-&lt;br /&gt;
| OPTION SUMMARIZE_PRODUCTS&lt;br /&gt;
| summarize product totals when printing invoices&lt;br /&gt;
|&lt;br /&gt;
| 1.6.6&lt;br /&gt;
|-&lt;br /&gt;
| PDFPAGES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ALL&lt;br /&gt;
| number of PDF document pages to include on form&lt;br /&gt;
| default is first page only&lt;br /&gt;
| 4.3.9.10&lt;br /&gt;
|-&lt;br /&gt;
| PRINTER &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| creates a virtual printer name&lt;br /&gt;
| Keystone can map this name to a physical printer with different settings per user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TITLE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| descriptive name of this form&lt;br /&gt;
| some options display this to the user when selecting forms&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VERSION &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| indicates the version number of the form&lt;br /&gt;
| used for special processing by some Keystone options &lt;br /&gt;
| 2.5.25&lt;br /&gt;
|-&lt;br /&gt;
| WIDTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on the form&lt;br /&gt;
| increase as needed but keep in mind this will reduce the font size&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Heading===&lt;br /&gt;
Information that prints 1 time at the top of the form.&lt;br /&gt;
&lt;br /&gt;
Alternate headings (e.g. &amp;quot;HEADING 4&amp;quot;) are used in certain types of forms for special sections of a form.&lt;br /&gt;
&lt;br /&gt;
===Detail===&lt;br /&gt;
Information that repeats for each line of detail.&lt;br /&gt;
&lt;br /&gt;
Certain forms may have alternate detail lines with unique behavior.  This could be an alternate type of detail or sub-detail.  e.g. &amp;quot;DETAIL 2&amp;quot; on an invoice is used to print comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Total===&lt;br /&gt;
Information that prints at the bottom of the form.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| NEWPAGE&lt;br /&gt;
| Start new page on a form&lt;br /&gt;
| Only verified for Total Section&lt;br /&gt;
| 3.3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample Total with a NEWPAGE:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
TOTAL  &lt;br /&gt;
&lt;br /&gt;
     LINE 42&lt;br /&gt;
&lt;br /&gt;
COLUMN 41&lt;br /&gt;
     BOX 5,24,0,20&lt;br /&gt;
     BOX 5,24&lt;br /&gt;
     BOX 5,36&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SUB TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SUBTOTAL&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SALES TAX-&lt;br /&gt;
                COLUMN 54  FIELD TAX_AUTHORITY&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SALESTAX&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT TICKET TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_TICKETTOTAL&lt;br /&gt;
     NEWPAGE &lt;br /&gt;
&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
        LINE +1 COLUMN 30       TEXT *** WARNING ***&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Cement is not good for you and It doesn't taste very good.&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Do not eat cement or stuff made from cement.  Do not eat &lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Tide Pods either.&lt;br /&gt;
        LINE +1 COLUMN 1        LEFT IMAGE 2&lt;br /&gt;
! DoNotEatCement.jpg&lt;br /&gt;
        LINE +3 COLUMN 13       TEXT RECEIVED BY:&lt;br /&gt;
                COLUMN 26       TEXT ________________________________________&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working With Forms==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formats===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
        LINE +1 COLUMN 1        FORMAT mm/dd/yy         FIELD TICKET_DATE &lt;br /&gt;
                COLUMN 10       RIGHT 7                 FIELD TICKET_NO&lt;br /&gt;
                COLUMN 18       FORMAT ####0.00         FIELD QTY_SOLD&lt;br /&gt;
                COLUMN 27                               FIELD UNIT_OF_MEASURE&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Date:''' The date April 5, 2018 with a format of '''mm/dd/yy''' will print as '''04/05/18''',  '''mm/dd/yyyy''' as '''4/05/2018'''&lt;br /&gt;
*'''Right/Left''' Slide text to the right or left of the designated space.  &lt;br /&gt;
*'''Numbers with # and 0:'''  '''#''' is a placeholder that prints if needed.  '''0''' will always print a value.  Example: 403.25 printed with a format of '''####0.00''' prints as &amp;quot;  403.25&amp;quot;, with a format of '''00000.00''' as &amp;quot;00403.25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Comments===&lt;br /&gt;
Lines that begin with a ! are comments.  They can be removed as needed.&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!   AVAILABLE CALCULATED FIELDS&lt;br /&gt;
!   ===========================&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
&lt;br /&gt;
In form Maintenance, select '''Load''' on the Images tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Image:Frm ld img.png]]&lt;br /&gt;
Load the image.&lt;br /&gt;
&lt;br /&gt;
When Setting up the form, refer to the image by number.  The following code places an image in column 3, scaled to be 12 characters wide:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
LINE 2 COLUMN 3&lt;br /&gt;
LEFT 12 IMAGE 2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conditions===&lt;br /&gt;
Conditions can be used to change the printed form logic, based on a field or form conditional value (Example 1.) When using &amp;quot;IF&amp;quot; with a field, the form will run the logic if the field is '''not''' null or zero (Example 2.)&lt;br /&gt;
&lt;br /&gt;
You can nest &amp;quot;IF&amp;quot; statements with &amp;quot;ELSE&amp;quot; to do multiple condition checks (Example 3.) Insert the first &amp;quot;IF&amp;quot; condition, then use &amp;quot;ELSE&amp;quot; followed by another &amp;quot;IF&amp;quot; statement. Note: If &amp;quot;ELSE&amp;quot; is on the same line as &amp;quot;IF&amp;quot; it will give unintended results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!EXAMPLE 1 -- Print &amp;quot;INTERNAL USE ONLY&amp;quot; if COND_INTERNAL is met.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 8 TEXT INTERNAL USE ONLY&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 2 -- Print UNIT_PRICE, if UNIT_PRICE is not null or zero.&lt;br /&gt;
IF UNIT_PRICE&lt;br /&gt;
COLUMN 16 FIELD UNIT_PRICE&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 3 -- Print PRODUCT_COST if COND_INTERNAL is met, otherwise print UNIT_PCT_DISC if it is not null or zero. If COND_INTERNAL is not met and UNIT_PCT_DISC is null or zero, nothing will print.&lt;br /&gt;
!          -- Note that only ONE &amp;quot;ENDIF&amp;quot; is used despite the use of TWO &amp;quot;IF&amp;quot; statements.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 70       FORMAT ####.000         FIELD PRODUCT_COST&lt;br /&gt;
ELSE&lt;br /&gt;
IF UNIT_PCT_DISC            &lt;br /&gt;
COLUMN 70       RIGHT 8                 FIELD CALC_DISCOUNT&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHAIN command: Creating Multiple Forms ===&lt;br /&gt;
The Chain command allows multiple forms to print at one time.  These forms can be identical or unique, and can print to multiple printers.&lt;br /&gt;
&lt;br /&gt;
The Chain command is used in the FORM section.&lt;br /&gt;
Syntax: CHAIN [formname].FRM   (e.g. CHAIN ARTCK.FRM)&lt;br /&gt;
&lt;br /&gt;
In order to use multiple printers, make sure that the printer ALIAS is unique for each of the forms.  Make sure to update the Plant to point to the correct form. Then in Ticket Printing/ Printer setup you can assign each alias to a printer.  &lt;br /&gt;
&lt;br /&gt;
When mixing a special form and a standard form, it is probably best to have the special form chain to the standard form.  This prevents you from needing to create a new standard form and makes setting up the printers easier.  The Printer setup develops the Alias list from the primary form for each plant.  So if a special form with a unique alias is used as the primary form for a plant, then that Alias will appear on the list.&lt;br /&gt;
&lt;br /&gt;
===Bar Codes===&lt;br /&gt;
Here is a section from a sample ticket form file that shows how to print barcodes on ticket forms.&lt;br /&gt;
&lt;br /&gt;
NOTE that this should work in a similar way for dot-matrix (With EPSON emulation) and laser printers. However, for dot-matrix printers the only (currently) supported bar code format is Code 39. For laser/inkjet printers you must have a bar code font available on the printer, and you would specify that font name where you see “FONTNAME BARCODE39” in the sample below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
FORM&lt;br /&gt;
LENGTH 66       WIDTH 80        PRINTER ARTicket&lt;br /&gt;
     FONTNAME VERDANA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HEADING&lt;br /&gt;
     LINE 1     COLUMN 1                   &lt;br /&gt;
                FONTNAME BARCODE39&lt;br /&gt;
                     FORMAT 00000000      FIELD TICKET_NO                &lt;br /&gt;
                FONTNAME DEFAULT&lt;br /&gt;
&lt;br /&gt;
     LINE 8     COLUMN 5                   FIELD PLANT_NO&lt;br /&gt;
           COLUMN 10  FORMAT #0&amp;quot;:&amp;quot;00       FIELD TICKET_TIME&lt;br /&gt;
           COLUMN 30                       FIELD TRUCK_NO&lt;br /&gt;
           COLUMN 38                       FIELD DRIVER_NAME&lt;br /&gt;
           COLUMN 58  FORMAT MM/DD/YY      FIELD TICKET_DATE&lt;br /&gt;
           COLUMN 71                       &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boxes/Shading===&lt;br /&gt;
&lt;br /&gt;
The BOX command may be used in any form printing section (Heading, Detail, Total.) The syntax is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
BOX Height, Width [,Weight [,Shading [,Color]]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;BOX 1,76,0,20,clYellow&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Height and Width are expressed in printed characters.&lt;br /&gt;
&lt;br /&gt;
Weight is optional (default is 8 pixels) and indicates the number of pixels for the box border. The border is drawn in the current COLOR setting (black is default.)&lt;br /&gt;
&lt;br /&gt;
Shading is optional (default is no shading) and specifies the shading percentage (0-100.) Lower shading is brighter color, higher shading is darker color.&lt;br /&gt;
&lt;br /&gt;
(Keystone 3.6.4.7+) Color is optional (default is black) and specifies the shading color.  The borders are drawn in the current font color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;When Color is black it is treated as white internally, meaning that a lower shading will tend toward white (no shading) while a higher shading will tend toward black.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
:[[Keystone Form Colors]]&lt;br /&gt;
:[[Sample Forms]]&lt;br /&gt;
:[[Payroll: Form Versions]]&lt;br /&gt;
:[[Invoice Form Fields]] &lt;br /&gt;
:[[Ticket Form Fields]]&lt;br /&gt;
:[[AP Check Form Fields]]&lt;br /&gt;
:[[Quote Form Fields]]&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1124</id>
		<title>Keystone Forms</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_Forms&amp;diff=1124"/>
		<updated>2025-06-25T19:35:42Z</updated>

		<summary type="html">&lt;p&gt;Mbarker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CATEGORY: FORMS]]&lt;br /&gt;
&lt;br /&gt;
While forms can be stored in the customer directory (e.g. ...\cust\forms), this should only be done if the form is specific to a computer.  Custom Forms belong in the database.&lt;br /&gt;
&lt;br /&gt;
==Sections==&lt;br /&gt;
===Form Section===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| BEGINCOPY &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| apply block of form only for nth copy&lt;br /&gt;
| applies to all form sections&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| CHAIN &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| the next form in the chain&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on each form&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| COPIES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of copies of each form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| CPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| characters per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ENDCOPY&lt;br /&gt;
| indicates end of COPY block&lt;br /&gt;
|&lt;br /&gt;
| 2.7.16&lt;br /&gt;
|-&lt;br /&gt;
| FONTNAME &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| default font for the form&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LENGTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines on the form&lt;br /&gt;
| impacts automatic page breaks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LINES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of lines for each label&lt;br /&gt;
| used for labels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| LPI &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| lines per inch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| MARGIN &amp;lt;i&amp;gt;top,left,bottom,right&amp;lt;/i&amp;gt;&lt;br /&gt;
| specify page margins&lt;br /&gt;
| default is no margins&lt;br /&gt;
| 3.6.18.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION EXTEND_DETAIL&lt;br /&gt;
| allow form detail to extend into footer area&lt;br /&gt;
|&lt;br /&gt;
| 2.1.4&lt;br /&gt;
|-&lt;br /&gt;
| OPTION IMAGE_FIX&lt;br /&gt;
| fix image drawing issue&lt;br /&gt;
| some printers print border on right/bottom edge of images&lt;br /&gt;
| 3.2.3.1&lt;br /&gt;
|-&lt;br /&gt;
| OPTION LANDSCAPE&lt;br /&gt;
| force landscape orientation for the form&lt;br /&gt;
|&lt;br /&gt;
| 2.6&lt;br /&gt;
|-&lt;br /&gt;
| OPTION SUMMARIZE_PRODUCTS&lt;br /&gt;
| summarize product totals when printing invoices&lt;br /&gt;
|&lt;br /&gt;
| 1.6.6&lt;br /&gt;
|-&lt;br /&gt;
| PDFPAGES &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ALL&lt;br /&gt;
| number of PDF document pages to include on form&lt;br /&gt;
| default is first page only&lt;br /&gt;
| 4.3.9.10&lt;br /&gt;
|-&lt;br /&gt;
| PRINTER &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| creates a virtual printer name&lt;br /&gt;
| Keystone can map this name to a physical printer with different settings per user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TITLE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt;&lt;br /&gt;
| descriptive name of this form&lt;br /&gt;
| some options display this to the user when selecting forms&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| VERSION &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| indicates the version number of the form&lt;br /&gt;
| used for special processing by some Keystone options &lt;br /&gt;
| 2.5.25&lt;br /&gt;
|-&lt;br /&gt;
| WIDTH &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt;&lt;br /&gt;
| number of columns on the form&lt;br /&gt;
| increase as needed but keep in mind this will reduce the font size&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Heading===&lt;br /&gt;
Information that prints 1 time at the top of the form.&lt;br /&gt;
&lt;br /&gt;
Alternate headings (e.g. &amp;quot;HEADING 4&amp;quot;) are used in certain types of forms for special sections of a form.&lt;br /&gt;
&lt;br /&gt;
===Detail===&lt;br /&gt;
Information that repeats for each line of detail.&lt;br /&gt;
&lt;br /&gt;
Certain forms may have alternate detail lines with unique behavior.  This could be an alternate type of detail or sub-detail.  e.g. &amp;quot;DETAIL 2&amp;quot; on an invoice is used to print comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Total===&lt;br /&gt;
Information that prints at the bottom of the form.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Comment&lt;br /&gt;
! Keystone Version&lt;br /&gt;
|-&lt;br /&gt;
| NEWPAGE&lt;br /&gt;
| Start new page on a form&lt;br /&gt;
| Only verified for Total Section&lt;br /&gt;
| 3.3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample Total with a NEWPAGE:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
TOTAL  &lt;br /&gt;
&lt;br /&gt;
     LINE 42&lt;br /&gt;
&lt;br /&gt;
COLUMN 41&lt;br /&gt;
     BOX 5,24,0,20&lt;br /&gt;
     BOX 5,24&lt;br /&gt;
     BOX 5,36&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SUB TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SUBTOTAL&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT SALES TAX-&lt;br /&gt;
                COLUMN 54  FIELD TAX_AUTHORITY&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_SALESTAX&lt;br /&gt;
&lt;br /&gt;
        LINE +1 COLUMN 44       TEXT TICKET TOTAL&lt;br /&gt;
                COLUMN 65       FORMAT ######.00        FIELD CALC_TICKETTOTAL&lt;br /&gt;
     NEWPAGE &lt;br /&gt;
&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
        LINE +1 COLUMN 30       TEXT *** WARNING ***&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Cement is not good for you and It doesn't taste very good.&lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Do not eat cement or stuff made from cement.  Do not eat &lt;br /&gt;
        LINE +1 COLUMN 10       TEXT Tide Pods either.&lt;br /&gt;
        LINE +1 COLUMN 1        LEFT IMAGE 2&lt;br /&gt;
! DoNotEatCement.jpg&lt;br /&gt;
        LINE +3 COLUMN 13       TEXT RECEIVED BY:&lt;br /&gt;
                COLUMN 26       TEXT ________________________________________&lt;br /&gt;
        LINE +2 COLUMN 1        &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working With Forms==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formats===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
        LINE +1 COLUMN 1        FORMAT mm/dd/yy         FIELD TICKET_DATE &lt;br /&gt;
                COLUMN 10       RIGHT 7                 FIELD TICKET_NO&lt;br /&gt;
                COLUMN 18       FORMAT ####0.00         FIELD QTY_SOLD&lt;br /&gt;
                COLUMN 27                               FIELD UNIT_OF_MEASURE&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Date:''' The date April 5, 2018 with a format of '''mm/dd/yy''' will print as '''04/05/2018''',  '''mm/dd/yyyy''' as '''4/05/2018'''&lt;br /&gt;
*'''Right/Left''' Slide text to the right or left of the designated space.  &lt;br /&gt;
*'''Numbers with # and 0:'''  '''#''' is a placeholder that prints if needed.  '''0''' will always print a value.  Example: 403.25 printed with a format of '''####0.00''' prints as &amp;quot;  403.25&amp;quot;, with a format of '''00000.00''' as &amp;quot;00403.25&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Comments===&lt;br /&gt;
Lines that begin with a ! are comments.  They can be removed as needed.&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!   AVAILABLE CALCULATED FIELDS&lt;br /&gt;
!   ===========================&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
&lt;br /&gt;
In form Maintenance, select '''Load''' on the Images tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Image:Frm ld img.png]]&lt;br /&gt;
Load the image.&lt;br /&gt;
&lt;br /&gt;
When Setting up the form, refer to the image by number.  The following code places an image in column 3, scaled to be 12 characters wide:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
LINE 2 COLUMN 3&lt;br /&gt;
LEFT 12 IMAGE 2&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conditions===&lt;br /&gt;
Conditions can be used to change the printed form logic, based on a field or form conditional value (Example 1.) When using &amp;quot;IF&amp;quot; with a field, the form will run the logic if the field is '''not''' null or zero (Example 2.)&lt;br /&gt;
&lt;br /&gt;
You can nest &amp;quot;IF&amp;quot; statements with &amp;quot;ELSE&amp;quot; to do multiple condition checks (Example 3.) Insert the first &amp;quot;IF&amp;quot; condition, then use &amp;quot;ELSE&amp;quot; followed by another &amp;quot;IF&amp;quot; statement. Note: If &amp;quot;ELSE&amp;quot; is on the same line as &amp;quot;IF&amp;quot; it will give unintended results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
!EXAMPLE 1 -- Print &amp;quot;INTERNAL USE ONLY&amp;quot; if COND_INTERNAL is met.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 8 TEXT INTERNAL USE ONLY&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 2 -- Print UNIT_PRICE, if UNIT_PRICE is not null or zero.&lt;br /&gt;
IF UNIT_PRICE&lt;br /&gt;
COLUMN 16 FIELD UNIT_PRICE&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
!EXAMPLE 3 -- Print PRODUCT_COST if COND_INTERNAL is met, otherwise print UNIT_PCT_DISC if it is not null or zero. If COND_INTERNAL is not met and UNIT_PCT_DISC is null or zero, nothing will print.&lt;br /&gt;
!          -- Note that only ONE &amp;quot;ENDIF&amp;quot; is used despite the use of TWO &amp;quot;IF&amp;quot; statements.&lt;br /&gt;
IF COND_INTERNAL&lt;br /&gt;
COLUMN 70       FORMAT ####.000         FIELD PRODUCT_COST&lt;br /&gt;
ELSE&lt;br /&gt;
IF UNIT_PCT_DISC            &lt;br /&gt;
COLUMN 70       RIGHT 8                 FIELD CALC_DISCOUNT&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHAIN command: Creating Multiple Forms ===&lt;br /&gt;
The Chain command allows multiple forms to print at one time.  These forms can be identical or unique, and can print to multiple printers.&lt;br /&gt;
&lt;br /&gt;
The Chain command is used in the FORM section.&lt;br /&gt;
Syntax: CHAIN [formname].FRM   (e.g. CHAIN ARTCK.FRM)&lt;br /&gt;
&lt;br /&gt;
In order to use multiple printers, make sure that the printer ALIAS is unique for each of the forms.  Make sure to update the Plant to point to the correct form. Then in Ticket Printing/ Printer setup you can assign each alias to a printer.  &lt;br /&gt;
&lt;br /&gt;
When mixing a special form and a standard form, it is probably best to have the special form chain to the standard form.  This prevents you from needing to create a new standard form and makes setting up the printers easier.  The Printer setup develops the Alias list from the primary form for each plant.  So if a special form with a unique alias is used as the primary form for a plant, then that Alias will appear on the list.&lt;br /&gt;
&lt;br /&gt;
===Bar Codes===&lt;br /&gt;
Here is a section from a sample ticket form file that shows how to print barcodes on ticket forms.&lt;br /&gt;
&lt;br /&gt;
NOTE that this should work in a similar way for dot-matrix (With EPSON emulation) and laser printers. However, for dot-matrix printers the only (currently) supported bar code format is Code 39. For laser/inkjet printers you must have a bar code font available on the printer, and you would specify that font name where you see “FONTNAME BARCODE39” in the sample below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
FORM&lt;br /&gt;
LENGTH 66       WIDTH 80        PRINTER ARTicket&lt;br /&gt;
     FONTNAME VERDANA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HEADING&lt;br /&gt;
     LINE 1     COLUMN 1                   &lt;br /&gt;
                FONTNAME BARCODE39&lt;br /&gt;
                     FORMAT 00000000      FIELD TICKET_NO                &lt;br /&gt;
                FONTNAME DEFAULT&lt;br /&gt;
&lt;br /&gt;
     LINE 8     COLUMN 5                   FIELD PLANT_NO&lt;br /&gt;
           COLUMN 10  FORMAT #0&amp;quot;:&amp;quot;00       FIELD TICKET_TIME&lt;br /&gt;
           COLUMN 30                       FIELD TRUCK_NO&lt;br /&gt;
           COLUMN 38                       FIELD DRIVER_NAME&lt;br /&gt;
           COLUMN 58  FORMAT MM/DD/YY      FIELD TICKET_DATE&lt;br /&gt;
           COLUMN 71                       &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boxes/Shading===&lt;br /&gt;
&lt;br /&gt;
The BOX command may be used in any form printing section (Heading, Detail, Total.) The syntax is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
BOX Height, Width [,Weight [,Shading [,Color]]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;BOX 1,76,0,20,clYellow&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Height and Width are expressed in printed characters.&lt;br /&gt;
&lt;br /&gt;
Weight is optional (default is 8 pixels) and indicates the number of pixels for the box border. The border is drawn in the current COLOR setting (black is default.)&lt;br /&gt;
&lt;br /&gt;
Shading is optional (default is no shading) and specifies the shading percentage (0-100.) Lower shading is brighter color, higher shading is darker color.&lt;br /&gt;
&lt;br /&gt;
(Keystone 3.6.4.7+) Color is optional (default is black) and specifies the shading color.  The borders are drawn in the current font color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;When Color is black it is treated as white internally, meaning that a lower shading will tend toward white (no shading) while a higher shading will tend toward black.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
:[[Keystone Form Colors]]&lt;br /&gt;
:[[Sample Forms]]&lt;br /&gt;
:[[Payroll: Form Versions]]&lt;br /&gt;
:[[Invoice Form Fields]] &lt;br /&gt;
:[[Ticket Form Fields]]&lt;br /&gt;
:[[AP Check Form Fields]]&lt;br /&gt;
:[[Quote Form Fields]]&lt;/div&gt;</summary>
		<author><name>Mbarker</name></author>
	</entry>
</feed>