だから私は dataProvider として XMLListCollection を持つスパーク リスト コントロールを持っています。
<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-->
そして、フィールドだけから単語のリスト (基本的には 1 つの列) を出力したいと思い<word>
ます。カスタム PrintDataGrid を作成しようとしましたが、空白で印刷されました。これについてどうすればいいですか?
(編集: 2012 年 9 月 12 日)
申し訳ありませんが、より多くのコードを含める必要がありました。
Web 上のどこかから採用した外部ファイル ("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」は、私がしようとしているスパーク リスト オブジェクトの 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"