apache-flex 如何使用mx PrintDataGrid打印Flex Spark数据网格?或者有没有其他方法可以不使用mx PrintDataGrid来实现?

z4bn682m  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(140)

这是我第一次在这里提问,因为我的问题在adobe flex论坛中是无法回答的。所以至少最后,我来这里管理它。
嗯,Flex 4.5+是我想每个人都在努力现在,所以我问这个问题,因为我还没有找到一起工作的spark数据网格和mx printdatagrid组件
我试图实现的是打印我的spark数据网格中的所有数据。所以当我做我的研究时,我们使用PrintJob或FlexPrintJob类。它工作得很好,但当我需要打印多页时,因为我的spark数据网格中的数据很长,我不知何故找不到一种方法来完成它。打印输出只能达到我的spark数据网格的高度。所以在我的研究中,他们设法使用了mx:PrintDataGrid组件。2但遗憾的是,他们也使用了mx:DataGrid。3现在我的问题来了-如何将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数据网格列,有没有办法可以使用多个页面打印spark数据网格上的所有数据?

提前感谢

  • 泰德
jtjikinw

jtjikinw1#

试着这样做(对我很有效)。

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。我的数据提供者有更大的对象,我必须解析它,以显示正确的数据在网格中。同样的,我必须做的打印。

相关问题