Как преобразовать гибкую сетку данных с провайдером данных XMLList в pdf, используя AlivePDF?
Моя гибкая сетка данных имеет XMLListCollection в качестве поставщика данных.
Сетка AlivePDF ожидает, что поставщик данных сетки данных будет массивом.
Есть ли способ отправить эту таблицу в PDF без прохождения через каждый узел XML и заполнения массива объектов для подачи в Grid AlivePDF?
Есть ли другие лучшие решения, которые я могу попробовать преобразовать эту таблицу в PDF?
Спасибо!
2 ответа
Решение
ListCollectionView
(XMLListCollection
базовый класс) имеет метод toArray()
Так что просто new Grid(dataProvider.toArray(),...)
Вот пример кода, который может вам помочь: здесь dataGrid имеет 2 столбца. И chilledWaterLoopXml - это xml, содержащий данные.
var gridColumnFirstcol:GridColumn = new GridColumn('Design ΔT','designDelta', 40, Align.LEFT, Align.LEFT);
var gridColumnSecondcol:GridColumn = new GridColumn('Chilled Water', 'chilledWtrPump', 40, Align.LEFT, Align.LEFT);
var result:ArrayCollection=new ArrayCollection();
for(var i:int =0;i<chilledWaterLoopXml.children().length();i++)
{
var resultant:Object = new Object();
resultant["designDelta"]=chilledWaterLoopXml.child(i).designDelta;
resultant["chilledWtrPump"]=chilledWaterLoopXml.child(i).chilledWtrPump;
result.addItem(resultant);
}
var grid:org.alivepdf.data.Grid = new org.alivepdf.data.Grid( result.toArray() , 100,50, new RGBColor(0xD4CCC5), new RGBColor(0x66C66C),0, new RGBColor(0x000000),1,Joint.ROUND);
grid.columns = columns;
pdf.addGrid(grid);