从Flash Builder 4中的XMLListCollection打印

时间:2012-09-06 00:42:02

标签: xml flex printing flashbuilder4

所以我有一个带有XMLListCollection的spark List控件作为dataProvider

        <wordRecord>
            <word>duck</word>
            <syllables>1</syllables>
            <firstLetter>d</firstLetter>
            <!--other fields-->
        </wordRecord>
        <wordRecord>
            <word>machete</word>
            <syllables>3</syllables>
            <firstLetter>m</firstLetter>
            <!--other fields-->
        </wordRecord>
        <!--more wordRecords-->

我想从<word>字段打印一个单词列表(基本上是一列)。我尝试创建一个自定义PrintDataGrid,但它打印出空白。知道如何去做吗?

(编辑:9/12/2012)

抱歉,应该包含更多代码。

我有一个外部文件(“MyPrintView.mxml”),我从网上某处改编:

<?xml version="1.0" encoding="utf-8"?>
    <s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" width="500" height="300">
        <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <mx:PrintDataGrid id="myDataGrid" width="100%">
            <mx:columns>
                <mx:DataGridColumn  />
            </mx:columns>
        </mx:PrintDataGrid>
    </s:VGroup>

这里是主mxml文件中的函数中的代码,该文件应该进行打印(外部文件和FlexPrintJob的必要库已被分类,“workingList”是spark List Object的id我试图打印):

var printJob:FlexPrintJob = new FlexPrintJob();
if(printJob.start() != true) return;
var listPrintView:MyPrintView = new MyPrintView();
addElement(listPrintView);
/*Error on the following line*/
listPrintView.myDataGrid.dataProvider = workingList.dataProvider::word;
printJob.addObject(listPrintView);
printJob.send();
removeElement(listPrintView);

我得到的是一个空白的列,没有印刷文字。 Flash Builder 4给出了一个错误,内容如下:

"Multiple markers at this line:
-1120: Access of undefined property dataProvider.
-listPrintView"

1 个答案:

答案 0 :(得分:0)

我自己修好了。 DataColumn声明需要dataField属性,并显示要显示的XML字段的名称。 ItemRenderer是一个疯狂的追逐。