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.
- Open Crystal Reports and click the Blank Report link on the Start page, or choose File → Log On or Off Server....
- Expand Create New Connection, then expand OLE DB (ADO)
- In the OLE DB Provider window, select Microsoft OLE DB Provider for SQL Server and click Next.
- The Connection Information dialogue box will open. See the Entering Connection Information section below for more information.
- 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.
- Open the report file (.rpt) in Crystal Reports.
- Press F5 to preview the report which will open the Connection Information window.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Click Set Datasource Location from the Database menu in Crystal Reports.
- Double-click the Active Connection (with plug icon) under My Connections.
- Double-click your company database (i.e., ACCTivate$CompanyID).
- Double-click dbo then Views to see a list of database view objects.
- You must re-link each database view (one-at-a-time).
- Click/Select the first Data View from the Current Data Source list (at the top).
- Click/Select the corresponding Data View in the Replace with list (at the bottom).
- Click Update.
- Click Close after you have updated each data view object.
- 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.
- Choose Field Explorer from the View menu in Crystal Reports.
- Right-click Parameter Fields and choose New….
- Enter a parameter from the list below in the Name field and click OK.
- 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:
- Right-click on the number field in the report and choose Format Field…
- Select the Number tab.
- Click Customize button.
- Select Number tab.
- Use the drop-down next to Decimals to select the maximum number of decimals (recommended = 1.0000000).
- Click X+2 button to the right of Decimals and paste formula code listed below.
- Adjust the minDecimals to be the minimum number of decimals to be displayed (currently 0).
- Use the drop-down next to Rounding to select the maximum number of decimals to be rounded (recommended = 0.0000001).
- Click X+2 button to the right of Rounding and paste formula code listed below.
- 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.
- In Crystal Reports, create a new formula.
- Change the formula syntax from Crystal Syntax to Basic Syntax.
- Copy the formula below and paste it into the formula field.
- 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 asDataToEncode = {Orders.OrderNumber}
. - Save your formula and place it in the report canvas.
- 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.
- In Crystal Reports, create a new formula.
- Change the formula syntax from Crystal Syntax to Basic Syntax.
- Copy the formula below and paste it into the formula field.
- 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 asDataToEncode = {Product.UPC}
. - Save your formula and place it in the report canvas.
- 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):
- Open the Printer and Scanners section of your computer.
- Click on the Printer and choose Manage.
- Open the Printing Preferences.
- Click on the Stocks tab.
- Click New.
- Create a new stock with the correct dimensions. Enter a Name that is unique but descriptive, e.g. "4x6".
- Save your changes and close this window.
- On the Options tab of the Printing Preferences window, select the Stock you just created.
- Save your changes and close the Printing Preferences window.
Crystal Reports Printer Setup
- In the Crystal Reports designer, go to the File menu and select Page Setup.
- If the option No Printer is enabled, remove it.
- From the printer driver drop down, select your printer driver.
- Under the Page Options section, uncheck Dissociate Formatting Page Size and Printer Paper Size.
- From the Page Options drop down, select the stock you setup previously.
- 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.