Este ejemplo es bastante simple pero parece que a los desarrolladores de PHPRunner, en algunos casos nos cuesta recordar lo fácil que lo hace el producto para tratar los registros que previamente hemos seleccionado en una página LIST.
El ejemplo tiene como objetivo registrar si un registro se ha archivado o no, con que actualiza un campo en el registro con esta información y además crea un registro en la tabla de archivados, con la información del registro original.
Para el ejemplo me he fijado estos requisitos:
- Se actualizará el registro seleccionado, indicado que el registro se ha «archivado» y se creará un registro copia del anterior, en la tabla de «archivados».
- Se crearán 2 botones uno para «Archivar» y otro «Des-archivar» que hace la operación contraria.
- No se hará la operación si el registros está en el estado que se solicita debe quedar.
Objetivo
Facilitar la compresión y disponer de un ejemplo para el tratamiento de los registros seleccionados en una página de tipo LIST.
DEMO: https://fhumanes.com/guia26
Solución Técnica
Como se indicó, este ejemplo es muy simple. Lo único que se ha hecho es definir 2 botones para ejecutar las funciones.
En la codificación de los botones de 3 estados, la codificación del estado Server queda:
$result["txt"] = "No se ha actualizado ningún registro"; while ( $data = $button->getNextSelectedRecord() ) { $id = $data['id_guia26_usuario']; $nombre = $data['NombreyApellidos']; $status = $data['Estatus']; // Control de si ya tiene registro de copia $rs2 = DB::Query("SELECT count(*) registros FROM guia26_copia where guia26_usuario_id = $id "); $data2 = $rs2->fetchAssoc(); if ( $data2['registros'] == 0 ) { // Hay que hacer el registro copia y actualizar el estatus $data3 = array(); $data3["guia26_usuario_id"] = $id; $data3["FechaAlta"] = now(); DB::Insert("guia26_copia", $data3 ); $data4 = array(); $keyvalues4 = array(); $data4["Estatus"] = "1"; $keyvalues4["id_guia26_usuario"] = $id; DB::Update("guia26_usuario", $data4, $keyvalues4 ); $result["txt"] = "Los registro/s han sido actualizado/s"; } }
Os dejo el ejemplo para que lo podáis instalar en vuestros Windows.
Para cualquier duda o lo que necesitéis, contactar conmigo a través de mi email: [email protected]