2012-02-01 2 views
0

Я пытаюсь распечатать многостраничную FlexPrintJob, которая включает на первой странице несколько ярлыков, а затем PrintDataGrid. Все это печатает, за исключением того, что PrintDataGrid печатает только половину страницы на всех страницах.Flex - FlexPrintJob, как правильно напечатать группу полей и PrintDataGrid?

Я знаю, что это связано с ярлыками, которые я печатаю на странице 1, потому что их снятие или скрытие исправляет проблему, а сетка печатает полную страницу на всех страницах.

Я пробовал различные контейнеры вокруг сетки и этикеток, в том числе VBox, VGroup, Group, и указывал различные комбинации высоты = «100%» для некоторых контейнеров.

Невозможно распечатать половину страницы переменных/меток на странице 1, а затем запустить сетку данных на одной странице (половина стоимости страницы), но затем перейдите на полную страницу на следующих страницах?

Вот моя печать Код вакансии:

var printJob:FlexPrintJob = new FlexPrintJob(); 
    if (printJob.start()) { 
var thePrintView:printViewEventUser = new printViewEventUser(); // Create a FormPrintView control as a child of the application. 
     addElement(thePrintView); 
         thePrintView.width=printJob.pageWidth; 
         thePrintView.height=printJob.pageHeight; 
         thePrintView.parentEncounter=parentEncounter; //pass in my object for the labels to print 
         thePrintView._currentRec=_currentRec; //pass in my object for the labels to print 

         thePrintView.myDataGrid.dataProvider = bedSearchEditList._recs; 
         thePrintView.showPage("single"); // Create a single-page image. 
         if(!thePrintView.myDataGrid.validNextPage) // If the print image's DataGrid can hold all the data provider's rows, add the page to the print job. 
         { 
          printJob.addObject(thePrintView,FlexPrintJobScaleType.NONE); 
         } 
         else // Otherwise, the job requires multiple pages. 
         { 
          thePrintView.showPage("first"); // Create the first page and add it to the print job. 
          printJob.addObject(thePrintView); 
          thePrintView.pageNumber++; 
          while(true) //queue pages 
          { 
           thePrintView.myDataGrid.nextPage(); // Move the next page of data to the top of the PrintDataGrid. 
           thePrintView.showPage("last"); // Try creating a last page. 
           if(!thePrintView.myDataGrid.validNextPage) // If the page holds the remaining data, or if the last page was completely filled by the last grid data, queue it for printing. Test if there is data for another PrintDataGrid page. 
           { 
            printJob.addObject(thePrintView,FlexPrintJobScaleType.MATCH_WIDTH); // This is the last page; queue it and exit the print loop. 
            break; 
           } 
           else // This is not the last page. Queue a middle page. 
           { 
            thePrintView.showPage("middle"); 
            printJob.addObject(thePrintView,FlexPrintJobScaleType.MATCH_WIDTH); 
            thePrintView.pageNumber++; 
           } 
          } 
         } 

         removeElement(thePrintView); 

       } 
       printJob.send(); // Send the job to the printer. 

Мой вид печати объект в основном только вокруг моих лейбл, то PrintDataGrid.

ответ

0

Если я правильно помню, я установил подобную ситуацию в прошлом, задающее свойство MinHeight к моему ому: PrintDataGrid как это ..

<mx:PrintDataGrid id="printViewDataGrid" width="100%" minHeight="500"> 
... 
</mx:PrintDataGrid> 

Удачи!

Смежные вопросы