Here is some code we use to slice up a long list and print on X# of
pages. You should be able to do somethink like this...
Hope the code gets formated ok
// Add 2nd page displaying names of selected organizations
var selectedOrgList:List = new List();
selectedOrgList.setActualSize(printJob.pageHeight,
printJob.pageWidth);
selectedOrgList.setStyle("fontSize","8");
//selectedOrgList.dataProvider = orgList.selectedItems;
var facilitiesPerPage:int = RECORDS_PER_PAGE;
if (printJob.pageHeight < printJob.pageWidth)
{ //height is less than width so we are in landscape mode and
can't fit as many records per page
facilitiesPerPage = LS_RECORDS_PER_PAGE;
}
selectedOrgList.rowCount = facilitiesPerPage;
var pageCount:int = Math.ceil(orgList.selectedItems.length /
facilitiesPerPage) ;
var printFacilityViewHolder:Array = new Array();
chartTitle = chartTitle + "\nFacility List";
var sortedOrgs:Array = orgList.selectedItems;
sortedOrgs.sortOn("name");
for (var loopCtr:int = 0; loopCtr < pageCount; loopCtr++) {
var pfv:PrintFacilityView = new PrintFacilityView();
addChild(pfv);
pfv.setDimensions(printJob.pageHeight, printJob.pageWidth);
var startIndex:int = facilitiesPerPage * loopCtr;
var endIndex:int = facilitiesPerPage * (loopCtr + 1);
var pagedOrgList:Array =
sortedOrgs.slice(startIndex, endIndex);
selectedOrgList.styleName = "facilityListStyle";
selectedOrgList.dataProvider = pagedOrgList;
selectedOrgList.labelField = "name";
pfv.facilityListView.addChild(selectedOrgList);
pfv.setChartTitle(chartTitle + " (" + (loopCtr + 1) + " of "
+ pageCount + ")");
printFacilityViewHolder[loopCtr] = pfv;
printJob.addObject(pfv, FlexPrintJobScaleType.MATCH_WIDTH);
}
//And send the job to the printer.
printJob.send();
//make the print view invisible then remove it
printView.visible = false;
//ATD 10/23/2006 changed to call removeChild from
printView.facilityListView not printView....
for (loopCtr = 0; loopCtr < pageCount; loopCtr++) {
removeChild(printFacilityViewHolder[loopCtr]);
}
removeChild(printView);
//selectedOrgList.visible = false;
//restore the regionChartStack to its original condition
restoreStack(chartSwitch, stackSelected);