Monday, June 29, 2009

Goldmine: Activity Tab Names

A client asked: I use the Filter function when I try to find an activity (e.g. email) in the Pending or History columns, but I still struggle to find specific people or activities. Is this improved in GMPE?

It sure is - Goldmine Premium has many new features, one of which allows you to show the contact name in the Pending and History tabs.

To do this, make the following change:

* Select Tools > Options > Record
* Check the "Show contact name on activity tab"
* Click OK

Now instead of struggling to find an email from a certain person at your largest client, it’s easy to sort or filter on the contact name and quickly find that email you're looking for.

Goldmine: LinkedIn GM+View

A client wants to know: Is there a way to use the GM+View to integrate LinkedIn with the current contact?

Sure, this business networking site is rapidly growing in popularity and a GM+View based on the Goldmine contact name is a great way to utilize the power of LinkedIn and Goldmine.

* Select Web > Setup GM+View
* Click New > Enter LinkedIn as Template Name
* Click in the large text box > click
* Erase or overwrite the html in the box with the following:

Note: To receive a text file with the html below, send an email to with a subject line of "LinkedIn"

Save the GM+View and when it opens, it will place the contact name in the LinkedIn search and return the LinkedIn results. This is usually close enough, but if not, you can also type in the LinkedIn contact you are looking for in the Keyword Search.

Goldmine: Slow Searches?

A client recently asked: I am using Goldmine Premium and the searches seem slow. Is there a way to correct this?

When you double-click a field to lookup by contact name, Goldmine does a search where the contact name begins with nothing which returns the entire database! Unless you can start typing before Goldmine starts searching, you will find your search to be slow.

You can modify this behavior by using a function called the "Lookup Alignment Delay". By modifying this, you give yourself more time to start typing in the search box before Goldmine starts searching the entire database.

To adjust, do the following:

* Select Tools > Options > Lookup tab
* Modify the Lookup Alignment Delay to 7 (7/10th of second)

This should provide you ample time to start typing your search criteria. If not, move it up to 9 or 10. If you are really quick, move it down to 4 or 5.

This setting can be different for everyone, so test different delays until you get the right one for you.

Goldmine: Got Notes?

A client asked: We use the Notes tab for preliminary information for suspects and prospects. Is there a way to put a check mark on the Notes tab so we know that it contains information?

Using the Notes tab for generic or preliminary information such as directions or comments about the contact is useful. However, unless you go into the Notes tab there is no way to know there is something there. To indicate you have Notes in a contact, use the following to put "Have Notes" on the upper half of the contact window.

* First, while logged in with master rights, Right-Click > New Field.
* Select dBASE Expression and Click OK.
* Move the field to an area of the screen where you have open space
* Double-click and add "Has Notes" (with quotes) in Field Data area
* Select the Color tab and add the following to Data Color
* Select Expression and type in iif(trim(notes) > ' ', 255, 16777215)
* On the Layout tab, set Field Label to 0 and Data Size to 10.
* Click OK.

Now when a contact has data in the Notes field, Has Notes will appear under the Address fields in the upper half of the Contact.

Goldmine: Finding Contacts

A client wants to know: We communicate with prospects and customers primarily by email. Is there a way to find contacts without an email address?

Yes, you can use a SQL query to show you all your contacts without an email address.

To do this, select GoldMine’s main menu, choose Lookup > SQL Queries then copy and paste the code below into the top section then click Query. If you are using GoldMine Premium Edition then use Tools > Filters & Groups and the SQL Query tab.


select company, contact, city, state, zip, key1, key2, key3, key4, key5 from contact1 where accountno not in (select accountno from contsupp where contact = 'E-mail Address' and rectype = 'P') order by company, contact


You will see your results and if they appear useful use the 'Save' button to reuse this later on. Within the results, you can Right-Click > Output To > Excel to save the results, print them, and further analyze.

Goldmine: Finding Unlinked Emails

A client asked: We have a number of emails which were filed without being linked to a contact. Is it possible to find these emails?

Yes, you could use a SQL query. Add the following to the SQL Query textbox in Goldmine:

select * from MailBox where AccountNo is Null

This will return unlinked emails and the results can be used to build a group. From this, the emails can be linked to the correct contact.

Goldmine: More Contact Information

A client asked: We use the GM+View for driving directions to clients. Are there other views that are available?

Sure, to search on a client email, you would do the following. This places the email address in Google and returns information about the current contact.

To implement this GM+View:

* Open the GM+View > Click New
* Type Contact Google Search as the name
* Click in the large text box > click
* Highlight the html in the box > Delete it

Enter the hmtl below:
Note: to receive a text file with the html below, send an email to with a subject line of "Google Search"

Save the view and make sure there is a valid email address in the contact. This should be automatically placed in Google and searched. You may be surprised with the information you find!

Note: For a large collection of GM+Views and lots of other Goldmine explanations, tips and enhanced functionality, check out the "Goldmine Hackers Guide" by DJ Hunt

Goldmine: Pipeline Funnel

A client asked: How are the rungs in the Pipeline Funnel determined?

GoldMine’s Opportunity Manager gives companies and individuals an easy way to manage and track sales throughout the sales cycle with the Pipeline Funnel.

For salespeople and managers the Pipeline Funnel gives you an overview of the number of opportunities and total dollar value of the opportunities at each stage of the sales process.

To use the Pipeline Funnel:

Determine whether you want to see all opportunities, the opportunities of a user group, or a single users’ opportunities. This is done by changing the Manager drop down in the Opportunity Manager.

Then click the funnel icon, above and to the left of the Manager.

In the center of the rungs of the funnel will be the stage, “10 – Initial Contact, etc.” as well as the number of opportunities in that stage. Then to the right of each rung will be the total dollar value of those opportunities, and their percentage of the total sales. In the very top rung, the gray area, will be the total forecast and total # of sales.

The rungs are determined by the F2 lookup for Stage field within the Opportunity Manager.

Goldmine: Tracking Your Sales Pipeline

A client wants to know: We want to start tracking our Sales Pipeline using Goldmine. Where do we start?

To maintain an accurate and up to date pipeline, you need to make sure you update an Opportunity after each visit or call to a prospect. Forgetting to create that opportunity and a good prospect can end up "falling through the cracks". Below is a simple trick to make the process of creating a new opportunity easier and part your daily workflow.

* When completing an activity, e.g. a call or appointment, if it’s a good prospect, click the “New” button in the Complete window to create a new opportunity for the prospect.

* After clicking New, you’ll be asked to confirm who the opportunity is for. You can accept the default record or select another. Select Opportunity and any template that might be appropriate.

* Then complete the basic information and click OK. The opportunity will show up in the Opportunity Manager

This information can be used in the Pipeline Funnel, Goldmine and Crystal reports to better track your sales pipeline.

Goldmine: Auto Fill Text Boxes

A client asked: Do we have to use the pop-up selection method for required fields? Is there a way to fill in the closest match on some fields and use the pop-up selection on others.

Yes, whether to use a pop-up or auto-fill is controlled on a field by field basis. To use the auto-fill method, do the following:

* Click on the F2 lookup icon > click on Setup
* Check the auto-fill option
* When the user starts typing, the closest match will appear
* If Force Valid Input is unchecked, the user entry will be accepted
* If Force Valid Input is checked, the user must select from the list

For many users, the auto-fill is preferred since it functions like other software packages. Also, auto-fill is especially useful if you have exceptionally large F2 Lookup lists. Auto-fill is unchecked by default.

Sunday, June 28, 2009

HEAT: Passing Crystal Parameters

A client asked: Is there a way to add information to a Crystal report without filling in the pop-up parameters?

Yes, there is a trick using HEAT Call Logging that uses data inside a Call record to populate the parameters. Below is how you configure the built-in utility:

* Select Report > Manage Reports
* Add a report with a parameter
* Select "All Assignments by Assignee."
* Go to the Report Parameters tab
* Click on the Assignee parameter
* Click the first checkbox: Preset parameter values
* Click Add, then hit insert Assignment.Assignee

When using this function, Crystal Reports will not prompt for the parameter. This will run the report and take the Assignee from the Call record.

HEAT: Call Log Shortcuts

A client recently asked: Is there a way to avoid using the tabs? Our users do not complete functions that require opening a tab.

Yes, it is actually quite easy to place a number of functions on the Call Log form to avoid the need to open a tab. Some of the functions called from the front form are: Save Call, Create Assignment, Create Journal, and Go To Ticket

To develop this functionality, you need to use the Administrator module and create an edit set. This will allow you to add buttons to the front screen to run many functions without ever going to another tab.

Below are the instructions to Save a Ticket:

* Select Administrator > Select New Edit Set
* Select Call Log > Open Form
* Select Command Button > Place of the form
* Select Control > Connect Autotask
* Select the "Save a Call" autotask > Click OK

Commit the edit and open Call Logging. A new catalog should be created and then you will see the new Save a Call button. Clicking on this will save the call. Use this process to create other buttons as outlined above.

Note: In order for these buttons to be set up, separate AutoTasks need to be created that perform each of these functions. Once these AutoTasks are created, they can be linked to the buttons via an Edit Set or Quick Customize using the HEAT Administrator module.

HEAT: Effective Calendar

A client recently asked: Is it possible to use a specific Calendar based on the Call Log or Assignment data?

Yes, you can pass a calendar from a ticket through BPAM. Passing a calendar constraint on a call record or assignment is often overlooked. Depending on the specific data of a call record or assignment, you can assign a calendar instead of forcing all records to use a single calendar in a BPAM rule.

To do this, you need:
* A field in the Call Log table for Calendar name
* A BPAM rule (If ticket stays unchanged for X amount of time)
* A Calendar to be used

To create this, do the following:
* Use Administrator to add the "Effective Calendar" field to the Call Log table.
* Commit the edit set.
* Create a BPAM rule "If a ticket stays unchanged for x amount of time"
* Add the new calendar field to the "Field" drop-down box in BPAM*
* Add the calendar definition in Hours of Operation

Now, depending the data in the Call Ticket, the user can assign a calendar instead of all users being forced to use the same calendar.

HEAT: Separate Tickets by Team

A client asked: We want to restrict tickets within the HEAT database so that only a member of a department can see their tickets. Is this possible?

Yes, you can separate tickets within HEAT based on security rights so other groups within your organization can use the same HEAT database. This requires well thought out Roles and Teams and adjusting the Rights to Role Settings.

The security right, "Go to Only in Open Call Groups", controls whether or not the Role has access to tickets outside of the Call Group given and Teams can determine which Call Groups are available to a HEAT user.

For example, if you have two groups in your organization, Network Services and Human Resources and they both would like to use the HEAT database, two Roles can be created, one for each group.

Then you can breakdown each group into Teams. Network Services can have Teams called NS Hardware, NS Software, NS Change, etc. Human Resources can have Teams called HR Benefits, HR Payroll, HR Complaints, etc.

So, if a someone belongs to the Team HR Benefits, then that person would belong to the Role HR which would then inherit the right to only see specific HR tickets, and not IT.

HEAT: Creating Easy Alarms

A client recently asked: We would like to use the Alarms in HEAT, but it requires too many steps. Is there a faster way to setup an Alarm?

Yes, you can simplify this process by creating a series of pre-defined Alarms that can easily be set from the toolbar. These Alarms can be used to set reminders to follow-up on open issues and manage tasks. Alarms can also be linked to Call Records.

For example, you can create Alarm AutoTasks that will set reminders for various intervals (e.g 1 Hour, 1 Day, and 7 Days). You can also include ticket information in the alarm.

Here's how to build a 1 Hour AutoTask Alarm:

* Select Manage Autotask > click Add
* Name the Autotask > check Display on menu
* Click Add > select the Create an Alarm action
* Select 1 Hour > add "Followup" to the Subject
* Insert the CallLog.CallID field after "Followup"
* Insert Call Log fields in the Notes field
* Use the format: Customer:{|Subset.CustID}
* Add other Call Log fields (e.g. CallDesc, Status)

Repeat this for other intervals and save them to an AutoTask folder. You can then place a shortcut to this folder onto the toolbar.

Now, when working on a ticket, if you would like to schedule a follow-up call or action, click the toolbar button and select the follow-up time. The alarm will be set automatically.

Saturday, June 27, 2009

Quickbooks: Account Numbers on Reports

A client wants to know: I want to display Account numbers on certain reports or at certain times. How can I do this?

The Account numbers display not on the Chart of Accounts list and the Account field drop down menus and also on financial reports like the Balance Sheet and Profit & Loss.

You can hide the Account numbers in Financial Reports by turning off Account Numbers in the accounting Company preferences. However, you have to do so each and every time you create a financial report. Since you can only turn off Account numbers as the file Administrator and only in single user mode,turning off the Account numbers each time you want to print financial reports is not practical.

Instead, you need to use a setting that will hide the Account numbers by default and then you can edit the Company Preferences only when you want the Account numbers to show (e.g. when printing the General Ledger and/or Trial Balance reports).

Do the following to hide the Account numbers on financial reports:
* Edit the description for each Account on the Chart of Accounts, including any that
you have made inactive but that might still show on financial reports. In most cases the description should be the same as the Account name.

* Edit the Reporting Company Preferences to display Accounts by Description rather than by “Name only.” The “Name only” setting doesn’t describe fully what the Name setting does. When you select “Name only” on the window shown below, QuickBooks reports include both the Name and Number.

* QuickBooks will now show the description in financial reports, not the name and number. If any Accounts do not have a description, QuickBooks will revert to displaying the Account by name and number, but just for the selected Accounts with no description. Once you add a description and refresh the report, the Account number will go away.

Note: You can enter a slightly different wording for the Account in the description field. For example, the Account name can read Accounts Receivable and the Description could read Receivables – Trade. The latter is a better wording for financial reports and the QuickBooks users will still see the wording “Accounts Receivable” on the Chart of Accounts window and on QuickBooks forms

Quickbooks: Missing Invoice Report

A client asked: I use the Missing Check Report to find checks that are unaccounted for. Is there a similar report for missing invoices?

No, however, you can create one using Quickbooks. Since QuickBooks has a report programmed to show missing Check numbers, finding a way to modify the existing report to show missing invoice numbers is the best way to get the information you need.

Do the following to create a Missing Invoice report.

* Create a Missing Checks report by selecting the Reports menu, selecting Banking and then selecting Missing Checks. QuickBooks displays the window shown below.

* Do not change the default bank account that appears in the Specify Account field and press OK to display the report.

* QuickBooks creates a report of Checks in numerical order and the report notes any missing and/or duplicate check numbers.

* Click the Modify Report button and then click the Filters tab to display the report filters.

* Remove the Account filter shown below.

* Filter by Transaction Type for “Invoices” and by Detail Level for “Summary Only.”

Edit the title of the report and memorize the report for future use.

Note: You can use the steps above to filter by other transactions types as well. Doing so will allow you to create a Missing Journal Entries report, Missing Estimates report, etc.

Friday, June 26, 2009

Crystal Reports : Formatting Percentages

When creating a formula that should return a percentage value, you will need to format the field correctly to get the "%" sign to properly show.
Right-click on the field in question, select Format Field.
Click the "Display Currency Symbol" checkbox.
Click the "Customize" button.
Click the "Currency Symbol" tab.
Change your currency symbol from "$" to "%".
Then change the "Position" to "-123%".
This forces the percentage symbol to appear at the end of the numerical value.
This will give you percentages thus: "87.22%".

Crystal Reports : Viewing the Report Selection Criteria on the Report

When the Selection Criteria becomes very complex for any given report, I often find it helpful to display the whole Selection Criteria right on the report.
To do this, you need to insert a "Special Field" from the Field Explorer.
Select Insert | Special Field.
Drop down the Special Fields list.
The field we want to insert is Record Selection Formula.
You will also notice that the Group Selection Formula is also available here.

Crystal Reports : Counting Unique (Distinct) Records

When creating a "Summary", using the Count function may not be desirable. It is often the case that a report must only return the number of unique contact records, as other tables (i.e. History) may contain multiple rows for each customer.
Select Insert | Summary.
Select the fieldname you wish to summarize.
Make sure to select Distinct Count as the Summary Operation.

Crystal Reports : Changing an Existing Group

You may need to change the existing report "Groups" after defining them.
To do this, select from the top-level menu, Report | Change Group Expert.
Here, you will see all your defined Groups. You may select any of them and use the "up" and "down" arrows to change the Group order.
This is a nice way to regroup the report without having to do a lot of work.

Quickbooks: Using Customers and Jobs

A client asked: We would like to account for every entry with either a customer or job entry. Is this possible?

You can use customer or job names in QuickBooks to segment your financial statements and to filter many of your QuickBooks summary reports and detail reports for specific customers or jobs. However, certain entries may not apply to specific customers/jobs or you may need to allocate the entry across multiple customers/jobs.

For example, you may need to allocate expenses for tools and equipment that you use over all of the jobs for any given year to multiple jobs. You may also incur expenses like utilities and other administrative expenses that you will never apply to a job.

So, depending on the transaction you can:

* Create a customer called “Overhead” and post the entry to that customer. If you prefer you can use a journal entry to allocate the overhead to the specific customers/jobs.

* Split the detail of the transaction so that the single transaction (e.g. check, bill or invoice) applies to multiple customers/jobs.

Whatever method you use, this willalways use a customer or job on each and every transaction. If you do not include a customer or job, you will:

* Create a discrepancy between the Profit & Loss by Job and the Profit & Loss. Transactions that do not include a Customer/Job name simply do not show on the Profit & Loss by Job report. If you use a Customer called “Overhead,” you will show the same totals on both the Profit & Loss and the Profit & Loss by Job.

* Receive a warning message that the transaction does not include a Customer/Job name. (This warning is available in the Contractor Edition only.) If you exclude the customer/job name on selected posts only (e.g. posts that are overhead or posts to Balance Sheet accounts), the benefit of this warning is diluted. Over time, users will become desensitized to the message.

For this reason it is best to use the Overhead Customer name on posts to Balance Sheet accounts even though QuickBooks does not allow you to filter the Balance Sheet by Customer/Job.

Quickbooks: Auto-Apply Payments

A client asked: We would like to turn off the auto-apply for payments. Is this a mistake and, if not, how do we turn it off

It is almost always correct to turn off auto-apply for payments. There is a preference in the Sales & Customers preferences to automatically apply payments on the Receive Payments window. Uncheck this to turn off the feature.

With auto-application turned on, QuickBooks first looks for an invoice that is the same amount as the payment from the customer. If there is no invoice for the same amount as the payment (e.g. partial payments or checks that pay more than once invoice), QuickBooks applies the check to the oldest open invoice. If any amount is unapplied after paying the oldest open invoice, QuickBooks applies the remainder to the next oldest open Invoice and so on.

Although this feature is designed to increase data entry efficiency, it is almost always best to turn the feature off because the auto-payment process only works well when the check is the exact amount of the invoice. The application of non-exact amounts to the oldest invoice is rarely the best approach.

There is one exception - if you almost never have more than one open invoice for a customer at any given time, you can use the auto-application of payments to invoices with little risk of misapplication.

Quickbooks: Improving Performance

A client recently asked: Our Quickbooks is running slow. What can I do to speed up performance?

There are a number of things you can do to increase performance:

Set QuickBooks So the Home Page Does Not Show When You Open the File. To change the default setting for each user:

* Log into QuickBooks using each user’s name and password
* Access the User Desktop View preferences
* Uncheck the box that reads, “Show Home page when opening a company file.”

Running the Home page uses system resources each and every time a user opens and closes either the program or each time a user switches from one data file to another. The more access the user has to financial information, the more resources QuickBooks uses to display the Home Page.

Set User Preferences to Clear All Open Windows Each Time You Exit QuickBooks.

* Log into QuickBooks using each user’s name and password
* Access the User Desktop View Preferences
* Select the radio button that reads, “Don’t save the desktop.”

If you save the desktop, QuickBooks will reopen every window you used in your previous session, including reports that require a tremendous amount of QuickBooks resources to generate.

Turn off Reminders. Unless it is essential for you to view reminders each time you open QuickBooks, edit Reminders User Preferences if necessary to uncheck the box that reads, “Show Reminders list when opening a Company file.”

CRM: Save and Close

A client asked: We have sensitive information and it is important that users do not leave certain windows open. Is there a way to close a window automatically regardless of whether a user clicks Save or Save and Close?

Yes, you can use the following javascript in the OnSave event of the form to always be closed after saving:

* Select Settings > Customization
* Select Customize Entities > select the form
* Select Forms and Views > Open the form
* Click Form Properties > Edit the OnSave event
* Add this javascript:


* Save > Publish the Customizations

Now when a user clicks Save on this form, it will also close protecting your sensitive information.

CRM: Tracking Competitors

A client wanted to know: What is the best way to keep track of my competition?

Keeping an eye on your competitors is often something that is overlooked by the sales team. You can use MSCRM to easily track your competitors as you work on opportunities.

First, take some time to setup your competitors. Add everything you know about them so that anyone that reviews the competition report can see what they are up aaainst.

To set up your competitors:

* Select Sales > Competitors > New
* Enter Competitor > enter Analysis data
* Save and close

Now, when you enter an opportunity you can select the competitor(s) that is also working on this customer. This will allow you to track their activity and eventually you will build up a history of deals won and lost against a competitor and the reasons why.

To track the competition:
* Select > Opportunities > Edit an opportunity
* Select Sales > Competitors > Add an Existing Competitor
* Save and Close

The last step is to create an Advanced Find on Opportunity and add the Competitor column to the grid. Open this during the sale cycle to track competitors and add/remove them as the situation dictates.

Thursday, June 25, 2009

CRM: Increasing the Attachment Size

A client wants to know: I have tried to increase the size of attachments in MSCRM. Is there some other way than changing the the value of the MaxUploadFileSize field in the OrganizationBase table?

Sure, there are methods that can be used through the user interface and also through external files.

First, I would try using the MSCRM user interface. This is the supported method and increases the attachment size to 8192 KB per attachment. To make this change, do the following:

* Select Settings > Administration
* Select System Settings > E-mail tab
* Update the 'Set file size limit for attachments'

If this is not sufficient, you can also modify the web.config file. To do this, open the web.config using notepad or some other text editor.

* Open the MSCRM web.config file
* Locate httpRuntime and change the following:
* Save the web.config and restart IIS.

Note: if you are unclear about any of the steps in the web.config method, contact your CRM partner. Also, always make a copy of web.config before making any changes.

CRM: Custom Entity Owner Fields

A client recently asked: We are using CRM 4.0 and when we create custom entities they have no 'Owner' field. We've tried creating it manually but this doesn't allow us to assign the record at any stage. What are we missing?

There are two types of ownership for custom entities and how you create ownership could be your problem. When a custom entity is created, one of the required fields is 'ownership'.

Your options are 'User' or 'Organization'. User is the default, and if
you choose it then each record will have an owner and you can do assignments.

If you choose 'Organization' as the ownership type, then the record does not have an owner. Once the entity is created, you cannot change this option.

If this is your problems, then you will need to recreate the entities. If this is the case, use the following method to create a custom entity with a User ownership type:

* Select Settings > Customization > Customize Entities
* Click New > Provide a name for the Entity
* Under the Ownership drop-down > select User
* Save the entity > Go to Forms and Views
* You should see the form with Name and Owner fields.

You can add fields, forms and relationships to the new entity. When you are finished, click Publish Customizations and the new entity should appear (with an Owner field).

CRM: Using Announcements

A client asked: We recently started using Announcements and would like to make it the starting page for everyone's MSCRM web client. How can we do this without manually changing hundreds of user default settings?

To make this change programmatically, you can do the following:

* Open SQL Management Studio > select New Query
* Select the MSCRM database > paste in the following code:

update UserSettingsBase
set Homepagearea='Workplace',Homepagesubarea='nav_news'

* Reset IIS

This will cause all MSCRM useers to open to the Announcements page.

Also, to add new Announcements easily, create a shortcut to the New Announcement page. To do this, you would do the following:

* Select Settings > select Administration
* Click on Announcements > Click New
* Press F11 to obtain the url (you may need to do this more than once)
* Create a new shortcut and copy the url into the properties

This will give you a shortcut on the desktop to add Announcements. Otherwise you need to go to Settings > Administration > Announcements > New Announcement each time to create an announcement.

Using a shortcut requires only one click.

Tuesday, June 2, 2009

Crystal Reports : Using Simple Shapes to Draw Attention

I've always stressed the importance of making a report easy on the eyes.
Techiques to accomplish this are typically simple (i.e. adding a line, page break, etc).
One way to single out a "block" of fields for the reader isto surround thm with a solid box.

To do this, select from the top-level menu Insert Box.
Now "draw" out your new box in the designer using a click-drag.
Once the box is drawn, you can move it and resize it however you like.

Keep in mind that the "box" object is relatively stupid and cannot move itself to accomodate fields, so it may need some tweaking to get looking exactly right.

Crystal Reports : Force a New Page After a Group Prints

It is often handy to "split" a printed report into seperae groups of pages.
Example : a report lists history analysis, grouped by Userid. One Userid ends and another begins right on the same page, which can make it confusing to read.
A solution would be to force the report to insert a page break after every Userid is printed.
To do this:
1. Right-click on the Group Footer of the Group in question.
2. Select "Format Section"
3. Check the "New Page After" checkbox.
4. Okay your way back out.

Now every time the Group Footer is printed, Crystal will insert a page break, printing the next Userid on a new page.

Crystal Reports : Use Multiple Columns in a Report

This is one of he features I wish wasn't buried. It's very handy to be able to print several rows of columns (think mailing labels).
The way to do this is:
1. Right click on the Details section
2. Select "Format Section"
3. On the right-hand side, check the box labeled "Format with Multiple Columns"
4. Notice the Layout tab that is now available. Click on it
5. Here you define how wide to make your columns. Use the "Width" textbox to supply the desired width in inches.
6. Okay you way back out.

You'll now notice that your Details section is split into however many columns Crystal can fit on the page using your Width from above.

Crystal Reports : Move Multiple Items Easily and Accurately

You may find that when trying to re-arrange multiple fields to make room on a report, this can be difficult. Also, when moving fields between Sections, using the mouse can slightly skew their arrangement.
I find it most effective to multiple-select your fields using a Control-Click and then use the arrow keys on your keyboard to move them up, down, left and right. By pressing an arrow key, the selected objects move one "click" at a time. This make it very easy to align fields without having to correct for the mouse.