La mayoría de los foros, blogs, tutoriales, etc. de creación de informes de Magento parecen centrarse en tomar un informe de Magento existente y copiarlo o extenderlo . La mayoría de estos son cuadrículas que se vinculan a un conjunto de datos específico y todos incluyen filtros estándar, es decir, desde / hasta la fecha y el período (más filtros adicionales en algunos informes).
Sin embargo, parece que hay muy poca información sobre cómo crear un informe completamente personalizado con filtros personalizados.
Por ejemplo, a un cliente le gustaría un informe con dos filtros personalizados que informe solo sobre dos métricas agregadas simples.
magento-1.9
reports
jonadams51
fuente
fuente
Respuestas:
En primer lugar, debe generar un módulo personalizado, crear los siguientes archivos:
Defina su módulo en /app/etc/modules/Mycompany_Mymodule.xml :
Complete el archivo de diseño que actualizará la vista de administración (siempre hago esto primero porque no quiero olvidarlo). /app/design/adminhtml/default/default/layout/mymodule.xml
Cree el archivo de configuración con este contenido /app/code/local/Mycompany/Mymodule/etc/config.xml :
Aquí definimos el controlador, el acceso al menú y los permisos, el modelo, los bloques y el ayudante.
Cree la cuadrícula y especifique todas las columnas /app/code/local/Mycompany/Mymodule/Block/adminhtml/Mymodule/Grid.php :
Este archivo es más claro, pero te doy algunos consejos sobre líneas específicas:
// esta línea indica el modelo a utilizar para obtener los datos.
Para el siguiente paso, cree el bloque contenedor de cuadrícula /app/code/local/Mycompany/Mymodule/Block/adminhtml/Mymodule.php :
Aquí agregamos esta línea para eliminar el botón Agregar: // Esto debe ser siempre después de la
parent::__construct();
línea.$this->_removeButton('add');
Cree el contenedor de bloques /app/code/local/Mycompany/Mymodule/Block/Mymodule.php :
Cree el controlador /app/code/local/Mycompany/Mymodule/controllers/Adminhtml/MymoduleController.php :
Luego, la ayuda vacía /app/code/local/Mycompany/Mymodule/Helper/Data.php :
Y para el último creamos el modelo que traerá los datos /app/code/local/Mycompany/Mymodule/Model/Mymodule.php :
Este es un modelo personalizado que obtiene los datos de los modelos principales de Magento, aquí puede definir cualquier modelo o si ya tiene sus propias bases de datos / tablas , puede obtener los datos del informe. // esta línea restablece la consulta original que viene por defecto.
$this->_reset();
Intenté agregar todos estos archivos, pero una vez que hago clic en el nuevo elemento del menú del informe aparece una página en blanco.
fuente
Simplemente cambie el nombre de la carpeta
adminhtml
a laAdminhtml
siguiente ruta:app / code / local / Mycompany / Mymodule / Block / adminhtml / Mymodule.php
fuente