Search Results for

    Show / Hide Table of Contents

    Resources for Crystal Reports

    This guide provides resources for Crystal Reports and it's usage with Acctivate.

    Refer to our System Requirements for recommended Crystal Reports versions.

    Connect or Relink Crystal Reports Editor to Your Database

    Acctivate uses Crystal Report files which link directly to the Microsoft SQL Server database server. The standard reports included with Acctivate have already been linked to an Acctivate database and include common data views and fields which can be added to the report canvas. This allows for report designers to work within Crystal Reports even when access to the Acctivate database is not available. However, it is very helpful to have a “live connection” to the Acctivate database when customizing reports.

    Use the following procedures to 1) Connect To and 2) Re-link the Crystal Report to your Acctivate database.

    Connecting to the Acctivate Database

    Crystal Reports can be connected to your database so that the report has access your company's data views and fields. This will also allow you to design reports with the data available to you and also allows you to preview your data within Crystal Reports.

    Follow these steps below to connect a Crystal Reports file to your database for the first time or reconnect the file.

    Create a new report against an Acctivate database for the first time
    The first time you try to create a new report you may have be asked to enter the connection type and connection information.

    1. Open Crystal Reports and click the Blank Report link on the Start page, or choose File → Log On or Off Server....
    2. Expand Create New Connection, then expand OLE DB (ADO)
    3. In the OLE DB Provider window, select Microsoft OLE DB Provider for SQL Server and click Next.
    4. The Connection Information dialogue box will open. See the Entering Connection Information section below for more information.
    5. Once the connection has been created you can close the Data Explorer window and create a new report.

    Reconnect a report to an Acctivate database
    If the report file was created against an Acctivate database, simply enter the connection information for your database to connect the report to your data.

    1. Open the report file (.rpt) in Crystal Reports.
    2. Press F5 to preview the report which will open the Connection Information window.
    3. Proceed with the Entering Connection Information steps below.

    Entering Connection Information
    When connecting new and existing reports to your data you will be asked to enter the data source information.

    1. Server: Select the SQL Server/Instance from drop-down or enter it manually.
      • The Server is typically ComputerName\ACCTIVATE where ComputerName is the computer running SQL Server for Acctivate.
      • The Server can be found in the Database Sources list in Acctivate Database Maintenance. The Database Maintenance utility is typically found on the Windows Start Menu on the Acctivate server.
    2. User ID & Password: Acctivate uses the SQL Server “sa” user by default. Enter your Acctivate database password, or contact our support team if you need assistance.
    3. Database: Choose your company database from the drop-down list.
      • The database name is typically ACCTivate$CompanyID where CompanyID is the abbreviation of your company name.
    4. Integrated Security: This option bypasses SQL Server Authentication and requires that each Windows User Account has access to the Acctivate database.
      • This is a convenient option for developing Crystal Reports, as long as you have permission to directly access the SQL Server database.
    5. Click Finish to refresh the data in the report.
      • Login failed for user ‘sa’ is a common error that indicates you typed the connection information incorrectly. Double-check the database source settings and try again.
    6. The information displayed in our standard reports is from the Acctivate$Demo database.

    You can make changes against the Demo company and the report will still pull your company data.

    Link the Crystal Report to your Acctivate Database

    When a report is created against a SQL Database, the database name is stored with the database objects (i.e., the database views in the report). That means that when you preview one of the standard Acctivate reports against your database it may still show demo data since the standard reports were created against the demo database.

    Acctivate replaces the stored SQL Server and database information with your company database at run-time, however in order to preview reports with your data you may need to use the Set Datasource Location tool in Crystal Reports to re-link each database view to your database. This will allow you to make changes and review the results immediately within Crystal Reports.

    1. Click Set Datasource Location from the Database menu in Crystal Reports.
    2. Double-click the Active Connection (with plug icon) under My Connections.
    3. Double-click your company database (i.e., ACCTivate$CompanyID).
    4. Double-click dbo then Views to see a list of database view objects.
    5. You must re-link each database view (one-at-a-time).
      1. Click/Select the first Data View from the Current Data Source list (at the top).
      2. Click/Select the corresponding Data View in the Replace with list (at the bottom).
      3. Click Update.
    6. Click Close after you have updated each data view object.
    7. Refresh the report (press F5) and confirm your company data is now displayed.

    Formulas

    Crystal Reports has a formula language that can be used to evaluate data and render an output. The formulas listed below are commonly used in Acctivate reports.

    Parameters for Acctivate

    Since Crystal Reports is a database-driven report system, typically, all fields for reports must originate in the database.

    However, there are some fields that are not available in database fields that are useful for reports. These fields are handled by creating a “Parameter” in the Crystal Report file with a specific name.

    1. Choose Field Explorer from the View menu in Crystal Reports.
    2. Right-click Parameter Fields and choose New….
    3. Enter a parameter from the list below in the Name field and click OK.
    4. Place the newly created parameter on the report or use it in a formula.

    The following “company” parameters are supported. The values for these parameters are set in the Company Information section of Configuration Management.

    • _CompanyName
    • _CompanyAddress (full address)
    • _CompanyAddress1
    • _CompanyAddress2
    • _CompanyCity
    • _CompanyState
    • _CompanyZip
    • _CompanyCountry
    • _CompanyCityStateZip
    • _CompanyPhone
    • _CompanyFax
    • _CompanyEmail
    • _CompanyWeb
    • _CompanyEIN - QuickBooks US edition only
    • _CompanyVATNumber - QuickBooks UK Edition only
    • _CompanySSN - QuickBooks US edition only
    • _CompanyBusinessNumber - QuickBooks US Edition only

    There are a few additional parameters that can be used within Crystal Reports to supply information from the current Acctivate session:

    • _Selections - Includes the report filters in sentence form
    • _CurrentUserID
    • _CurrentUserName
    • _CurrentUserSalespersonID
    • _Edition - CYMA , QBUS, QBUK ,QBCA

    Automatically adjust the number of decimals displayed

    Crystal Reports does not include an option to automatically adjust the number of decimals for a Number field. However, this can be accomplished with a simple formula for each field on the report. The formula below will display the defined minimum number of decimals, and only show as many decimals as necessary.

    For example, a quantity field may be configured to show two decimals at all times. The database values 1, 1.5, 1.345 would appear as 1.00, 1.50, 1.35. Instead, using the formula below with a minimum decimals of 0 would result in the values being shown in their original form without any unnecessary decimals.

    In Crystal Reports, perform the following steps:

    1. Right-click on the number field in the report and choose Format Field…
    2. Select the Number tab.
    3. Click Customize button.
    4. Select Number tab.
    5. Use the drop-down next to Decimals to select the maximum number of decimals (recommended = 1.0000000).
    6. Click X+2 button to the right of Decimals and paste formula code listed below.
    7. Adjust the minDecimals to be the minimum number of decimals to be displayed (currently 0).
    8. Use the drop-down next to Rounding to select the maximum number of decimals to be rounded (recommended = 0.0000001).
    9. Click X+2 button to the right of Rounding and paste formula code listed below.
    10. Adjust the minDecimals to be the minimum number of decimals to be displayed (currently 0).

    Formula Code:

    WhilePrintingRecords;
    numberVar counter := 0;
    numberVar minDecimals := 0;
    numberVar num := CurrentFieldValue;
    while truncate(num) <> num and counter < 10 do
    (num := num * 10;
    counter := counter + 1);
    if counter < minDecimals then
    minDecimals
    else
    counter;
    

    Code 128 Barcode Formula

    The formula below can be used to encode a static value or a database value as a Code-128 barcode.

    1. In Crystal Reports, create a new formula.
    2. Change the formula syntax from Crystal Syntax to Basic Syntax.
    3. Copy the formula below and paste it into the formula field.
    4. Change the DataToEncode = "Ê8100712345Ê2112345678" line to include the value or field to encode. For example, to encode the sales order number, the line would be written as DataToEncode = {Orders.OrderNumber}.
    5. Save your formula and place it in the report canvas.
    6. Choose the appropriate IDAutomation font and font point size for the formula field.
    Tip

    To create a GS1-128 barcode with application identifiers, review the GS1 Application Identifiers section of the Mobile Configuration documentation.

    Formula Code:

    '****************************************************************************************
    ' IDAutomation Font Formula for Universal Barcode Fonts
    ' Compatibility: Crystal Reports 9 and above
    ' Font to use: IDAutomationUni
    ' Tutorial: http://www.idautomation.com/font-encoders/crystal-reports/font-formulas.html
    '
    ' Redistribution and use of this code in source and/or binary
    ' forms, with or without modification, are permitted provided
    ' that: (1) all copies of the source code retain the above
    ' unmodified copyright notice and this entire unmodified
    ' section of text, (2) You or Your organization owns a
    ' valid License to this product from IDAutomation.com
    ' and, (3) when any portion of this code is bundled in any
    ' form with an application, a valid notice must be provided
    ' within the user documentation, start-up screen or in the
    ' help-about section of the application that specifies
    ' IDAutomation.com as the provider of the Software bundled
    ' with the application.
    '****************************************************************************************
    Dim DataToEncode As String
    Dim ApplyTilde as number
    'Change the next line to connect to your data source; for example:
    'DataToEncode = ({Table.Field}) 
    DataToEncode = "Ê8100712345Ê2112345678"
    'Change the next line to use the process tilde functionality
    ' 1 is on
    ' 0 is off
    ApplyTilde = 0
    
    
    Dim I As Number
    Dim J As Number
    Dim DataToPrint As String
    Dim DataToFormat As String
    Dim OnlyCorrectData As String
    Dim Encoding As String
    Dim WeightedTotal As Number
    Dim WeightValue As Number
    Dim CurrentValue As Number
    Dim CheckDigitValue As Number
    Dim CheckDigit As Number
    Dim CurrentEncoding As String
    Dim CurrentChar As String
    Dim CurrentCharNum As Number
    Dim C128_StartA As String
    Dim C128_StartB As String
    Dim C128_StartC As String
    Dim C128_Stop As String
    Dim C128Start As String
    Dim C128CheckDigit As String
    Dim Fnc1 As String
    Dim LeadingDigit As Number
    Dim HumanReadableText As String
    Dim StringLength As Number
    Dim Char1 As String
    Dim Char2 As String
    Dim nwPattern As String
    Dim CorrectFNC As Number
    Dim PrintableString as String
    'Symbology set Arrays
    Dim SetC128() As String
    
    	 CorrectFNC = 0
    	'in case ApplyTilde is null, set it to false
    
    	PrintableString = ""
    	
    	'Additions for ApplyTilde 2-11-2005
    	If ApplyTilde=1 Then
    		OnlyCorrectData = ""
    		StringLength = Len(DataToEncode)
    		For I = 1 To StringLength
    			If (I < StringLength - 2) And Mid(DataToEncode, I, 2) = "~m" And IsNumeric(Mid(DataToEncode, I + 2, 2)) Then
    				WeightValue = Val(Mid(DataToEncode, I + 2, 2))
    				If (I - WeightValue) < 1 Then WeightValue = I - 1
    				Dim M10NumberData As String
    				Dim M10StringLength As Number
    				Dim M10OnlyCorrectData As String
    				Dim M10Factor As Number
    				Dim M10WeightedTotal As Number
    				Dim M10CheckDigit As Number
    				Dim M10I As Number
    	 
    				M10OnlyCorrectData = ""
    				M10StringLength = Len(M10NumberData)
    				For M10I = 1 To M10StringLength
    					'Add all numbers to OnlyCorrectData string
    					If IsNumeric(Mid(M10NumberData, M10I, 1)) Then M10OnlyCorrectData = M10OnlyCorrectData & Mid(M10NumberData, M10I, 1)
    				Next M10I
    				'<<<< Generate MOD 10 check digit >>>>
    				M10Factor = 3
    				M10WeightedTotal = 0
    				M10StringLength = Len(M10NumberData)
    				For M10I = M10StringLength To 1 Step -1
    				'Get the value of each number starting at the end
    				'CurrentCharNum = Mid(M10NumberData, I, 1)
    				'multiply by the weighting factor which is 3,1,3,1...
    				'and add the sum together
    					M10WeightedTotal = M10WeightedTotal + (Val(Mid(M10NumberData, M10I, 1)) * M10Factor)
    				'change factor for next calculation
    					M10Factor = 4 - M10Factor
    				Next M10I
    				'Find the CheckDigit by finding the smallest number that = a multiple of 10
    				M10I = (M10WeightedTotal Mod 10)
    				If M10I <> 0 Then
    					M10CheckDigit = (10 - M10I)
    				Else
    					M10CheckDigit = 0
    				End If
    				CheckDigitValue = M10CheckDigit
    				OnlyCorrectData = OnlyCorrectData & ChrW(CheckDigitValue + 48)
    				I = I + 3
    			ElseIf (I < StringLength - 2) And Mid(DataToEncode, I, 1) = "~" And IsNumeric(Mid(DataToEncode, I + 1, 3)) Then
    				CurrentCharNum = Val(Mid(DataToEncode, I + 1, 3))
    				OnlyCorrectData = OnlyCorrectData & ChrW(CurrentCharNum)
    				I = I + 3
    			Else
    			   OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1)
    			End If
    		Next I
    		DataToEncode = OnlyCorrectData
    	End If
    	
    	DataToFormat = DataToEncode
    	DataToEncode = ""
    	SetC128 = Array( _
    	"EFF", "FEF", "FFE", "BBG", "BCF", "CBF", "BFC", "BGB", "CFB", "FBC", _
    	"FCB", "GBB", "AFJ", "BEJ", "BFI", "AJF", "BIF", "BJE", "FJA", "FAJ", _
    	"FBI", "EJB", "FIB", "IEI", "IBF", "JAF", "JBE", "IFB", "JEB", "JFA", _
    	"EEG", "EGE", "GEE", "ACG", "CAG", "CCE", "AGC", "CEC", "CGA", "ECC", _
    	"GAC", "GCA", "AEK", "AGI", "CEI", "AIG", "AKE", "CIE", "IIE", "ECI", _
    	"GAI", "EIC", "EKA", "EII", "IAG", "ICE", "KAE", "IEC", "IGA", "KEA", _
    	"IMA", "FDA", "OAA", "ABH", "ADF", "BAH", "BDE", "DAF", "DBE", "AFD", _
    	"AHB", "BED", "BHA", "DEB", "DFA", "HBA", "FAD", "MIA", "HAB", "CMA", _
    	"ABN", "BAN", "BBM", "ANB", "BMB", "BNA", "MBB", "NAB", "NBA", "EEM", _
    	"EME", "MEE", "AAO", "ACM", "CAM", "AMC", "AOA", "MAC", "MCA", "AIM", _
    	"AMI", "IAM", "MAI", "EDB", "EBD", "EBJ")
    	'Here we select character set A, B or C for the START character
    	'Start A = "EDB"
    	'Start B = "EBD"
    	'Start C = "EBJ"
    	StringLength = Len(DataToFormat)
    	CurrentCharNum = AscW(Mid(DataToFormat, 1, 1))
    	'Set C?
    	If ((StringLength > 4) And IsNumeric(Mid(DataToFormat, 1, 4))) Then C128Start = "EBJ"
    	'Set A?
    	If CurrentCharNum < 32 Then C128Start = "EDB"
    	'Set B?
    	If CurrentCharNum > 31 And CurrentCharNum < 127 Then C128Start = "EBD"
    	If CurrentCharNum = 197 Then C128Start = "EBD"
    	'202 & 212-215 is for the FNC1, with this Start C is mandatory
    	If CurrentCharNum = 202 Then C128Start = "EBJ"
    	If CurrentCharNum > 211 Then C128Start = "EBJ"
    	If C128Start = "EDB" Then CurrentEncoding = "A"
    	If C128Start = "EBD" Then CurrentEncoding = "B"
    	If C128Start = "EBJ" Then CurrentEncoding = "C"
    	For I = 1 To StringLength
    		CurrentCharNum = AscW(Mid(DataToFormat, I, 1))
    		'check for FNC2 which is ASCII 197 in any set other than C
    		If (CurrentCharNum = 197) Then
    			If CurrentEncoding = "C" Then 'switch to B
    				DataToEncode = DataToEncode & ChrW(200)
    				CurrentEncoding = "B"
    			End If
    			DataToEncode = DataToEncode & ChrW(197)
    		End If
    		'check for FNC1 in any set which is ASCII 202 and ASCII 212-215
    		If ((CurrentCharNum = 202) Or (CurrentCharNum > 212)) Then
    			DataToEncode = DataToEncode & ChrW(202)
    		'check for switching to character set C
    		ElseIf ((I < StringLength - 2) And (IsNumeric(Mid(DataToFormat, I, 1))) And (IsNumeric(Mid(DataToFormat, I + 1, 1))) And (IsNumeric(Mid(DataToFormat, I, 4)))) Or ((I < StringLength) And (IsNumeric(Mid(DataToFormat, I, 1))) And (IsNumeric(Mid(DataToFormat, I + 1, 1))) And (CurrentEncoding = "C")) Then
    		'switch to set C if not already in it
    			If CurrentEncoding <> "C" Then DataToEncode = DataToEncode & ChrW(199)
    			CurrentEncoding = "C"
    			CurrentChar = Mid(DataToFormat, I, 2)
    			CurrentValue = Val(CurrentChar)
    			'set the CurrentValue to the number of String CurrentChar
    			DataToEncode = DataToEncode & ChrW(CurrentValue + 32)
    			I = I + 1
    		'check for switching to character set A
    		ElseIf (I <= StringLength) And ((AscW(Mid(DataToFormat, I, 1)) < 31) Or ((CurrentEncoding = "A") And (AscW(Mid(DataToFormat, I, 1)) > 32 And (AscW(Mid(DataToFormat, I, 1))) < 96))) Then
    			'switch to set A if not already in it
    			If CurrentEncoding <> "A" Then DataToEncode = DataToEncode & ChrW(201)
    			CurrentEncoding = "A"
    			'Get the ASCII value of the next character
    			CurrentCharNum = AscW(Mid(DataToFormat, I, 1))
    			If CurrentCharNum < 32 Then
    				DataToEncode = DataToEncode & ChrW(CurrentCharNum + 96)
    			ElseIf CurrentCharNum > 32 Then
    				DataToEncode = DataToEncode & ChrW(CurrentCharNum)
    			End If
    		'check for switching to character set B
    		ElseIf (I <= StringLength) And (((AscW(Mid(DataToFormat, I, 1))) > 31) And ((AscW(Mid(DataToFormat, I, 1)))) < 127) Then
    			'switch to set B if not already in it
    			If CurrentEncoding <> "B" Then DataToEncode = DataToEncode & ChrW(200)
    			CurrentEncoding = "B"
    			'Get the ASCII value of the next character
    			CurrentCharNum = AscW(Mid(DataToFormat, I, 1))
    			DataToEncode = DataToEncode & ChrW(CurrentCharNum)
    		End If
    	Next I
     
    	'<<<< Calculate Modulo 103 Check Digit >>>>
    	If C128Start = "EDB" Then WeightedTotal = 103 'CurrentEncoding = "A"
    	If C128Start = "EBD" Then WeightedTotal = 104 'CurrentEncoding = "B"
    	If C128Start = "EBJ" Then WeightedTotal = 105 'CurrentEncoding = "C"
    	StringLength = Len(DataToEncode)
    	For I = 1 To StringLength
    		CurrentCharNum = AscW(Mid(DataToEncode, I, 1))
    		If CurrentCharNum < 135 Then CurrentValue = CurrentCharNum - 32
    		If CurrentCharNum > 134 Then CurrentValue = CurrentCharNum - 100
    		If CurrentCharNum = 194 Then CurrentValue = 0
    
    		PrintableString = PrintableString & SetC128(CurrentValue+1)
    		CurrentValue = CurrentValue * I
    		WeightedTotal = WeightedTotal + CurrentValue 
    	Next I
    	CheckDigitValue = (WeightedTotal Mod 103)
    	DataToEncode = ""
    	'GIAH produces the stop character.
    	'Formula = C128Start & PrintableString & SetC128(CheckDigitValue) & ChrW(206) & "GIAH" & "j"
    	formula = C128Start & PrintableString & SetC128(CheckDigitValue+1) & "GIAH"
    

    UPC Barcode Formula

    The formula below can be used to encode a static value or a database value as a UPC-A barcode.

    1. In Crystal Reports, create a new formula.
    2. Change the formula syntax from Crystal Syntax to Basic Syntax.
    3. Copy the formula below and paste it into the formula field.
    4. Change the DataToEncode = "Ê8100712345Ê2112345678" line to include the value or field to encode. For example, to encode the product's primary UPC, the line would be written as DataToEncode = {Product.UPC}.
    5. Save your formula and place it in the report canvas.
    6. Choose the appropriate IDAutomation font and font point size for the formula field.
    Note

    The UPC encoding formula should only be used for twelve digit UPC numbers

    Formula Code:

    '*********************************************************************
    '*  IDAutomation Barcode Font Formulas for Crystal Reports 4.01
    '*  Copyright, IDAutomation.com, Inc. 2000-2004. All rights reserved.
    '*
    '*  You may incorporate our Source Code in your application
    '*  only if you own a valid license from IDAutomation.com, Inc.
    '*  for the associated font and the copyright notices are not
    '*  removed from the source code.
    '*
    '*  Formula: UPCa - formats output to IDAutomationUPCEAN fonts
    '*  Tutorial: http://www.BizFonts.com/crystal/
    '*********************************************************************
    Dim DataToEncode As String
    'Change the next line to connect to your data source; for example:
    'DataToEncode = {Table1.UPC}
    DataToEncode = "123456789012" 
    
    Dim I As Number
    Dim CheckDigit As Number
    Dim WeightedTotal As Number
    Dim CurrentCharNum As Number
    Dim Factor As Number
    Dim StringLength As Number
    Dim CurrentChar As Number
    'Dim StringLength As Number
    Dim Encoding As String
    Dim DataToPrint As String
    Dim OnlyCorrectData As String
    Dim CurrentEncoding As String
    DataToPrint = ""
    OnlyCorrectData = ""
    StringLength = Len(DataToEncode)
    For I = 1 To StringLength
      If IsNumeric(Mid(DataToEncode, I, 1)) Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1)
    Next I
    If Len(OnlyCorrectData) < 11 Then DataToEncode = "00000000000"
    If Len(OnlyCorrectData) = 11 Then DataToEncode = OnlyCorrectData
    If Len(OnlyCorrectData) > 11 Then DataToEncode = Mid(OnlyCorrectData, 1, 11)
    Factor = 3
    WeightedTotal = 0
    For I = Len(DataToEncode) To 1 Step -1
      CurrentCharNum = Val(Mid(DataToEncode, I, 1))
      WeightedTotal = WeightedTotal + CurrentCharNum * Factor
      Factor = 4 - Factor
    Next I
    I = (WeightedTotal Mod 10)
    If I <> 0 Then
      CheckDigit = (10 - I)
    Else
      CheckDigit = 0
    End If
    DataToEncode = DataToEncode & CheckDigit
    StringLength = Len(DataToEncode)
    For I = 1 To StringLength
      CurrentCharNum = Asc(Mid(DataToEncode, I, 1))
      Select Case I
      Case 1
           If (CurrentCharNum-48) > 4 Then DataToPrint = Chr(CurrentCharNum + 64) & "(" & Chr(CurrentCharNum + 49)
           If (CurrentCharNum-48) < 5 Then DataToPrint = Chr(CurrentCharNum + 37) & "(" & Chr(CurrentCharNum + 49)
      Case 2
           DataToPrint = DataToPrint & Chr(CurrentCharNum)
      Case 3
           DataToPrint = DataToPrint & Chr(CurrentCharNum)
      Case 4
           DataToPrint = DataToPrint & Chr(CurrentCharNum)
      Case 5
           DataToPrint = DataToPrint & Chr(CurrentCharNum)
      Case 6
           DataToPrint = DataToPrint & Chr(CurrentCharNum) & "*"
      Case 7
           DataToPrint = DataToPrint & Chr(CurrentCharNum + 27)
      Case 8
           DataToPrint = DataToPrint & Chr(CurrentCharNum + 27)
      Case 9
           DataToPrint = DataToPrint & Chr(CurrentCharNum + 27)
      Case 10
           DataToPrint = DataToPrint & Chr(CurrentCharNum + 27)
      Case 11
           DataToPrint = DataToPrint & Chr(CurrentCharNum + 27)
      Case 12
           If (CurrentCharNum-48) > 4 Then DataToPrint = DataToPrint & Chr(CurrentCharNum + 59) & "(" & Chr(CurrentCharNum + 64)
           If (CurrentCharNum-48) < 5 Then DataToPrint = DataToPrint & Chr(CurrentCharNum + 59) & "(" & Chr(CurrentCharNum + 37)
      End Select
    Next I
    Formula = DataToPrint & " "
    

    Formatting Labels for Printing

    Creating labels in Crystal Reports requires planning and preparation to ensure that the labels print properly.

    Printer Preparation
    You should have your printer installed and accessible from the computer where your copy of Crystal Reports designer is installed. If you are designing the report in a development environment and do not have access to the production printer then you should install the printer's drivers and add the printer manually.

    Once you've setup your printer drivers, it's recommended that you setup a custom stock in the printer properties (if designing the report in a development environment then you will need to perform these steps in the production environment):

    1. Open the Printer and Scanners section of your computer.
    2. Click on the Printer and choose Manage.
    3. Open the Printing Preferences.
    4. Click on the Stocks tab.
    5. Click New.
    6. Create a new stock with the correct dimensions. Enter a Name that is unique but descriptive, e.g. "4x6".
    7. Save your changes and close this window.
    8. On the Options tab of the Printing Preferences window, select the Stock you just created.
    9. Save your changes and close the Printing Preferences window.

    Crystal Reports Printer Setup

    1. In the Crystal Reports designer, go to the File menu and select Page Setup.
    2. If the option No Printer is enabled, remove it.
    3. From the printer driver drop down, select your printer driver.
    4. Under the Page Options section, uncheck Dissociate Formatting Page Size and Printer Paper Size.
    5. From the Page Options drop down, select the stock you setup previously.
    6. Click OK to save your changes.

    You can now proceed to design or modify your label. The completed report should be checked into the database in the Report Catalog window.

    Tip

    If your label contains a barcode, you may need to ensure that the barcode font is support and enabled for the printer. This option varies per printer, but typically there is a Barcode Font tab in the Printing Preferences dialogue window.

    Define Printer Assignments
    When previewing a report in Acctivate, the report is generated on screen based on the default printer's properties. This can be problematic if the computer's default printer uses a different paper size, such as 8.5 x 11, than the paper size the report was designed for, such as 4 x 6.

    To prevent issues, the label printer should be assigned as the default for this report by setting up the Printer Assignment. This will ensure that when you preview the label in Acctivate, the report is rendered based on the label printer's properties and not the computer's default printer's properties.

    In This Article
    Back to top © 2025 Alterity, LLC. All rights reserved. acctivate.com