2017-03-21 13 views
2

パネルからExcelテンプレートに1つまたは複数のレコードをエクスポートしようとしています。現在のところ、選択したレコードのみをエクスポートできますが、この部分を改善したいと考えています。私はそれを試したが、私はそれを見つけることができません。Excelで複数のレコードをエクスポートするExtJS

私のコードのExtJS:私はmvc.My Javaクラスを使用し

var prevFnExcel = function(grid, store, selModel){ 
     var parameters = store.data.keys.toString(); 
     var url = ctx + '/facturas.do?op=exportarExcel&idsFacturas=' + parameters; 

     Ext.DomHelper.append(document.body, { 
      tag: 'iframe', 
      id:'informeIframe', 
      frameBorder: 0, 
      width: 0, 
      height: 0, 
      css: 'display:none;visibility:hidden;height:0px;',      
      src: url 
     }); 
    return false; 
}; 

私は春に働いているように実装:

/* 
    * (non-Javadoc) 
    * @see pack.senectus.facturas.service.FacturasService#exportarExcel(javax.servlet.http.HttpServletResponse, java.io.InputStream, java.lang.Integer) 
    */ 
    @Override 
    public void exportarExcel(HttpServletResponse response, InputStream reporte, List<Integer> idsFacturas) throws ClassNotFoundException, Exception{ 

     List<DatosFactura> listaDatosFactura = new ArrayList<DatosFactura>(); 

     for (Integer id : idsFacturas) { 
      DatosFactura datosFactura = new DatosFactura(); 
      Sene1FacturaTeleasistencia factura = (Sene1FacturaTeleasistencia) sene1FacturaTeleasistenciaDAO.getById(id); 
      datosFactura.setSene1FacturaTeleasistencia(factura); 
      listaDatosFactura.add(datosFactura); 
     } 

     String titulo = "export_facturas.xls"; 
     JasperUtils.generarExcelJasperReport(reporte, listaDatosFactura, null, response, titulo); 

    } 

コントローラは次のとおりです。

public ModelAndView exportarExcel(HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, Exception{ 
     String dev = ""; 
     String ids = ServletRequestUtils.getStringParameter(request, "idsFacturas", ""); 
     String[] idsFacturas = ids.split(","); 
     try{ 
      InputStream reporte = request.getSession(true).getServletContext().getResourceAsStream("/WEB-INF/reportes/facturaExcel.jrxml"); 
      facturaTeleasistenciaService.exportarExcel(response, reporte, Arrays.asList(ArrayUtils.toObject(Stream.of(idsFacturas).mapToInt(Integer::parseInt).toArray()))); 
     } catch (BusinessException e) { 

      dev = Utils.successJsonWithId(Boolean.FALSE, e.getMessage(), 1); 
     } 
     return createJSONMaV(dev); 

    } 
+0

誰でも助けてくれますか? – Bufank85

答えて

0

それについて考えた上で一般的な知識のために、私はそれがいつでもある場合のために解決策を残す。

var prevFnPDF = function (grid, store, selModel) { 
var recordSelected = selModel.selections.map; 
var obj = new Array(); 
for (r in recordSelected) { 
obj.push (r); 
} 
var url = ctx + '/facturas.do?op=exportarPdf&idsFacturas=' + obj.toString(); 
関連する問題