2011-10-04 25 views
4

這是我第一次問這裏,因爲我的問題是不是在adobe flex論壇負責。至少最後,我來這裏管理它。如何使用mx PrintDataGrid打印flex spark數據網格?或者有沒有其他的方式來實現這一點,而不使用MX PrintDataGrid?

那麼,Flex 4.5+是我想大家現在都在努力,所以我問這個問題,因爲我還沒有找到工作兩個火花datagrid和mx printdatagrid組件在一起

我想要實現的是打印我的spark數據網格中的所有數據。所以當我進行研究時,我們使用PrintJob或FlexPrintJob類。它工作正常,但當我需要打印多個頁面,因爲我的spark數據網格上的數據很長,我不知道如何去做。打印輸出僅限於我的火花數據網格的高度。所以在我的研究中,他們以某種方式管理它使用mx:PrintDataGrid組件。但令人難過的是,他們用mx:DataGrid也做到了。現在我的問題來了 - 如何使用mx: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); 
} 

所以,請任何人都可以幫助我嗎?如果將spark數據列的列轉換爲mx datagrid列是不可能的,是否有方法可以使用多個頁面打印spark數據網格上的所有數據?

非常感謝提前

-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數據提供程序有較大的對象,我必須分析它在網格中顯示正確的數據。我必須做的是打印。

相關問題