Как напечатать сетку Flex Spark с помощью mx PrintDataGrid?Или есть другой способ добиться этого без использования mx PrintDataGrid? - PullRequest
4 голосов
/ 04 октября 2011

я впервые задаю вопрос здесь, так как мой вопрос не отвечает на форуме Adobe Flex.Так что, по крайней мере, наконец, я пришел, чтобы справиться с этим здесь.

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

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

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

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

-Тед

1 Ответ

0 голосов
/ 07 октября 2011

Попробуйте что-то вроде этого (это работает для меня)

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

...