Scriptcase 9. Agregar botón a la derecha de un campo en app formulario

675 views
Skip to first unread message

Fausto Martinez

unread,
Jul 10, 2022, 3:25:18 PM7/10/22
to Comunidad ScriptCase Latino

El objetivo es colocar un botón de enlace a la derecha de un campo de una aplicación formulario, la idea es poder abrir una aplicación modal y mostrar información referente al campo donde colocaremos el botón, quedando nuestro botón de esta forma:



1.- Crear botón de enlace con la siguiente características y nos aseguramos que el botón quede en la barra superior de botones (barra de herramientas).

 

Como puedes notar utilizamos en modo de visualización de tipo imagen y una imagen png de las que trae SC en su biblioteca de imágenes.

2.- En la configuración del botón enlace presionamos el botón enlace y configuramos el enlace tal y como usted lo ha venido haciendo cada vez que necesita un botón de enlace. En mi caso las propiedades del enlace quedaron de la siguiente forma:




El url de salida se refiere a la aplicación que debe regresar al cerrar el modal, si lo deja vacío regresará a la misma aplicación desde donde se está cargando el modal, yo de todos modos prefiero ponerle el nombre de la aplicación aunque sea la misma. 


3.- Usando el inspector de código de su navegador consiga el ID del botón que quieres colocar al lado del campo y el ID del campo. 


En mi caso: 

Id del campo: id_ajax_label_disponible

Id del Botón: sc_btnHistorico_top


4.- En el evento onScriptInit, pegamos el siguiente código y solo es necesario cambiar el Id de su botón y de su campo.


?>

<head>

    <style>

        img#id_img_sc_btnHistorico_top:hover {

            transform: scale(1.2);

        }

        img#id_img_sc_btnHistorico_top:active {

            transform: scale(0.98);

        }

    </style>

</head>

<body>

    <script>

        document.addEventListener("DOMContentLoaded", function(event) {

            $("#sc_btnHistorico_top").clone().insertAfter( "#id_ajax_label_disponible" );

            $("td.scFormToolbar #sc_btnHistorico_top" ).remove();

            $("<span>&nbsp;&nbsp;</span>").insertAfter("#id_ajax_label_disponible");

        });

    </script>  

</body>

<?php


El estilo es opcional, este afecta directamente la imagen en el botón y lo que hace es proporcionar un efecto cuando el puntero del mouse pasa sobre este y cuando se da un click a la imagen.

 

Con estos 4 simples pasos, su botón debería funcionar al 100%. En este caso utilice en un botón de enlace, pero usted puede utilizarlo para colocar cualquier tipo de botón (php, javascript, ajax, etc.) y podría servir para cumplir diferentes tipo de requerimientos.



Espero que este pequeño instructivo pueda servir de ayuda!!!!


Fausto

unread,
Jul 26, 2022, 10:57:07 PM7/26/22
to Comunidad ScriptCase Latino

El código jquery para mover el botón 

<script>
    document.addEventListener("DOMContentLoaded", function(event) {
        $("#sc_btnHistorico_top").clone().insertAfter( "#id_ajax_label_disponible" );
        $("td.scFormToolbar #sc_btnHistorico_top" ).remove();
        $("<span>&nbsp;&nbsp;</span>").insertAfter("#id_ajax_label_disponible");
      });
</script> 


puede ser sustituido por este 

<script>
    document.addEventListener("DOMContentLoaded", function(event) {
            $("#sc_btnHistorico_top")
             .appendTo( $("#id_ajax_label_disponible").parent() )
             .css({'padding-left':'5px','padding-bottom':'3px'});    
      });
</script>

Quedaría mas fácil de leer y mucho mas limpio.

José Luis Cuesta Landoni

unread,
Dec 5, 2022, 12:13:28 PM12/5/22
to Comunidad ScriptCase Latino
Hola, buenas tardes.

Soy nuevo en ScriptCase y en esta comunidad, por lo que aprovecho para presentarme.

Estoy siguiendo con mucha atención tus trucos, Fausto, ya que me parecen muy útiles. Este truco en concreto me parece muy interesante ya que al lado de un select pongo un botón para dar de alta un nuevo registro en ficha de maestro del mismo. En desarrollo funciona perfectamente, pero en cuanto lo despliego a producción deja de funcionar, de hecho no carga el formulario y me da un error de server 500. Lo he probado de diferentes formas pero no funciona.

¿Igual es que en ScriptCase ha cambiado algo en la versión 9.9?

Agradezco vuestra ayuda.

Saludos a todos.
José Luis

José Luis Cuesta Landoni

unread,
Dec 6, 2022, 3:25:38 AM12/6/22
to Comunidad ScriptCase Latino
He estado haciendo mas pruebas y tiene que ser algun fallo de la version 9.9. En cualquier evento onScriptInit, onApplicationInit, o onLoad, si ejecuto cualquier cosa sin salirme de php funciona bien, pero en cuanto salgo de php como por ejemplo:

?>
<span>Hello</span>
<?

En desarrollo funciona bien, pero desplegado en produccion, no carga el formulario y da el error 500 de servidor.

José Luis Cuesta Landoni

unread,
Dec 6, 2022, 3:43:20 AM12/6/22
to Comunidad ScriptCase Latino
Acabo de descubrir cual es el problema. Al salir y entrar de php, tenemos que entrar nuevamente con la sintaxis completa, sino no carga el formulario en producción:

?>
<span>Hello</span>
<?php

Saludos,
José Luis

José Luis Cuesta Landoni

unread,
Dec 6, 2022, 6:28:18 AM12/6/22
to Comunidad ScriptCase Latino
Solo por dejar zanjado el tema: Las últimas versiones de PHP recomiendan no usar <? y usar la forma completa <?php  ya que sino puede haber problemas al generar documentos XML. No obstante podemos habilitarlo modificando el php.ini:

short_open_tag = On
Reply all
Reply to author
Forward
0 new messages