I followed the advice at
http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7c80.html
to
print "using a print-specific output format" in Flex 4.5, however this
causes the data to disappear from my chart! Try the code below - is this a
bug or is there a simple solution? One interesting side-effect is that after
you print and the data disappears from your chart, you can still hover over
the empty chart and get the dataTips pop up! :-)

John


<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009";
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx"
        width="800"
        height="600">

 <fx:Script>
  <![CDATA[
   import mx.charts.LineChart;
   import mx.printing.FlexPrintJob;
   import mx.collections.ArrayCollection;

   [Bindable]
   public var expensesAC:ArrayCollection = new ArrayCollection( [
    { Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 },
    { Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 },
    { Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 },
    { Month: "Apr", Profit: 1800, Expenses: 1200, Amount: 900 },
    { Month: "May", Profit: 2400, Expenses: 575, Amount: 500 } ]);

   protected function button1_clickHandler(event:MouseEvent):void {
    var printJob:FlexPrintJob = new FlexPrintJob();
    if (printJob.start()) {
     var lc:LineChart = new LineChart();
     lc.height = mlc.height;
     lc.width = mlc.width;
     lc.dataProvider = mlc.dataProvider;
     lc.series = mlc.series;
     lc.seriesFilters = mlc.seriesFilters;
     lc.horizontalAxis = mlc.horizontalAxis;
     lc.verticalAxis = mlc.verticalAxis;

     addElement(lc);

     printJob.addObject(lc);
     printJob.send();
     removeElement(lc);
    }
   }
  ]]>
 </fx:Script>
<s:HGroup>
 <mx:LineChart id="mlc" dataProvider="{expensesAC}" showDataTips="true">
  <mx:horizontalAxis>
   <mx:CategoryAxis categoryField="Month"/>
  </mx:horizontalAxis>

  <mx:series>
   <mx:LineSeries yField="Profit" form="curve" displayName="Profit"/>
   <mx:LineSeries yField="Expenses" form="curve" displayName="Expenses"/>
   <mx:LineSeries yField="Amount" form="curve" displayName="Amount"/>
  </mx:series>
 </mx:LineChart>

 <s:Button label="print" click="button1_clickHandler(event)"/>
</s:HGroup>
</s:WindowedApplication>

Reply via email to