예제 #1
0
  /** No visualizar los campos que no tengan totales */
  protected void setVisibleFields() {

    if (!showDetail) {

      for (int i = 0; i < fields.size(); i++) {

        ReportField field = ((ReportField) fields.get(i));
        // buscar el campo en los totales y totales de los grupos
        boolean exist = false;

        for (int k = 0; k < totalFields.size(); k++) {
          if (((ReportTotalField) totalFields.get(k)).getField() == field) exist = true;
        }

        for (int k = 0; k < groups.size(); k++) {

          ReportGroup group = (ReportGroup) groups.get(k);

          for (int j = 0; j < group.getTotalFields().size(); j++) {

            if (((ReportTotalField) group.getTotalFields().get(j)).getField() == field)
              exist = true;
          }
        }
        if (!exist) field.setVisible(false);
      }
    }
  }
예제 #2
0
 /**
  * Número de campos visibles
  *
  * @return
  */
 public int getFieldCount() {
   int count = 0;
   for (ReportField f : getFields()) {
     if (f.isVisible()) ++count;
   }
   return count;
 }
예제 #3
0
  /** Configurar el ancho de las columnas con respecto a la información de las celdas. */
  protected void configColumns() {

    // configurar el ancho de las columnas de los grupos.
    for (int i = 0; i < groups.size(); i++)
      if (showDetail) getExcel().setColumnWidthCharacters(i, (i + 2));
      else getExcel().setColumnWidth(i, ((ReportGroup) groups.get(i)).getMaxWidth());

    // configurar el ancho de las columnas de los campos.
    int cont = 0;
    for (int i = 0; i < fields.size(); i++) {

      // excel.autoSizeColumn((short)i);
      ReportField field = ((ReportField) fields.get(i));

      if (field.isVisible()) {

        if (field.getDisplayWidth() > 0) {
          getExcel().setColumnWidthCharacters(getInitColumnIndex() + cont, field.getDisplayWidth());
        } else {
          // Formateo de la primera columna para evita tomar el ancho
          // del título y desajustar el informe.
          // if (cont == getInitColumnIndex()) {
          // double pixels = field.getMaxWidthPixels();
          // // Ampliar el ancho de la columna si tiene un campo a
          // totalizar.
          // if
          // (getTotalFields().getReportTotalField(field.getFieldName())
          // != null)
          // pixels += 2;
          // getExcel().setColumnWidthCharacters(getInitColumnIndex()
          // + cont, pixels);
          // }
          // else
          getExcel().autoSizeColumn(getInitColumnIndex() + cont);
        }
        ++cont;
      }
    }

    // Ajustar de nuevo la fila con el máximo tamaño calculado con los
    // valores contenidos en sus campos ya que al realizar el autosize del
    // paso anterior
    // la columna 0 se ajusta con el título y queda desproporcionada el
    // campo 1.
    // if (groups.size() == 0) {
    // if (fields.size() > 0) {
    // getExcel().setColumnWidthCharacters(0,
    // fields.get(0).getMaxWidthPixels());
    // }
    // }

    // Merge de celdas para el título hasta completar todos los campos
    // mostrados en el informe.
    if (cont > 1 && header.hasLogos()) {
      if (header.getTitleRow() > -1)
        excel.mergeCells(
            header.getTitleRow(),
            getInitColumnIndex(),
            header.getTitleRow(),
            getInitColumnIndex() + cont - 1);
      if (header.getSubtitleRow() > -1)
        excel.mergeCells(
            header.getSubtitleRow(),
            getInitColumnIndex(),
            header.getSubtitleRow(),
            getInitColumnIndex() + cont - 1);
    }

    // Logos
    try {

      // Altura de filas de cabecera
      excel.setRowHeight(header.getTitleRow(), 400);

      if (header.getSubtitleRow() > -1) excel.setRowHeight(header.getSubtitleRow(), 400);

      header.generateLogos();

    } catch (Exception e) {
      e.printStackTrace();
    }
  }