2011-10-04 18 views
4

私の質問は、Adobeフレックスフォーラムで答えることができないので、これは私がここに質問するのは初めてのことです。だから、少なくとも私はここでそれを管理するようになった。mx PrintDataGridを使用してflex spark datagridを印刷するには?または、mx PrintDataGridを使用せずにこれを達成する別の方法がありますか?

まあ、フレックス4.5+は私がまだスパークデータグリッドとMXのPrintDataGridコンポーネントの両方を一緒に取り組んで見つけることがありますので、私はこの質問をしたので、誰もが、最近に取り組んでいると思います。

私が達成しようとしているのは、私の火花データグリッド内のすべてのデータを印刷することです。私が研究をするときは、PrintJobまたはFlexPrintJobクラスを使用します。それはうまく動作しますが、スパークのデータグリッドのデータはかなり長いので、複数のページを印刷する必要があるときは、どうやってそれをどうやって行うのかがわかりません。印刷出力は、私の火花のデータグリッドの高さのところまでです。私の研究では、どうにかしてmx:PrintDataGridコンポーネントを使用するように管理していました。しかし、悲しいことに、彼らはmx:DataGridでもそれを行いました。今ここに私の問題が来る - m:PrintDataGridをs:DataGridと一緒に使う方法。

var printJob:PrintJob = new PrintJob(); 

if (printJob.start()) 
{ 
    var printGrid:PrintDataGrid = new PrintDataGrid(); 
    printGrid.width = printJob.pageWidth; 
    printGrid.height = printJob.pageHeight; 
    printGrid.columns = mySparkDataGrid.columns; // this line throws an exception 
    printGrid.dataProvider = mySparkDataGrid.dataProvider; 
    printGrid.visible = false; 
    FlexGlobals.topLevelApplication.addElement(printGrid); 

    while (printGrid.validNextPage) 
    { 
     printGrid.nextPage(); 
     printJob.addPage(printGrid); 
    } 

    printJob.send(); 
    parentApplication.removeElement(printGrid); 
} 

だから、誰でもここで私を助けることができますか?スパークのデータグリッドの列をmxのデータグリッドの列に変換できない場合は、複数のページを使用してスパークのデータグリッドのすべてのデータを印刷する方法はありますか?

事前に大変感謝しております

-Ted

答えて

0

このようなトライのsomethink(それは私に動作します)

for (var i:int = 0; i < mySparkDataGrid.columns.length - 1; i++) { 

    var tmpColumn:DataGridColumn = new DataGridColumn(); 
    tmpColumn.headerText = (mySparkDataGrid.columns.getItemAt(i) as GridColumn).headerText; 
    tmpColumns.push(tmpColumn); 

} 

printGrid.columns = tmpColumns; 

は、今私はItemRender.My dataProviderに大きなオブジェクトを持っており、私はそれを解析する必要がどのように使用し、方法を見つける必要がありグリッドに正しいデータを表示してください。私は印刷のために行う必要があります。

関連する問題