2011-10-04 3 views
4

내 질문은 어도비 플렉스 포럼에서 답할 수 없기 때문에 여기에서 질문하는 것이 처음입니다. 그래서 적어도 마침내, 나는 그것을 여기에서 관리하기 위해왔다.mx PrintDataGrid를 사용하여 flex spark datagrid를 인쇄하는 방법? 또는 mx PrintDataGrid를 사용하지 않고이 작업을 수행하는 다른 방법이 있습니까?

글쎄, 플렉스 4.5+는 요즘 모두 노력하고있는 것 같아 아직까지는 스파크 datagrid와 mx printdatagrid 구성 요소를 함께 사용하는 것이 발견되지 않았기 때문에이 질문을 던졌습니다..

내가 얻으려고하는 것은 스파크 데이터 그릿 내부의 모든 데이터를 인쇄하는 것입니다. 그래서 연구를 할 때 PrintJob 또는 FlexPrintJob 클래스를 사용합니다. 그것은 잘 작동하지만 내 스파크 DataGrid에 데이터가 꽤 오래 이후 여러 페이지를 인쇄해야 할 때, 어떻게 든 그것을 할 방법을 찾을 수 없습니다. 인쇄 출력은 최대 스파크 데이터 그리드의 높이까지입니다. 그래서 제 연구에서 어떻게 든 mx : PrintDataGrid 구성 요소를 사용하도록 관리했습니다. 그러나 슬프게도 그들은 mx : DataGrid와 함께 작업했습니다. 이제 여기 내 문제가 온다 - m : 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 DataGrid 열을 mx DataGrid 열로 변환 할 수 없다면 여러 페이지를 사용하여 spark DataGrid의 모든 데이터를 인쇄 할 수 있습니까?

미리 큰 감사.. 이 같은

-Ted

답변

0

해보십시오 somethink (그것은 나에게 작동)

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.My의 dataProvider를 사용하는 방법 큰 개체가 발견해야하고 나는 그것을 구문 분석해야 눈금에 정확한 데이터를 표시하십시오. 인쇄용으로해야하는 것과 동일합니다.