} //Si es un informe lo llama con sus parámetros if ($partes_objeto[0] == "inf") { if (@$partes_objeto[2] != "") { $en_ventana = $partes_objeto[2]; } if (@$partes_objeto[3] != "") { $formato = $partes_objeto[3]; } if (@$partes_objeto[4] != "") { $estilo = $partes_objeto[4]; } if (@$partes_objeto[5] != "") { $embebido = $partes_objeto[5]; } cargar_informe($partes_objeto[1], @$en_ventana); } } else { echo '<form name="cancelar" action="' . $ArchivoCORE . '" method="POST"> <input type="Hidden" name="PCO_Accion" value="Ver_menu"> <input type="Hidden" name="PCO_ErrorTitulo" value="' . $MULTILANG_ErrorTiempoEjecucion . '"> <input type="Hidden" name="PCO_ErrorDescripcion" value="' . $mensaje_error . '"> </form> <script type="" language="JavaScript"> document.cancelar.submit(); </script>'; } } /* ################################################################## */ /* ################################################################## */ if ($PCO_Accion == "guardar_configuracion") { /* Function: guardar_configuracion
function cargar_formulario($formulario, $en_ventana = 1, $PCO_CampoBusquedaBD = "", $PCO_ValorBusquedaBD = "", $anular_form = 0) { global $ConexionPDO, $ArchivoCORE, $TablasCore; global $PCO_InformeFiltro; global $_SeparadorCampos_; // Carga variables de definicion de tablas global $ListaCamposSinID_formulario, $ListaCamposSinID_formulario_objeto, $ListaCamposSinID_formulario_boton; global $MULTILANG_ErrorTiempoEjecucion, $MULTILANG_ObjetoNoExiste, $MULTILANG_ContacteAdmin, $MULTILANG_Formularios, $MULTILANG_VistaImpresion, $MULTILANG_InfRetornoFormFiltrado; // Busca datos del formulario $consulta_formulario = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario . " FROM " . $TablasCore . "formulario WHERE id=?", "{$formulario}"); $registro_formulario = @$consulta_formulario->fetch(); echo ' <script type="text/javascript"> function AgregarElemento(columna,fila,elemento) { //carga dinamicamente objetos html a marcos var capa = document.getElementById(ubicacion); var zona = document.createElement("po"); zona.innerHTML = elemento; capa.appendChild(zona); } function ImprimirMarco(nombre) { var marco_contenidos = document.getElementById(nombre); var ventana_impresion = window.open(" ", "PopUpImpresion"); //Agrega estilos basicos //ventana_impresion.document.write( \'<link rel="stylesheet" type="text/css" href="general.css">\' ); //Agrega titulo del formulario ventana_impresion.document.write( \'<div align=CENTER><b>' . $registro_formulario["titulo"] . '</b></div><hr>\' ); //Agrega el concenito del DIV al documento ventana_impresion.document.write( marco_contenidos.innerHTML ); ventana_impresion.document.close(); //Abre ventana de impresion ventana_impresion.print( ); //Cierra ventana de impresion ventana_impresion.close(); } </script> <!--<input type=button onclick=\'AgregarElemento("1","1","hello world");\'>-->'; //Si no encuentra formulario presenta error if ($registro_formulario["id"] == "") { mensaje($MULTILANG_ErrorTiempoEjecucion, $MULTILANG_ObjetoNoExiste . " " . $MULTILANG_ContacteAdmin . "<br>(" . $MULTILANG_Formularios . " {$formulario})", '', 'fa fa-times fa-5x icon-red texto-blink', 'alert alert-danger alert-dismissible'); } // En caso de recibir un campo base y valor base se hace la busqueda para recuperar la informacion if ($PCO_CampoBusquedaBD != "" && $PCO_ValorBusquedaBD != "") { $consulta_datos_formulario = $ConexionPDO->prepare("SELECT * FROM " . $registro_formulario["tabla_datos"] . " WHERE {$PCO_CampoBusquedaBD}='{$PCO_ValorBusquedaBD}'"); $consulta_datos_formulario->execute(); $registro_datos_formulario = $consulta_datos_formulario->fetch(); } // Define la barra de herramientas mini superior (en barra de titulo) @($barra_herramientas_mini .= ' <a href="#" title="' . $MULTILANG_VistaImpresion . '" name=""> <i class="fa fa-print" OnClick="ImprimirMarco(\'MARCO_IMPRESION\');"></i> </a>'); // Establece color de fondo para el form $color_fondo = "#f2f2f2"; // Crea ventana si aplica para el form if ($en_ventana) { abrir_ventana($registro_formulario["titulo"], 'panel-primary', '', $barra_herramientas_mini); } // Muestra ayuda en caso de tenerla $imagen_ayuda = 'fa fa-info-circle fa-5x texto-azul'; if ($registro_formulario["ayuda_titulo"] != "" || $registro_formulario["ayuda_texto"] != "") { mensaje($registro_formulario["ayuda_titulo"], $registro_formulario["ayuda_texto"], '100%', $imagen_ayuda, 'alert alert-info alert-dismissible'); } //Inicia el formulario de datos echo '<div id="MARCO_IMPRESION">'; //Si se quiere anular el formulario y su accion cuando se trata de un sub-formulario de consulta if (!$anular_form) { echo '<form id="datos" name="datos" action="' . $ArchivoCORE . '" method="POST" enctype="multipart/form-data" style="display:inline; height: 0px; border-width: 0px; width: 0px; padding: 0; margin: 0;"> <input type="Hidden" name="formulario" value="' . $formulario . '"> <input type="Hidden" name="id_registro_datos" value="' . @$registro_datos_formulario["id"] . '"> <input type="Hidden" name="PCO_FormularioActivo" value="' . $formulario . '"> <input type="Hidden" name="PCO_Accion" value="guardar_datos_formulario"> <input type="Hidden" name="PCO_ErrorIcono" value="' . @$PCO_ErrorIcono . '"> <input type="Hidden" name="PCO_ErrorEstilo" value="' . @$PCO_ErrorEstilo . '"> <input type="Hidden" name="PCO_ErrorTitulo" value="' . @$PCO_ErrorTitulo . '"> <input type="Hidden" name="PCO_ErrorDescripcion" value="' . @$PCO_ErrorDescripcion . '"> <input type="Hidden" name="Presentar_FullScreen" value="' . @$Presentar_FullScreen . '"> <input type="Hidden" name="Precarga_EstilosBS" value="' . @$Precarga_EstilosBS . '"> <input type="Hidden" name="objeto" value=""> <!--Requerido si se va a transferir el control a un objeto FRM o INF--> '; } // Inicio de la generacion de encabezados pestanas //Cuenta las pestanas segun los objetos del form y ademas mira si es solo una con valor vacio (sin pestanas) $consulta_conteo_pestanas = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_objeto . " FROM " . $TablasCore . "formulario_objeto WHERE formulario=? GROUP BY pestana_objeto ORDER BY pestana_objeto", "{$formulario}"); $conteo_pestanas = 0; while ($registro_conteo_pestanas = @$consulta_conteo_pestanas->fetch()) { $conteo_pestanas++; $ultimo_nombre_pestanas = $registro_conteo_pestanas["pestana_objeto"]; } //Presenta barra de navegacion de pestanas si se encuentra al menos una if ($conteo_pestanas > 0 && $ultimo_nombre_pestanas != "") { $consulta_formulario_pestana = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_objeto . " FROM " . $TablasCore . "formulario_objeto WHERE formulario=? GROUP BY pestana_objeto ORDER BY pestana_objeto", "{$formulario}"); echo '<ul class="nav nav-tabs nav-justified">'; //nav-pills $estado_activa_primera_pestana = ' class="active" '; $pestana_activa = 1; while ($registro_formulario_pestana = @$consulta_formulario_pestana->fetch()) { $titulo_pestana_formulario = $registro_formulario_pestana["pestana_objeto"]; if ($titulo_pestana_formulario == "") { $titulo_pestana_formulario = "<i class='fa fa-stack-overflow'></i>"; } echo '<li ' . $estado_activa_primera_pestana . '><a href="#pestana_formulario_' . $pestana_activa . '" data-toggle="tab">' . $titulo_pestana_formulario . '</a></li>'; //Limpia para las siguientes pestanas $estado_activa_primera_pestana = ''; $pestana_activa++; } echo '</ul>'; } // Fin de la generacion de encabezados pestanas //Genera las pestanas con su contenido if ($conteo_pestanas > 0) { $consulta_formulario_pestana = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_objeto . " FROM " . $TablasCore . "formulario_objeto WHERE formulario=? GROUP BY pestana_objeto ORDER BY pestana_objeto", "{$formulario}"); $estado_activa_primera_pestana = 'in active'; $pestana_activa = 1; //Inicio de los tab-content echo '<div class="tab-content">'; while ($registro_formulario_pestana = @$consulta_formulario_pestana->fetch()) { $titulo_pestana_formulario = $registro_formulario_pestana["pestana_objeto"]; //Genera el contenedor de la pestana echo ' <!-- INICIO de las pestanas No ' . $pestana_activa . ' --> <div class="tab-pane fade ' . $estado_activa_primera_pestana . '" id="pestana_formulario_' . $pestana_activa . '">'; //Booleana que determina si se debe incluir el javascript de ckeditor $existe_campo_textoformato = 0; //DIAGRAMACION DE LA TABLA CON ELEMENTOS DEL FORMULARIO $limite_inferior = -9999; // Peso inferior a tener en cuenta en el query $constante_limite_superior = +9999; $limite_superior = $constante_limite_superior; // Peso superior a tener en cuenta en el query //Busca todos los objetos marcados como fila_unica=1 y agrega un registro mas con el limite superior $consulta_obj_fila_unica = ejecutar_sql("SELECT id,peso,visible FROM " . $TablasCore . "formulario_objeto WHERE pestana_objeto=? AND formulario=? AND fila_unica='1' AND visible=1 UNION SELECT 0,{$limite_superior},0 ORDER BY peso", "{$titulo_pestana_formulario}{$_SeparadorCampos_}{$formulario}"); //Define si debe o no dibujar borde de las celdas $estilo_bordes = "table-unbordered"; if ($registro_formulario["borde_visible"] == 1) { $estilo_bordes = "table-bordered"; } while ($registro_obj_fila_unica = $consulta_obj_fila_unica->fetch()) { $limite_superior = $registro_obj_fila_unica["peso"]; $ultimo_id = $registro_obj_fila_unica["id"]; // Inicia la tabla con los campos echo ' <div class="table-responsive"> <table class="table table-responsive ' . $estilo_bordes . ' table-condensed btn-xs"><tr>'; //Recorre todas las comunas definidas para el formulario buscando objetos for ($cl = 1; $cl <= $registro_formulario["columnas"]; $cl++) { //Busca los elementos de la coumna actual del formulario con peso menor o igual al peso del objeto fila_unica de la fila unica_actual pero que no son fila_unica $consulta_campos = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_objeto . " FROM " . $TablasCore . "formulario_objeto WHERE pestana_objeto=? AND formulario=? AND columna=? AND visible=1 AND peso >? AND peso <=? ORDER BY peso", "{$titulo_pestana_formulario}{$_SeparadorCampos_}{$formulario}{$_SeparadorCampos_}{$cl}{$_SeparadorCampos_}{$limite_inferior}{$_SeparadorCampos_}{$limite_superior}"); //Inicia columna de formulario $PCO_AnchoColumnas = round(100 / $registro_formulario["columnas"]); echo '<td width="' . $PCO_AnchoColumnas . '%">'; // Crea los campos definidos por cada columna de formulario while ($registro_campos = $consulta_campos->fetch()) { //Determina si el estilo del objeto debe ser inline o no $cadena_modo_inline = ''; if ($registro_campos["modo_inline"]) { $cadena_modo_inline = 'display:inline;'; } echo '<div style="' . $cadena_modo_inline . '">'; //Imprime el campo solamente si no es fila unica, si es fila_unica guarda en una variable para uso posterior if ($registro_campos["fila_unica"] == "0") { // Formatea cada campo de acuerdo a su tipo // CUIDADO!!! Modificando las lineas de tipo siguientes debe modificar las lineas de tipo un poco mas abajo tambien $tipo_de_objeto = @$registro_campos["tipo"]; if ($tipo_de_objeto == "texto_corto") { $objeto_formateado = @cargar_objeto_texto_corto($registro_campos, @$registro_datos_formulario, $formulario, $en_ventana); } if ($tipo_de_objeto == "texto_clave") { $objeto_formateado = @cargar_objeto_texto_corto($registro_campos, @$registro_datos_formulario, $formulario, $en_ventana); } if ($tipo_de_objeto == "texto_largo") { $objeto_formateado = @cargar_objeto_texto_largo($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "texto_formato") { $objeto_formateado = @cargar_objeto_texto_formato($registro_campos, @$registro_datos_formulario, $existe_campo_textoformato); $existe_campo_textoformato = 1; } if ($tipo_de_objeto == "area_responsive") { $objeto_formateado = @cargar_objeto_area_responsive($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "lista_seleccion") { $objeto_formateado = @cargar_objeto_lista_seleccion($registro_campos, @$registro_datos_formulario, $formulario, $en_ventana); } if ($tipo_de_objeto == "lista_radio") { $objeto_formateado = @cargar_objeto_lista_radio($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "casilla_check") { $objeto_formateado = @cargar_objeto_casilla_check($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "etiqueta") { $objeto_formateado = @cargar_objeto_etiqueta($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "url_iframe") { $objeto_formateado = @cargar_objeto_iframe($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "informe") { @cargar_informe($registro_campos["informe_vinculado"], $registro_campos["objeto_en_ventana"], "htm", "Informes", 1); } if ($tipo_de_objeto == "deslizador") { $objeto_formateado = @cargar_objeto_deslizador($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "campo_etiqueta") { $objeto_formateado = @cargar_objeto_campoetiqueta($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "archivo_adjunto") { $objeto_formateado = @cargar_objeto_archivo_adjunto($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "objeto_canvas") { $objeto_formateado = @cargar_objeto_canvas($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "objeto_camara") { $objeto_formateado = @cargar_objeto_camara($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "boton_comando") { $objeto_formateado = @cargar_objeto_boton_comando($registro_campos, @$registro_datos_formulario); } //Carga SubFormulario solo si no es el mismo actual para evitar ciclos infinitos //Ademas si es subformulario debe consultar en ese registro de ID buscado del form //padre el valor del campo foraneo del form hijo para llamar a buscar form con //el valor de Id correspondiente if ($tipo_de_objeto == "form_consulta" && $registro_campos["formulario_vinculado"] != $formulario) { //Busca la tabla principal del subformulario anidado $PCO_ValorCampoBind = $registro_campos["formulario_vinculado"]; if ($PCO_ValorCampoBind == "") { $PCO_ValorCampoBind = ""; } $consulta_tabla_subform = ejecutar_sql("SELECT tabla_datos FROM " . $TablasCore . "formulario WHERE id=? ", "{$PCO_ValorCampoBind}")->fetch(); $PCO_TablaSubform = $consulta_tabla_subform["tabla_datos"]; //Determina el valor del campo a vincular en el registro padre (el actual). Deberia dar el id que se va a buscar $PCO_ValorCampoPadre = @$registro_datos_formulario[$registro_campos["formulario_campo_vinculo"]]; //Si no se encuentra el dato o registro entonces mira si vienen desde un boton de busqueda y usa su valor if ($PCO_ValorCampoPadre == "" && $PCO_ValorBusquedaBD != "") { //$PCO_ValorCampoPadre=$PCO_ValorBusquedaBD; } //Si no obtiene ningun valor entonces lo pone en cero para evitar error de sintaxis en Bind de SQL if ($PCO_ValorCampoPadre == "") { $PCO_ValorCampoPadre = 0; } $PCO_CampoForaneoSubform = $registro_campos["formulario_campo_foraneo"]; //Busca el ID de registro correspondiente en la tabla de datos para llamar con el valor coincidente $consulta_registro_subform = ejecutar_sql("SELECT {$PCO_CampoForaneoSubform} FROM {$PCO_TablaSubform} WHERE {$PCO_CampoForaneoSubform}=? ", "{$PCO_ValorCampoPadre}")->fetch(); @cargar_formulario($registro_campos["formulario_vinculado"], $registro_campos["objeto_en_ventana"], $registro_campos["formulario_campo_foraneo"], $PCO_ValorCampoPadre, 1); } //Imprime el objeto siempre y cuando no sea uno preformateado por practico (informes, formularios, etc) if ($registro_campos["tipo"] != "informe" && $registro_campos["tipo"] != "form_consulta") { echo $objeto_formateado; } } //Cierra el marco para el estilo inline del objeto echo '</div>'; } echo '</td>'; //Fin columna de formulario } // Finaliza la tabla con los campos echo '</tr></table> </div>'; //Busca datos del registro de fila_unica $consulta_campos = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_objeto . " FROM " . $TablasCore . "formulario_objeto WHERE formulario=? AND id=? ", "{$formulario}{$_SeparadorCampos_}{$ultimo_id}"); $registro_campos = $consulta_campos->fetch(); //Agrega el campo de fila unica cuando no se trata del agregado de peso 9999 if ($registro_campos["visible"] == "1") { //echo ' '.$registro_campos["titulo"]; // Formatea cada campo de acuerdo a su tipo // CUIDADO!!! Modificando las lineas de tipo siguientes debe modificar las lineas de tipo un poco mas arriba tambien echo ' <div class="table-responsive"> <table class="table table-condensed btn-xs ' . $estilo_bordes . '"><tr><td>'; $tipo_de_objeto = @$registro_campos["tipo"]; if ($tipo_de_objeto == "texto_corto") { $objeto_formateado = cargar_objeto_texto_corto($registro_campos, @$registro_datos_formulario, $formulario, $en_ventana); } if ($tipo_de_objeto == "texto_clave") { $objeto_formateado = cargar_objeto_texto_corto($registro_campos, @$registro_datos_formulario, $formulario, $en_ventana); } if ($tipo_de_objeto == "texto_largo") { $objeto_formateado = cargar_objeto_texto_largo($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "texto_formato") { $objeto_formateado = cargar_objeto_texto_formato($registro_campos, @$registro_datos_formulario, $existe_campo_textoformato); $existe_campo_textoformato = 1; } if ($tipo_de_objeto == "area_responsive") { $objeto_formateado = @cargar_objeto_area_responsive($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "lista_seleccion") { $objeto_formateado = cargar_objeto_lista_seleccion($registro_campos, @$registro_datos_formulario, $formulario, $en_ventana); } if ($tipo_de_objeto == "lista_radio") { $objeto_formateado = cargar_objeto_lista_radio($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "casilla_check") { $objeto_formateado = @cargar_objeto_casilla_check($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "etiqueta") { $objeto_formateado = cargar_objeto_etiqueta($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "url_iframe") { $objeto_formateado = cargar_objeto_iframe($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "informe") { cargar_informe($registro_campos["informe_vinculado"], $registro_campos["objeto_en_ventana"], "htm", "Informes", 1); } if ($tipo_de_objeto == "deslizador") { $objeto_formateado = @cargar_objeto_deslizador($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "campo_etiqueta") { $objeto_formateado = @cargar_objeto_campoetiqueta($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "archivo_adjunto") { $objeto_formateado = @cargar_objeto_archivo_adjunto($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "objeto_canvas") { $objeto_formateado = @cargar_objeto_canvas($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "objeto_camara") { $objeto_formateado = @cargar_objeto_camara($registro_campos, @$registro_datos_formulario); } if ($tipo_de_objeto == "boton_comando") { $objeto_formateado = @cargar_objeto_boton_comando($registro_campos, @$registro_datos_formulario); } //Carga SubFormulario solo si no es el mismo actual para evitar ciclos infinitos //Ademas si es subformulario debe consultar en ese registro de ID buscado del form //padre el valor del campo foraneo del form hijo para llamar a buscar form con //el valor de Id correspondiente if ($tipo_de_objeto == "form_consulta" && $registro_campos["formulario_vinculado"] != $formulario) { //Busca la tabla principal del subformulario anidado $PCO_ValorCampoBind = $registro_campos["formulario_vinculado"]; if ($PCO_ValorCampoBind == "") { $PCO_ValorCampoBind = ""; } $consulta_tabla_subform = ejecutar_sql("SELECT tabla_datos FROM " . $TablasCore . "formulario WHERE id=? ", "{$PCO_ValorCampoBind}")->fetch(); $PCO_TablaSubform = $consulta_tabla_subform["tabla_datos"]; //Determina el valor del campo a vincular en el registro padre (el actual). Deberia dar el id que se va a buscar $PCO_ValorCampoPadre = @$registro_datos_formulario[$registro_campos["formulario_campo_vinculo"]]; //Si no se encuentra el dato o registro entonces mira si vienen desde un boton de busqueda y usa su valor if ($PCO_ValorCampoPadre == "" && $PCO_ValorBusquedaBD != "") { //$PCO_ValorCampoPadre=$PCO_ValorBusquedaBD; } //Si no obtiene ningun valor entonces lo pone en cero para evitar error de sintaxis en Bind de SQL if ($PCO_ValorCampoPadre == "") { $PCO_ValorCampoPadre = 0; } $PCO_CampoForaneoSubform = $registro_campos["formulario_campo_foraneo"]; //Busca el ID de registro correspondiente en la tabla de datos para llamar con el valor coincidente $consulta_registro_subform = ejecutar_sql("SELECT {$PCO_CampoForaneoSubform} FROM {$PCO_TablaSubform} WHERE {$PCO_CampoForaneoSubform}=? ", "{$PCO_ValorCampoPadre}")->fetch(); @cargar_formulario($registro_campos["formulario_vinculado"], $registro_campos["objeto_en_ventana"], $registro_campos["formulario_campo_foraneo"], $PCO_ValorCampoPadre, 1); } //Imprime el objeto siempre y cuando no sea uno preformateado por practico (informes, formularios, etc) if ($registro_campos["tipo"] != "informe" && $registro_campos["tipo"] != "form_consulta") { echo $objeto_formateado; } echo '</td></tr></table> </div>'; } //Actualiza limite inferior para siguiente lista de campos $limite_inferior = $registro_obj_fila_unica["peso"]; } echo ' </div> <!-- FIN de las pestanas No ' . $pestana_activa . '-->'; //Limpia para las siguientes pestanas $estado_activa_primera_pestana = ''; $pestana_activa++; } //Fin de los tab-content echo '</div>'; } //Fin Si conteo pestanas > 0 echo '</div> <!-- cierra MARCO_IMPRESION -->'; //Busca los campos definidos como visilbe=0 (o NO) para agregarlos como hidden $consulta_ocultos = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_objeto . " FROM " . $TablasCore . "formulario_objeto WHERE formulario=? AND visible=0 ", "{$formulario}"); while ($registro_ocultos = $consulta_ocultos->fetch()) { // Formatea cada campo de acuerdo a su tipo $objeto_formateado = @cargar_objeto_oculto($registro_ocultos, $registro_datos_formulario, $formulario, $en_ventana); //Imprime el objeto siempre y cuando no sea uno preformateado por practico (informes, formularios, etc) if ($registro_campos["tipo"] != "informe" && $registro_campos["tipo"] != "form_consulta" && $registro_campos["tipo"] != "boton_comando") { echo $objeto_formateado; } } // Si tiene botones agrega barra de estado y los ubica $consulta_botones = ejecutar_sql("SELECT id," . $ListaCamposSinID_formulario_boton . " FROM " . $TablasCore . "formulario_boton WHERE formulario=? AND visible=1 ORDER BY peso", "{$formulario}"); if ($consulta_botones->rowCount() > 0 || $PCO_InformeFiltro != "") { abrir_barra_estado(); echo '<div align="center">'; while ($registro_botones = $consulta_botones->fetch()) { //Transfiere variables de mensajes de retorno asociadas al boton $comando_javascript = ""; if ($registro_botones["retorno_titulo"] != "") { $comando_javascript = "document.datos.PCO_ErrorTitulo.value='" . $registro_botones["retorno_titulo"] . "'; document.datos.PCO_ErrorDescripcion.value='" . $registro_botones["retorno_texto"] . "'; document.datos.PCO_ErrorIcono.value='" . $registro_botones["retorno_icono"] . "'; document.datos.PCO_ErrorEstilo.value='" . $registro_botones["retorno_estilo"] . "';"; } //Define el tipo de boton de acuerdo al tipo de accion if ($registro_botones["tipo_accion"] == "interna_guardar") { $comando_javascript .= "document.getElementById('datos').submit();"; } if ($registro_botones["tipo_accion"] == "interna_limpiar") { $comando_javascript .= "document.getElementById('datos').reset();"; } if ($registro_botones["tipo_accion"] == "interna_escritorio") { $comando_javascript .= "document.core_ver_menu.submit();"; } if ($registro_botones["tipo_accion"] == "interna_actualizar") { $comando_javascript .= "document.datos.PCO_Accion.value='actualizar_datos_formulario';document.datos.submit();"; } if ($registro_botones["tipo_accion"] == "interna_eliminar") { $comando_javascript .= "document.datos.PCO_Accion.value='eliminar_datos_formulario';document.datos.submit();"; } if ($registro_botones["tipo_accion"] == "interna_cargar") { $comando_javascript .= "document.datos.PCO_Accion.value='cargar_objeto';document.datos.objeto.value='" . $registro_botones["accion_usuario"] . "';document.datos.submit();"; } if ($registro_botones["tipo_accion"] == "externa_formulario") { $comando_javascript .= "document.datos.PCO_Accion.value='" . $registro_botones["accion_usuario"] . "';document.datos.submit();"; } if ($registro_botones["tipo_accion"] == "externa_javascript") { $comando_javascript .= $registro_botones["accion_usuario"]; } //Verifica si el registro de botones presenta algun texto de confirmacion y lo antepone al script $cadena_confirmacion_accion_pre = ""; $cadena_confirmacion_accion_pos = ""; if ($registro_botones["confirmacion_texto"] != "") { $cadena_confirmacion_accion_pre = " if (confirm('" . $registro_botones["confirmacion_texto"] . "')) {"; $cadena_confirmacion_accion_pos = " } else {} "; } //Genera la cadena del enlace $cadena_javascript = 'href="javascript: ' . $cadena_confirmacion_accion_pre . ' ' . @$comando_javascript . ' ' . $cadena_confirmacion_accion_pos . ' "'; //Si no se especifica un estilo para el boton entonces se usa el predeterminado $estilo_basico_boton = "btn btn-default"; echo '<a class="' . $estilo_basico_boton . ' ' . $registro_botones["estilo"] . '" ' . @$cadena_javascript . '>' . $registro_botones["titulo"] . '</a>'; echo ' '; //Agrega espacio temporal entre controles } if ($PCO_InformeFiltro != "") { //Si se encuentra que el form viene llamado desde un informe que lo requiere para filtro agrega un boton de retorno al informe automaticamente $comando_javascript = "document.datos.PCO_Accion.value='cargar_objeto';document.datos.objeto.value='inf:" . $PCO_InformeFiltro . ":1';document.datos.submit();"; $cadena_javascript = 'href="javascript:' . @$comando_javascript . '"'; echo '<a class="' . $estilo_basico_boton . ' btn-warning" ' . @$cadena_javascript . '>' . $MULTILANG_InfRetornoFormFiltrado . '</a>'; } echo '</div>'; cerrar_barra_estado(); } //Cierra todo el formulario //Si se quiere anular el formulario y su accion cuando se trata de un sub-formulario de consulta if (!$anular_form) { echo '</form>'; } //Carga las funciones JavaScript asociadas al formulario y llama la funcion FrmAutoRun() echo '<script type="text/javascript">' . $registro_formulario["javascript"] . ' FrmAutoRun(); </script>'; if ($en_ventana) { cerrar_ventana(); } }