Modelo de datos ModelReport

El nuevo modelo añadido por el plugin ExtendedReport se denomina ModelReport. Para diferenciar los nuevos modelos creados para el cálculo de nuestros informes de los otros modelos de datos, este tipo de modelo se deben guardar en la carpeta Report dentro de la carpeta Model donde se encuentran todos los modelos de datos.

También, dado que el modelo para el cálculo del informe puede contener muchas líneas de código (dependiendo de la complejidad del cálculo de los resultados finales), se recomienda separar en otra clase la estructura de datos finales. Normalmente guardaremos esta clase con los datos finales dentro de una carpeta Data dentro de Report.

Así la estructura final aconsejable sería:

Facturascripts

  • Model: Carpeta con los modelos de la base de datos.
  • Model \ Report: Carpeta con los nuevos modelos para informes donde se calculan los datos del informe.
  • Model \ Report \ Data: Carpeta con la clase para almacenar cada uno de los registros con los datos calculados.

Obtención de los datos

loadData

Para un correcto funcionamiento del modelo, tenemos que rellenar el atributo data, que es un array, con la estructura de datos a visualizar en el informe donde cada registro del mismo se corresponde con una fila del detalle del informe.

Para ello es obligatorio definir el método loadData que se encargará de realizar la obtención de la base de datos de todos los datos necesarios, la realización de los cálculos y de ir añadiendo al array con cada uno de los registros a visualizar.

Ejemplo donde se introduce en una clase adicional los resultados con los cálculos:


    class ComparativeData
    {
            public $code;
              public $name;
    }

    class CustomerReport extends ModelReport
    {
            public function loadData()
              {
                        $data = self::$dataBase->select($this->getSQL());
                        foreach ($data as $row) {
                                $record = new ComparativeData();
                                $record->code = $row['code'];
                                $record->name = $row['name'];
                                $this->data[] = $record;
                        }
                }
    }
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.15575s

Soporte