If you make a simple test case that doesn't require server data (has the
data in the MXML) please file a bug.

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Mark
Sent: Thursday, December 20, 2007 6:30 AM
To: [email protected]
Subject: [flexcoders] Re: I could use some help with printing problems
that I don't understand

 

Thanks, I actually was able to fix that first problem (solution is 
below, please let me know if there's a better way) but now I have 
another slight problem when printing the DataGrid. IF I keep 
variableRowHeight set to true, it really doesn't do a good job. It 
seems to cut off some of the rows that may have a little more text 
than the rest. If I set it to false, it prints okay but all are the 
largest size. Any ideas how to fix this?

DETAILS FIX ON THE HIDDEN PRINT PAGE:
public function resizeTextBoxes(e:Event):void {
e.target.height = e.target.height + 10;
}

<mx:Text id="descText" text="{_ADL.getItemAt
(0).deploymentDescription}" width="80%" selectable="false" 
styleName="detailPrintStyle" creationComplete="resizeTextBoxes
(event)"/>

===============================================================

DATAGRID PRINT:
<?xml version="1.0"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml
<http://www.adobe.com/2006/mxml> " 
xmlns:MyComp="print.*" backgroundColor="#FFFFFF"
paddingTop="20" paddingBottom="20" paddingLeft="20">

<mx:Script>
<![CDATA[
include "../com/decodeAreaCode.as";

import mx.core.*
[Embed(source="../images/banner.swf",symbol="banner")]
[Bindable]
public var Banner:Class;
// Declare and initialize the variables used in the 
component.
// The application sets the actual prodTotal value.
[Bindable]
public var pageNumber:Number = 1;
[Bindable]
public var prodTotal:Number = 0;

// Control the page contents by selectively hiding the 
header and
// footer based on the page type.
public function showPage(pageType:String):void {
if(pageType == "first" || pageType == "middle") {
// Hide the footer.
//footer.includeInLayout=false;
//footer.visible = false;
}
if(pageType == "middle" || pageType == "last") {
// The header won't be used again; hide it.
header.includeInLayout=false;
header.visible = false;
}
if(pageType == "last") {
// Show the footer.
//footer.includeInLayout=true;
//footer.visible = true;
}
//Update the DataGrid layout to reflect the results.
validateNow();
}
public function myDateFormat(item:Object, 
column:DataGridColumn):String {
var newItem:String;
var thisDate:String;
var result:Array;
if (column.headerText == "Release to Area Date"){
newItem = item.globalReleaseDate; 

} else {
newItem = item.globalDeadline; 
}
return myDateSm.format(newItem)
}
//
]]>
</mx:Script>
<!-- date formatter -->
<mx:DateFormatter id="myDate" formatString="D, MMMM YYYY" />
<mx:DateFormatter id="myDateSm" formatString="DD MMM YYYY" />
<!---->
<!-- The template for the printed page, 
with the contents for all pages. -->
<mx:VBox width="80%" horizontalAlign="left">
<mx:Label text="Page {pageNumber}"/>
</mx:VBox>
<!--
<MyComp:FormPrintHeader id="header" width="100%"/>
-->
<mx:Image source="{Banner}" id="header" width="90%"/>
<!-- The sizeToPage property is true by default, so the last
page has only as many grid rows as are needed for the data. -
->
<mx:PrintDataGrid id="myDataGrid" width="100%" height="100%" 
variableRowHeight="true" fontSize="9">
<!-- Specify the columns to ensure that their order is correct. -
->
<mx:columns>
<mx:DataGridColumn headerText="Deployment" 
dataField="title" wordWrap="true" />
<mx:DataGridColumn headerText="Portfolio 
Name" dataField="portfolioName" wordWrap="true"/>
<mx:DataGridColumn headerText="Origin" 
dataField="origin"/>
<mx:DataGridColumn headerText="Target(s)" 
dataField="targetAll" wordWrap="true" width="100" />
<mx:DataGridColumn headerText="Release to 
Area Date" headerWordWrap="true" dataField="globalReleaseDate" 
labelFunction="myDateFormat" />
<mx:DataGridColumn headerText="Deadline" 
dataField="globalDeadline" labelFunction="myDateFormat" 
minWidth="100" />
</mx:columns>
</mx:PrintDataGrid>
<!-- Create a FormPrintFooter control 
and set its prodTotal variable. -->
<!--<MyComp:FormPrintFooter id="footer" pTotal="{prodTotal}"/>-->
</mx:VBox>

 

Reply via email to