2011-10-04 2 views
4

это мой первый раз, чтобы спросить здесь, так как мой вопрос не отвечает на форуме adobe flex. Поэтому, по крайней мере, наконец, я пришел, чтобы справиться с этим здесь.Как печатать гибкие искровые datagrid с помощью mx PrintDataGrid? Или есть ли другой способ достичь этого без использования mx PrintDataGrid?

Ну, Flex 4.5+, я думаю, все работают в настоящее время, поэтому я задал этот вопрос, так как я еще не нашел работу как искровых данных, так и компонентов mx printdatagrid вместе.

То, что я пытаюсь достичь, состоит в том, чтобы распечатать все данные внутри моего искрового datagrid. Поэтому, когда я занимаюсь своими исследованиями, мы используем классы PrintJob или FlexPrintJob. Он отлично работает, но когда мне нужно печатать несколько страниц, так как данные на моем искровом datagrid довольно длинны, я не могу как-то найти способ, как это сделать. Выход на печать только вверх, где высота моего искрового источника данных. Поэтому в моих исследованиях им каким-то образом удалось использовать компонент 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); 
} 

Итак, пожалуйста, может ли кто-нибудь здесь помочь мне с этим? Если преобразование столбцов искрового datagrid в столбцы mx datagrid невозможно, существует ли способ, чтобы я мог распечатать все данные на искровом datagrid, используя несколько страниц?

Большое спасибо заранее.

-Ted

ответ

0

Try 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 имеет больший объект, и я должен разобрать его для отображение правильных данных в сетке. То же самое я должен сделать для печати.