Guía 71 – Plugin “Select2_ajax” – Actualización 29/08/2024

Se ha ampliado el artículo para explicar:

  • Se ha actualizado el plugin “Select2_ajax” porque tal y como estaba, no se podía dejar sin valor un campo que tuviese aplicado este plugin.

 

  • Se ha creado otro ejemplo, que entiendo es más fácil de entender, ya que el originalmente puesto, por el modelo de datos que utiliza estaba un poco “retorcida” la lógica de funcionamiento y podía generar confusión en su uso.

Este es el modelo de datos del nuevo ejemplo llamado “s2_car” y se muestra 3 lookups dependientes.

DEMO:  https://fhumanes.com/s2_car/

El código JavaScript de ADD y EDIT es:

var ctrl_s2_manufacturer_id = Runner.getControl(pageid,'s2_manufacturer_id'); 
var ctrl_s2_model_id = Runner.getControl(pageid,'s2_model_id');
var ctrl_s2_engine_id = Runner.getControl(pageid,'s2_engine_id');

setSession('s2_filter_manufacturer',ctrl_s2_manufacturer_id.getValue(), ctrl_s2_model_id); 

ctrl_s2_manufacturer_id.on('change', function() {
  console.log("Change Manufacturer");
  setSession( 's2_filter_manufacturer',ctrl_s2_manufacturer_id.getValue(), ctrl_s2_model_id);
  ctrl_s2_model_id.setValue('');
  ctrl_s2_engine_id.setValue('');
  clearSelect2(ctrl_s2_model_id);
  clearSelect2(ctrl_s2_engine_id);
});

ctrl_s2_model_id.on('change', function() {
  console.log("Change Model");
  setSession( 's2_filter_model',ctrl_s2_model_id.getValue(), ctrl_s2_engine_id);
  ctrl_s2_engine_id.setValue('');
   clearSelect2(ctrl_s2_engine_id);
});

ctrl_s2_engine_id.on('change', function() {
  console.log("Change Engine");	
});

Si deseas acceder al artículo completo, pulsa el siguiente enlace.

Guía 88 – Instalación de Plugins en PHPRunner v11

Algunos de los desarrolladores en PHPRunner me han preguntado:

  • ¿Los plugins de mi Blog funcionan en la versión 11?
  • ¿Cómo se instalan los plugins en la versión 11?

El presente artículo es para contestar estas preguntas a todos aquellos que deseen probar sus desarrollos en la citada versión y que utilicen alguno de los plugins que han descargado de mi Blog.

Si está interesado en este tema, sigue leyendo el artículo en este enlace.

Guía 87 – Añadir CSS dinámico a página LIST de paneles

Este caso, también, mi compañero Rubén tenía la necesidad de utilizar paneles en la página LIST y poder colorear (diferenciar) estos paneles dependiendo de la información de este.

Estuvimos buscando en los ejemplos y en el manual de Xlinesoft y no fuimos capaces de encontrar nada sobre este tema, así que os voy a contar cómo lo hemos resuelto.

Objetivo

Poder singularizar con colores, imágenes, etc. , los paneles de las páginas LIST dependiendo de su contenido.

DEMO:  https://fhumanes.com/panel_css/

Si estás interesado en este tema, sigue leyendo el artículo en este enlace.

Crear informes con phpSpreadsheet (actualización 24/07/2024)

En esta actualización se ha intentado mejorar la seguridad y la información que se facilita al usuario para indicar que el informe se está elaborando.

En concreto, se ha puesto un gráfico de progreso para indicar que el informe se está elaborando o se está descargando.

El botón de 3 estado queda codificado:

  • Client (before):
Swal.fire({
    // icon: 'info',
   title: 'El Informe se ha inciado y se está ejecutando',
   text: '',
   imageUrl: "MyCode/images/calculated.gif",
   imageHeight: 200,
   imageAlt: "Estamos trabajando",
   timer: 60000,
   timerProgressBar: true,
   toast: true,
   showConfirmButton: false,
   position:  'center', // "top-start",
   footer: ''
  })
  • Server:
$_SESSION['report_fase'] = 1;
$_SESSION['report_file'] = '';

include "MyCode/Report001/report.php";

$_SESSION['report_fase'] = 2;
$result['report_file'] = $_SESSION['report_file']
  • Cient (after):
window.open("MyCode/Report001/report.php","_blank" ); 

Swal.fire({
    // icon: 'info',
   title: 'El Informe se ha descargado',
   text: '',
   imageUrl: "MyCode/images/download.gif",
   imageHeight: 200,
    imageAlt: "Estamos trabajando",
   timer: 4000,
   timerProgressBar: true,
   toast: true,
   showConfirmButton: false,
   position:  'center', // "top-start",
   footer: ''
  })

 

Con este sistema el proceso de elaboración del informe se fracciona en 2 fases (la obtención y la descarga). A nivel de seguridad, no se puede ejecutar el informe aunque se conozca la URL del mismo y al usuario se le facilita el gráfico indicando que se está elaborando el informe.

DEMO: https://fhumanes.com/reports/

Si te interesa este tema o deseas disponer del ejemplo, sigue este enlace.

Blog personal para facilitar soporte gratuito a usuarios de PHPRunner