2015-05-21 5 views
0

У меня есть отчет по параметрам, с 3 столбцами и одинаковым значением.Печать номеров копий Отчет Jasper/ireport

После этого перерыв страницы.

Я хочу распечатать этот отчет с помощью X числа копий автоматически.

PS: не может зацикливаться на одном документе. Мне действительно нужно вставить «количество копий» этих документов.

public void imprimir(String codigo, String tamanho, Integer qtd) throws JRException 
{  
    String arquivo = "relatorios_ireport/etiqueta_pausa.jasper"; //arquivo de relatorio 
    java.io.InputStream file = getClass().getClassLoader().getResourceAsStream(arquivo); //carrego o arquivo 

    //NUMBER OF REPEAT 
    ArrayList array_qtd = new ArrayList();   

    for(int i = 0; i < 3; i++){ 
      array_qtd.add("Número" + i); 
    }   

    JRBeanCollectionDataSource dados_qtd = new JRBeanCollectionDataSource(array_qtd);   

    Map parametros = new HashMap(); 

    //parametro 1 (codigo) 
    parametros.put("codigo", codigo); 

    //parametro 2 (tamanho) 
    parametros.put("tamanho", tamanho);   

    JasperPrint printer = null; 
    printer = JasperFillManager.fillReport(file, parametros, dados_qtd); 

    //SHOW DIALOG REPORT 
    JRViewer view = new JRViewer(printer); //preview 
     JDialog dialog = new JDialog(); 

     dialog.getContentPane().add(view); 
     dialog.setSize(600,300); 
     dialog.setLocationRelativeTo(jPanel2); 
     dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); 
     dialog.setModal(true); 
     dialog.setVisible(true); 

     //DIRECT PRINT 
     //JasperPrintManager.printReport(printer,false);   
}//fim imprimir 
+0

Что вы подразумеваете под «Х количество экземпляров»? –

+0

@Pedro [JasperReports - образец экспортного пакета] (http://jasperreports.sourceforge.net/sample.reference/batchexport/index.html#batchexport) –

+0

Возможный дубликат [Как добавить вторую страницу в Jaspersoft iReport Designer 4.7 ] (http://stackoverflow.com/questions/11830904/how-do-i-add-a-second-page-in-jaspersoft-ireport-designer-4-7) –

ответ

0

Просто добавьте новый внешний параметр и покажите этот параметр в отчете.

Каждый раз, когда вы генерируете отчет, просто отправляйте новое добавочное значение для этого параметра.

1

Решенные

$ общественной недействительным Imprimir (String Codigo, String tamanho, Integer цит) бросает JRException {

String arquivo = "relatorios_ireport/etiqueta_pausa.jasper"; //arquivo de relatorio 

    java.io.InputStream file = getClass().getClassLoader().getResourceAsStream(arquivo); //carrego o arquivo 

    //NUMERO DE REPETIÇÕES 
    ArrayList array_qtd = new ArrayList(); 

    //completar as 3 colunas com mesmo valor 
    for(int i = 0; i < 3; i++){ 
      array_qtd.add("Número" + i); 
    } 



    JRBeanCollectionDataSource dados_qtd = new JRBeanCollectionDataSource(array_qtd); 


    Map parametros = new HashMap(); 

    //parametro 1 (codigo) 
    parametros.put("codigo", codigo); 

    //parametro 2 (tamanho) 
    parametros.put("tamanho", tamanho); 



    //CRIANDO 
    JasperPrint printer = null; 
    printer = JasperFillManager.fillReport(file, parametros, dados_qtd); 

    //exportar para pdf 
     //JasperExportManager.exportReportToPdfFile(printer,"D://sample_report.pdf"); 

     if (jCheckBox_visualizar.isSelected()){ 

     //CHAMAR VIEW 1 DE CADA VEZ (FECHOU ABRE O OUTRO) 
     JRViewer view = new JRViewer(printer); //preview 
     JDialog dialog = new JDialog(); //jdialog que contem o preview 

     dialog.getContentPane().add(view); //adiciono o preview 
     dialog.setSize(600,300); 
     dialog.setLocationRelativeTo(jPanel2); 
     dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); 
     dialog.setModal(true); 
     dialog.setVisible(true); 
     //CHAMAR VIEW DIRETO(TODOS AS QTD DE UMA VEZ) 
     //JasperViewer.viewReport(printer, false); 

     }else{ 

     //PROBLEM SOLVED WITH EXPORTER ATRIBUTESET.ADD(NEW Copies(qtd)) qtd = number of copies i want :D 

      PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet(); 
      //printRequestAttributeSet.add(MediaSizeName.ISO_A4); 
      printRequestAttributeSet.add(new Copies(qtd)); 

      PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet(); 
      //printServiceAttributeSet.add(new PrinterName("Argox_OS-214_plus_series_PPLA", null)); 
      //printServiceAttributeSet.add(new PrinterName("Argox OS-214 plus series PPLA em pcestamparia", Locale.getDefault())); 
      printServiceAttributeSet.add(new PrinterName("Argox OS-214 plus series PPLA", Locale.getDefault())); 
      //printServiceAttributeSet.add(new PrinterName("////pcestamparia//Argox OS-214 plus series PPLA", null)); 
      //printServiceAttributeSet.add(new PrinterName("//pcestamparia/Argox OS-214 plus series PPLA", null)); 
      //printServiceAttributeSet.add(new PrinterName("////pcestamparia//Argox_OS-214_plus_series_PPLA", Locale.getDefault())); 
      JRPrintServiceExporter exporter = new JRPrintServiceExporter(); 

      exporter.setExporterInput(new SimpleExporterInput(printer)); 
      SimplePrintServiceExporterConfiguration configuration = new SimplePrintServiceExporterConfiguration(); 
      configuration.setPrintRequestAttributeSet(printRequestAttributeSet); 
      configuration.setPrintServiceAttributeSet(printServiceAttributeSet); 
      exporter.setConfiguration(configuration); 
      //true para aprecer opções 
      configuration.setDisplayPageDialog(false); 
      configuration.setDisplayPrintDialog(false); 

      exporter.setConfiguration(configuration); 

      System.out.println("Inicializando impressão"); 
      exporter.exportReport(); 
      System.out.println("Impressão finalizada"); 



     //IMPRIMIR DIRETO 
     //JasperPrintManager.printReport(printer,false); 
     } 


}//fim imprimir 

$

теперь моя проблема печати с удаленного компьютера, то принтер на другом компьютере в локальной сети.

этот код работает только в локальной машине:

printServiceAttributeSet.add (новый PrinterName ("Argox OS-214 плюс серия PPLA", Locale.getDefault()));

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