Printing a list in two columns

I need to print a report which is a list of names. Since this takes only about half of the page width I want to print it in 2 columns. I have made a form which will do this except that it prints across first rather than down first. I can not find any control or command that will change this.

My current form is a list, half a page wide whide with the defaultPageFormat set to Protrait, naLetter with 0.5 inch margins on all sides.

I need to get this form to print down first. Am I using the right form for this? Is there a way to do this?

BUMP

I’d like to know this too!

Anyone?

Currently not possible.

You could calculate sets of two names into a text field with a concat statement and print them that way.

You could, but it is a pretty frequent requirement to, for example, print a list of alphabetized names in two column format. The eye expects the alphabetized list to run down the first column and then continue in the second column. Guess I’ll look in feature requests for this one, would be really nice to have a “print down/across” choice somewhere.

btw, probably easier than calculating the columns would be to export to csv and pull the list into a Word or OpenOffice merge template (or use IT2Be’s Word plug-in)

kazar

I too think that this is an important requirement. I don’t like to have to use another program to complete a job. I thought I might have to scrub the project I was working on because it has two reports that need to be print in two columns with sort order down and then accross.

The lack of electricty slowed me up this last week, but I have completed a method to go with my form. I have tested it with 500 record table. The method is as follows:

// This method will print a report in 2 columns with the sort going down
// and then accross. It is specific to a form that has 30 rows & 2 columns.
// The page layout for the form is naLetter (8.5 x 11 inches) in Portrait
// Orientation with 0.5 inch margins on all edges.
// The form has a header of 50 by 540 px. The body is 20 by 270 px. It has
// one field in the body last_name-first. For test purposes it has the field
// print_order.

// The first 2 variables are form specific
var C = 2; // number of columns
var R = 30; // number of rows

// The following apply to any multi column form
var N = C * R; // number of records per page
var T = databaseManager.getFoundSetCount (foundset); // total number of records
var P1 = (T % N > 0)? 1: 0; // part page?
var P2 = Math.floor(T / N); // full pages
var P = P2 + P1; // total pages
var X = (N * P) - T; // extra records require to fill last page

// sort the records
controller.loadAllRecords();
controller.sort(‘last_name_first asc’);

// create the extra records to complete the last page
// first go to last record in 200 record steps
for ( var i = 1 ; i <= (T / 200) ; i++ )
{
controller.setSelectedIndex(200 * i);
}
controller.setSelectedIndex(T);

// now create new records
for ( var i = 1 ; i <= X ; i++ )
{
controller.newRecord();
}

// set the sort order for the report
var i = 1;
// do this a page at a time
for ( var p = 0 ; p < P ; p++ )
{
// do this a column at a time
for ( var c = 0 ; c < C ; c++ )
{
// do this a row at a time
for ( var r = 0 ; r < R ; r++ )
{
controller.setSelectedIndex(i);
print_order = (N * p) + c + (C * r) + 1;
// N * P is the last record on precedeing page
// c is current column -1
// (C * r) is current row * number of columns, increments the
// print_order by the number od coumns
// +1 correction factor
i++;
}
}
}
// sort by print_order
controller.sort(‘print_order asc’);

// Show this form in print preview
controller.showPrintPreview();

I would like to hear suggestions for improvement.