How do I stack fields vertically in Crystal Reports 2008

how to display data horizontally in crystal reports
crystal reports split section vertically
crystal reports display group horizontally
multiple groups in crystal reports
crystal reports columns instead of rows
how to display half of the records on left and another on the right side in crystal report
format with multiple columns in crystal report
crystal reports group selection formula

I am using Crystal Reports 2008 to develop some reports (on an oracle database ).

I have a number of text fields in my design/layout that I want to be positioned in a vertical stack with no space between.

Using Oracle reports I can select the fields and do an align->stackvertical, but there does not seem to be a similar option in CR2008

The "Align" option has tops,middles,bottoms,baseline,lefts,centres,rights,to grid. none of which do what i want.

Is there an easy way to do this? or do I just have to position them manually? (maybe using snap-to-grid)


If you create a report from scratch, you should be able to use the Mail Label wizard, which will stack the selected fields vertically.

Apart from this, the only option is to do so manually. I find that enabling Snap To Grid in the Options menu helps with this, as does inserting a single vertical guideline per column and then dragging and dropping fields so that they snap onto it.

How to Group Data in Crystal Reports, will be justified and tags will be recognized too. Horizontal Representation of Data -Format With Multiple Columns (Crystal Reports -2008) Aim: – 1) To have the Horizontal Display of the data at Crystal Report Detail Section. 2) To achieve the dynamic creation of columns at the Detail Section of the Report.


I already described how to manually align the fields using the Object Size and Position dialog. I have now written a Sikuli script to automate that use of the dialog. I successfully used the script to stack about 70 new fields underneath existing stacked ones.

To use this script, copy and paste its contents into Sikuli IDE. Open Crystal Reports and find the field at the bottom of the existing stack. Make sure the new field you want to add to the bottom of the stack exists and is visible on-screen. Select the field at the bottom of the stack. Then switch to Sikuli and hit CtrlR to start the script. It will switch to Crystal Reports and open the Size and Position dialog, read the existing values for the field at the bottom of the stack, and close the dialog. You now have 1.5 seconds (configurable) to select the new field by clicking on it. Now the script will open the Size and Position dialog again and set the X, Y, Width, and Height so that the selected field is placed underneath the previous one. Specifically, the X, Width, and Height are set to the same as the above field, and the Y is set as I described in my other answer. You can change the configuration variable VERTICAL_SPACE_BETWEEN_FIELDS to add space between each field or cause them to overlap, if you want.

The script takes about 5 seconds to align one field. If that's too slow, you can try decreasing the time in or removing some of the wait() calls. I added the wait() calls because the script sometimes copied or pasted the wrong value if it went too fast.

One nice thing about this script is that it is chainable. Right after it finishes, the newly-aligned field will still be selected. So if you have another field you want to add under that field, you can just run the script again with CtrlR, and get ready to click on the next field in the middle. If you plan to chain many times, you can increase the 1 in range(1) and add wait(<num_of_seconds>) below mainAction() so that the script repeats itself automatically. Just keep in mind that chaining requires that the next field to add be visible on screen, so you can select it with the mouse.

I saved the script file as "Align Fields in Crystal Reports.sikuli".

# Crystal Reports: stack prompt-selected field under start-selected field

VERTICAL_SPACE_BETWEEN_FIELDS = 0.000
WAIT_TIME_FOR_USER_SELECT_NEW_FIELD = 1.5

def mainAction():
    # read size and position of bottom of stack
    above = dict()
    openSizeAndPositionDialog()
    above['x'] = copySelectedText()
    moveToNextField(2)
    above['y'] = copySelectedText()
    moveToNextField()
    above['width'] = copySelectedText()
    moveToNextField(2)
    above['height'] = copySelectedText()
    print("above", above)
    wait(0.05)
    type(Key.ESC)

    # calculate size and position of next field in stack
    new_field = dict()
    new_field['x'] = above['x']
    new_field['y'] = str(float(above['y']) + float(above['height']) + VERTICAL_SPACE_BETWEEN_FIELDS)
    new_field['width'] = above['width']
    new_field['height'] = above['height']
    print("new field", new_field)

    waitForUserToSelectNewField()

    # set size and position of next field
    openSizeAndPositionDialog()
    paste(new_field['x'])
    moveToNextField(2)
    paste(new_field['y'])
    moveToNextField()
    paste(new_field['width'])
    moveToNextField(2)
    paste(new_field['height'])
    wait(0.1)
    type(Key.ENTER)

def openSizeAndPositionDialog():
    type(Key.ALT + "a" + "z")
    wait(0.05)

def copySelectedText():
    type("c", KeyModifier.CTRL)
    wait(0.05)
    return Env.getClipboard()

def moveToNextField(numTimes=1):
    for i in range(numTimes):
        type(Key.TAB)
        wait(0.05)

def waitForUserToSelectNewField():
    # I'll do it without the popup, because switching to the popup and then closing it is a pain
    wait(WAIT_TIME_FOR_USER_SELECT_NEW_FIELD)

    #popup("select the new field to align under the old one, then press OK")
    #wait(0.2)

App.focus("Crystal Reports")
wait(0.2) # give you time to release CTRL, which would interfere with the script
for i in range(1):
    mainAction()

How to align a text to justified in Crystal Reports?, the columns in the rest of the report based on the width of the Details fields. width of the report's columns and reduce the number of columns that fit on each page. stack the current Details columns on top of one another for the best display. After completing vertical rearrangement of report fields, you can check the Format  I need to precisely left-align a page full of text report fields at design time so they line up exactly when previewed and printed. This is like using the VB properties page to align controls with the Location XY properties.


The manual approach will work best. In addition to Snap to Grid and vertical guidelines, as Mark suggests, you should also use multiple Details and Group Header sections. Multiple sections keep things better organized.

I avoid Crystal Reports 'wizards' whenever I can--this is after 15 years of working with the product (since v4).

Crystal Reports 2008 Official Guide, Horizontal Representation of Data -Format With Multiple Columns (Crystal Reports -2008) Aim: – 1) To have the Horizontal Display of the data  SAP Crystal Report gives two options of page layout - landscape and portrait. Landscape means the page is oriented horizontally, while portrait means the page is oriented vertically. To open Page Layout option in Crystal Report, go to File → Page Setup. This option allows you to choose page


As an alternative method to manually align fields so their borders are touching, you could use the Object Size and Position dialog. You can access it by opening the "Format" menu or a field's context menu, then choosing the menu item "Size and Position...".

Follow this procedure to add a new field to the bottom of a column of vertically stacked fields:

  1. Select the current bottom field in the column.
  2. Open the Size and Position dialog.
  3. Copy its X value down.
  4. Add the Y value to the Height, and copy that down.
  5. Close the dialog.
  6. Select the new field that you want to move to the bottom of the column.
  7. Open the Size and Position dialog.
  8. Enter the copied X value as the X value, and the copied sum as the Y value.
  9. Close the dialog.

If it's easier, you could replace the steps about the X value with the command "Format" > "Align" > "Lefts" (or "Centers", or "Rights").

This method is easier to automate than dragging fields with the mouse. If you have to align many fields, you can automate much of this procedure using AutoHotkey or Sikuli. I actually did end up automating this – I wrote this Sikuli script.

Format With Multiple Columns (Crystal Reports -2008), Using Crystal Reports 2008 to design a report: I would like to VERTICALLY align text in a field. (Centred vertically). I know you can format fields  As Crystal reads each data record, it could append to the shared variable, and by the end of the section, Crystal would have created your horizontal display. Just remember to reset it when the group changes in such a way that you don't remove your data before you display it.


Quick and dirty method. If you want the fields to be evenly distributed and you don't have many fields to stack vertically then create a text box with the height of two fields (assumes they are the same height) plus the desired space. So assuming you wanted a vertical spacing of .08 Height and field height was 0.167 create a text box then using Object size and position dialog set the Height .414 (0.167 + 0.08 + 0.167). Now place the fields in desired order vertically. Don't worry about spacing at the moment.

  1. Place the text box beside the first field
  2. Select the text box first.
  3. While holding the shift key select the first field so that both the field and the text box are both selected, but the field is the primary object.
  4. Right Click for the context menu.
  5. Select Align, Tops. The TextBox will now be aligned with the top of the first field.
  6. Select the next field below.
  7. Holding the shift key select the TextBox so that both the next field and the text box are both selected, but the textbox is now the primary object.
  8. Select Align, Bottoms. This will move the field to the bottom border of the textbox which will move the field to the correct vertical Y position and give you the desired margin.
  9. Repeat steps 2 - 8 for each subsequent field (so select text box and 2nd field as primary object align tops, then 3rd field and textbox as primary object align bottoms, etc).

Vertical Alignment in Fields, About the Crystal Reports documentation. Choosing data sources and database fields. Displaying summarized fields horizontally. If you create a customer list using this data and stack the fields on top of one another in for SWFs created using the Crystal Reports data connection in Xcelsius 2008. Seems like group stack and nest vertically in Crystal Reports. Wondering if anyone knows of a way to have it span horizontally instead. Picture included to help illustrate what I'm looking to do.


[PDF] SAP Crystal Reports 2016 User Guide, When you have multiple fields summarized, you can choose whether to display them in a vertical stack (this is the default) or horizontally side-by-side. The Show​  2. Right click on the report and select Report, Style Expert, Yes. 3. Select Drop Table in the Report Style Expert dialog box and click OK. Then Crystal Report will display a table frame around those report fields and they are in equal spacing. 4. Right click again to return to the Report Style Expert dialog box again, select Standard and OK.


Customizing Cross-Tab Appearance, Video demonstrates how you can group columns or fields in crystal report using an example Duration: 9:00 Posted: Jul 21, 2017


How to Group Data in Crystal Report - Part 07, Using Crystal Reports Fields/Functions in CRChart Macros.. 1-9. Getting Help been updated to the January 2008 HotFix/ServicePak level. • Limited versions of Crystal Vertical Line Stacked. 36. Horizontal Line