Feedback
ScriptCase Macros

# SCRIPTCASE MACROS

Scriptcase tiene macros y variables especiales que le permiten al usuario manipular eventos, botones, aplicaciones, control de seguridad, manipular fechas, etc.
Sigue una tabla de todas las macros y variables especiales de ScriptCase, incluida la lista de aplicaciones que funciona para cada una.

MACROS AND SPECIAL VARIABLES
SQL
sc_begin_trans ("Conexión") | Esta macro inicia un conjunto de transacciones en la base de datos.
sc_change_connection ("Conexión_antigua", "Nueva_conexión") | Esta macro cambia dinámicamente las conexiones de la aplicación.
sc_commit_trans ("Conexion") | Hace que todas las modificaciones de datos realizadas desde el comienzo de la transacción sean parte permanente de la base de datos.
sc_concat () | Esta macro se usa para combinar dos o más cadenas y/o campos de la tabla.
sc_connection_edit ("Nombre_Conexion", $ arr_conn) | Esta macro edita una conexión existente en tiempo de ejecución.
sc_connection_new ("Nombre_de_Conexion", $arr_conn) | Esta macro crea nuevas conexiones dinámicamente.
sc_error_continue ("Evento") | Esta macro desactiva el mensaje de tratamiento de error de base de datos estándar de Scriptcase para un evento.
sc_error_delete | Esta macro configura la variable que contiene el mensaje de error de la base de datos que puede ocurrir durante la exclusión de un registro.
sc_error_insert | Esta macro configura la variable que contiene el mensaje de error de mensaje de error que puede ocurrir durante la adición del registro.
sc_error_update | Esta macro configura la variable que contiene el mensaje de error de la base de datos que puede ocurrir durante la actualización de un regis
sc_exec_sql ("Comando SQL", "Conexión") | Esta macro ejecuta comandos SQL pasados como parámetro o un comando SQL en el tipo de acción de campo SQL.
sc_lookup (Conjunto de datos, "Comando SQL", "Conexión") | Esta macro ejecuta un comando SELECT almacenado en el segundo parámetro y devuelve los datos en una variable.
sc_lookup_field (dataset, "SQL Command", "connection_name") | Esta macro ejecuta el comando SELECT informado que devuelve los datos en una matriz donde el índice es el nombre de la columna.
sc_reset_change_connection | Esta macro borra los cambios realizados usando "sc_change_connection".
sc_reset_connection_edit | Esta macro deshace las ediciones de conexión realizadas por la macro "sc_connection_edit".
sc_reset_connection_new | Esta macro deshace las conexiones hechas por la macro "sc_connection_new".
sc_rollback_trans | Esta macro descarta un conjunto de transacciones en la base de datos.
sc_select (conjunto de datos, "Comando SQL", "Conexión") | Esta macro ejecuta los comandos pasados en el segundo parámetro y devuelve el conjunto de datos en una variable.
sc_select_field ({Campo}) | Esta macro modifica dinámicamente un campo que se recuperará en la Consulta.
sc_select_order ("Campo") | Esta macro modifica dinámicamente el campo de cláusulas grillas "ORDER BY".
sc_select_where (add) | Esta macro agrega dinámicamente una condición a la cláusula WHERE de la grilla.
sc_set_fetchmode (parm); | Esta macro permite cambiar el tipo de retorno del conjunto de datos de los comandos seleccionados
sc_sql_injection ({Mi_Campo}) o ($Mi_Variable) | Esta macro se usa para proteger el campo / variable contra "inyección SQL".
sc_sql_protect (Valor, "Tipo", "Conexión") | Esta macro protege el valor pasado como parámetro de acuerdo con la base de datos utilizada.
sc_where_current | Esta macro se usa para hacer una referencia de la cláusula where actualmente utilizada.
sc_where_orig | Esta macro guarda el contenido de la cláusula where de la aplicación original.
Variables - Database Variables de base de datos | Variables globales que contienen valores de acceso a la base de datos utilizados por la conexión principal.
Fecha
sc_date (Fecha, "Formato", "Operador", D, M, Y) | Esta macro calcula y devuelve incrementos y decrementos usando fechas.
sc_date_conv ({Field_Date}, "Input_Format", "Output_Format") | Esta macro convierte el campo de fecha pasado como parámetro con un formato de entrada a otro campo con un formato de salida.
sc_date_dif ({Date1}, "Format Date1", {Date2}, "Format Date2") | Esta macro calcula la diferencia entre dos fechas (pasadas como parámetros) devolviendo el resultado en días.
sc_date_dif_2 ({Date1}, "Format Date1", {Date2}, "Format Date2", Option) | Esta macro calcula la diferencia entre dos fechas que devuelven la cantidad de días, meses y años.
sc_date_empty ({Campo_Fecha}) | Calcula la diferencia entre dos fechas (pasadas como parámetros) que devuelve la cantidad de días, meses y años.
sc_time_diff ({datetime_01}, "Date_01 Format", {datetime_02}, "Date_02 Format") | Calcula la diferencia en horas, devolviendo la cantidad de horas, minutos y segundos.
Controle
sc_actionbar_clicked_state () | Devuelve el estado actual del botón ajax creado en la barra de acción.
sc_actionbar_disable ("boton_nombre") | Deshabilita los botones creados en la barra de acciones.
sc_actionbar_enable ("boton_nombre") | Habilita los botones creados en la barra de acciones.
sc_actionbar_hide ("boton_nombre") | Oculta los botones creados en la barra de acciones.
sc_actionbar_show ("boton_nombre") | Muestra los botones creados en la barra de acción.
sc_actionbar_state ("nombre_boton", "nombre_estado") | Cambia el estado actual del botón en la barra de acciones.
sc_ajax_javascript ('NombreDelMétodoDeJavascript',array("parámetro")) | Esta macro permite la ejecución de métodos de JavaScript en eventos de formulario / control
sc_alert ("Mensaje", $array) | Esta macro muestra una pantalla de mensaje Javascript.
sc_api_download (profile, settings, file, destination) | Esta macro se usa para descargar archivos usando las API de almacenamiento.
sc_api_gc_get_obj ($app_name , $json_oauth, $auth_code) | La macro sc_api_gc_get_obj genera el token_code
sc_api_gc_get_url ($app_name, $json_oauth) | Esta macro genera una URL para la autenticación del usuario de la cuenta de Google utilizada para la configuración de la API.
sc_api_storage_delete (profile, file, parents) | Esta macro se utiliza para eliminar archivos almacenados en servicios de almacenamiento en la nube.
sc_api_upload (profile, settings, file, parents) | Esta macro se usa para cargar archivos usando las API de almacenamiento.
sc_apl_conf ("Aplicación", "Propiedad", "Valor") | Esta macro cambia las propiedades de ejecución de las aplicaciones.
sc_apl_default ("aplicacion", "tipo"); | Esta macro permite que el usuario defina en su aplicación inicial lo que sucederá cuando la aplicación pierda la sesión.
sc_calc_dv (Dígitos, Descanso, Valor, Módulo, Pesos, Tipo) | Este macro calcule los dígitos de verificación.
sc_call_api ($profile, $arr_settings) | Esta macro le permite utilizar las API de Scriptcase de la API
sc_captcha_display ("on/off") | Controla dinámicamente la visualización de captcha en la aplicación.
sc_changed ({Nombre_Campo}) | Esta macro retorna "verdadero" si el nombre del campo ha sido cambiado.
sc_confirm ("Mensaje") | Esta macro muestra una pantalla de confirmación de Javascript.
sc_decode ({Mi_Campo}) | Esta macro devuelve el campo o la variable cifrada a su valor original.
sc_encode ({Mi_Campo}) | Esta macro devuelve el campo o la variable con el contenido cifrado.
sc_error_exit (URL / Mi_Aplicación, "Target"); | Interrumpe el método que se está procesando y debe usarse junto con la macro "sc_error_message"
sc_error_message ("Texto") | Esta macro genera un mensaje de error.
sc_exit (Opción) | Esta macro fuerza la salida de la aplicación.
sc_field_no_validate ('nombre_del_campo') | Ignora las validaciones definidas en la pantalla de configuración de campos, tales como: Campo requerido, tipos de caracteres, entre otros.
sc_getfield ("miCampo") | Esta macro asigna las propiedades de un campo a una variable javascript.
sc_get_language | Esta macro devuelve la abreviatura del lenguaje utilizado.
sc_get_regional | Esta macro devuelve la abreviatura de la configuración regional utilizada.
sc_get_theme | Esta macro devuelve el nombre del tema de la aplicación.
sc_get_wizard_step | Esta macro identifica el paso actual del asistente de formularios
sc_groupby_label ("Mi_Campo") | Esta macro modifica dinámicamente la etiqueta de campo que se muestra en las líneas de Agrupación.
sc_image (Imagen01.jpg) | Esta macro carga imágenes pasadas como parámetro para usar en la aplicación.
sc_include ("Archivo", "Fuente") | Esta macro se usa para "incluir" rutinas PHP.
sc_include_lib ("Lib1", "Lib2", ...) | Esta macro se usa para seleccionar dinámicamente las bibliotecas de aplicaciones.
sc_include_library ("Destino", "Nombre de la biblioteca", "Archivo", "include_once", "Requerir") | Esta macro incluye un archivo PHP de una librería en la aplicación.
sc_label ("nombre_del_campo") | Esta macro se usa para modificar dinámicamente la etiqueta del campo de formulario de cuadrícula.
sc_language | Esta macro devuelve el idioma de la aplicación.
sc_link (Columna, Aplicación, Parámetros, "Sugerencia", "Objetivo", Altura, Ancho) | Esta macro crea o modifica dinámicamente enlaces entre aplicaciones de cuadrícula y otras aplicaciones.
sc_log_add ("Acción", "Descripción") | Esta macro agregará un registro en la tabla de registro.
sc_log_split ({descripcion}) | Esta macro devuelve lo que se insertó en el campo "descripción" de la tabla de registro en un formato de matriz.
sc_mail_send (SMTP, Usr, Pw, From, To, Asunto, Mensaje, Mens_Type, Copies, Copies_Type, Port, Connection_Type, Attachment, SSL) | Esta macro se usa para enviar correos electrónicos.
sc_make_link (Aplicación, Parámetros) | Esta macro se usa para crear una cadena con los datos del enlace a otra aplicación.
sc_master_value ("Objeto", "Valor") | Esta macro actualiza un objeto de aplicación maestra desde una aplicación de detalle.
sc_redir ('app_name/url', parameter01; parameter02, 'target', 'error', 'modal_height', 'modal_width') | Esta macro se utiliza para redirigir a otra aplicación o URL.
sc_reset_apl_default | Esta macro tiene que restablecer la configuración de la macro sc_apl_default.
sc_reset_global ([Global_Variable1], [Global_Variable2] ...) | Esta macro elimina las variables de sesión recibidas como parámetro.
sc_send_mail_api ($arr_settings) | Permite el envío dinámico de correos electrónicos incrustados con Mandrill y Amazon SES
sc_send_notification ('title', 'message', 'destiny_type', 'to', 'from', 'link', 'dtexpire', 'profile') | Envía notificaciones dinámicamente a los usuarios del sistema.
sc_send_sms ($arr_settings) | Esta macro se usa para enviar mensajes de texto SMS
sc_seq_register | Esta macro proporciona el número secuencial de registro.
sc_set_global ($variavel_01) ou ({Mi_Campo}) | Esta macro se usa para registrar variables de sesión.
sc_set_groupby_rule | Macro se usa para seleccionar una regla de Agrupación específica
sc_set_language ('String Language') | Esta macro permite cambiar dinámicamente el idioma de la aplicación.
sc_set_regional ('String Regional') | Esta macro permite cambiar dinámicamente la configuración regional de la aplicación.
sc_set_theme ('String Theme') | Esta macro se usa para definir dinámicamente los temas de la aplicación.
sc_site_ssl | Esta macro verifica si se ha utilizado un sitio seguro. (protocolo https)
sc_statistic (arr_val, tp_var) | Calcula y devuelve una matriz con valores estadísticos, a partir de una matriz con valores numéricos.
sc_trunc_num ({Mi_Campo}, Cantidad_Decimal) | Esta macro se usa para establecer el número de decimales.
sc_url_exit (URL) | Esta macro modifica la aplicación de destino de la dirección URL.
sc_url_library ("Destino", "Nombre de la biblioteca", "Archivo") | Esta macro devuelve la ruta de un archivo, dentro de una biblioteca, para ser utilizado en las aplicaciones.
sc_warning 'on' o 'off' | Esta macro activa o desactiva dinámicamente el control de mensajes de advertencia.
sc_webservice ("Método", "URL", "Puerto", "Método de envío", "Matriz de parámetros", "Matriz de ajustes", "Tiempo de espera", "Retorno | Esta macro se usa para comunicarse con un servicio web.
sc_zip_file ("Archivo", "Zip") | Esta macro se usa para generar archivos ZIP desde una lista de archivos y/o directorios.
Variables - Totalling Totalización de variables | Variables que contiene todos los totales (generales y para agrupar).
Variables - Totalling (group by) Totalización de variables (agrupación) | Rompiendo variables de totales.
Búsqueda
sc_where_filter | Esta macro se usa para guardar el contenido de la cláusula where generado a través del formulario de filtro.
Seguridad
sc_apl_status ("Aplicación", "Status") | Esta macro Activa / Desactiva las aplicaciones a nivel de usuario.
sc_ldap_groups | Recupera los grupos existentes en Active Directory (AD).
sc_ldap_login ($server, $version, $user, $password, $dn, $group, $port, $biblioteca) | Macro principal para la autenticación LDAP, responsable de establecer la conexión con el servidor.
sc_ldap_logout | Macro liberaba la conexión después de usar la macro sc_ldap_login
sc_ldap_search ( $filter = 'all', $attributes = array() ) | Macro para realizar búsquedas en LDAP.
sc_ldap_users ($filter = 'all', $attributes = array()) | Recupera usuarios de LDAP y sus atributos según los permisos del usuario autenticado.
sc_reset_apl_conf ("Aplicación", "Propiedad") | Esta macro elimina todas las modificaciones efectuadas por la macro "sc_apl_conf".
sc_reset_apl_status | Esta macro elimina todas las variables de estado de seguridad de la aplicación.
sc_reset_menu_delete | Esta macro restaura una estructura de elemento de menú. (eliminado por la macro "sc_menu_delete").
sc_reset_menu_disable | Esta macro se usa para habilitar una estructura de elemento de menú. (deshabilitado por la macro "sc_menu_disable").
sc_user_logout ('nombre de variable', 'contenido de variable', 'apl_redir.php', 'target') | Macro utilizada para registrar el usuario en el sistema.
Exibición
sc_ajax_message ("Mensaje", "Título", "Parámetros", "Parameters_Redir", "String_toast"); | Esta macro permite que la aplicación muestre mensajes personalizados.
sc_ajax_refresh | Utilizada para recargar dinámicamente los datos en aplicaciones de consulta.
sc_block_display (Nombre del bloque, on/off) | Esta macro muestra / oculta dinámicamente los campos de un bloque específico.
sc_change_css ("atributo", "valor", "nombre_campo") | Permite manipular las propiedades CSS de los campos y filas de la consulta.
sc_event_hint ('nombre_del_campo', 'mensaje de ayuda', ancho_máximo) | Permite agregar un texto de ayuda a los enlaces creados a partir de un evento Ajax onClick.
sc_field_color ("Campo", "Color") | Esta macro cambia el color de un texto de campo determinado.
sc_field_disabled ("Field_Name = True / False", "Parameter") | Esta macro se utiliza para bloquear un campo para obtener los datos que se escribirían en él.
sc_field_disabled_record ("Field_Name = True / False", "Parametre") | Esta macro tiene el objetivo de bloquear la escritura en campos determinados en los Formularios.
sc_field_display ({Mi_Campo}, on / off) | Esta macro muestra dinámicamente o no un campo específico.
sc_field_init_off (campo1, campo2,...) | Esta macro está diseñada para inhibir los campos de consulta en la carga inicial.
sc_field_readonly | Esta macro dinámicamente establece un atributo de campo de campo a "sólo lectura"
sc_field_style ({Mi_Campo}, "Background-Color", "Size", "Color", "Family", "Weight") | La macro sc_field_style permite personalizar dinámicamente el estilo CSS de los campos en Grids dentro de Scriptcase.
sc_foot_hide () | Esta macro desactiva la visualización del pie de página.
sc_format_num ({Mi_Campo}, "Simb_Grp", "Simb_Dec", "Qtde_Dec", "Enche_Zeros", "Lado_Neg", "Simb_Monetário", "Lado_Simb_Monetario") | Esta macro se utiliza para dar formato a números numéricos.
sc_format_num_region ({Mi_Campo}, "Qtde_Dec", "Insert_Zeros", "Monetary_Sym") | Esta macro tiene el objetivo de formato de números, utilizando la configuración regional
sc_form_show 'on' o 'off' | Esta macro muestra dinámicamente o no la forma.
sc_get_groupby_rule () | Esta macro proporciona el nombre de la regla Agrupación que se ejecuta en ese momento.
sc_head_hide () | Inhibe la visualización del encabezado.
sc_hide_groupby_rule ('group1', 'grop2', 'group3') | Macro utilizada para deshabilitar las reglas de Agrupación
sc_set_focus ('Campo') | Esta macro se usa para establecer el foco en un campo de formulario.
sc_text_style ({My_Field}, "Color de fondo", "Tamaño", "Color", "Familia", "Peso") | Esta macro permite modificar dinámicamente el estilo del texto del campo de la Consulta.
sc_widget_config ($arrayOptions) | Modifica dinámicamente las propiedades visuales de un widget.
sc_widget_data ('dataName') | Devuelve datos comparativos de un widget de índice, como valor, período y variación.
sc_widget_name | Devuelve el nombre del widget en ejecución.
Botones
sc_btn_copy | Esta macro devuelve "verdadero" cuando se selecciona el botón "copiar" en un formulario.
sc_btn_delete | Esta macro devuelve "verdadero" cuando se selecciona el botón "Eliminar" en un formulario.
sc_btn_disabled ("boton_nombre", "status") | Está destinado a habilitar o deshabilitar dinámicamente un botón de la barra de herramientas.
sc_btn_display ("Nombre_Boton", "on/off") | Esta macro muestra y oculta botones en la barra de herramientas en tiempo de ejecución.
sc_btn_insert | Esta macro devuelve "verdadero" cuando se selecciona el botón "Agregar" en un formulario.
sc_btn_label ("btn_name", "new_label") | Esta macro se utiliza para cambiar la etiqueta de los botones.
sc_btn_new | Esta macro devuelve "verdadero" cuando se selecciona el botón "Agregar nuevo" en un formulario.
sc_btn_update | Esta macro devuelve "verdadero" cuando se selecciona el botón "Guardar" en un formulario.
PDF
sc_set_export_name | Cambia el nombre de los archivos exportados por la consulta.
Variables - Authentication Variables de autenticación | Usuario/Contraseña para el servidor WEB.
Menú
sc_appmenu_add_item ("Menu_Name", "Id_Item", "Id_Parent", "Label", "Aplication", "Parameters", "Icon", "Hint", "Target", "mega menu") | Esta macro agrega dinámicamente un elemento al menú.
sc_appmenu_create ("Menu_Name") | Esta macro crea dinámicamente un elemento de menú.
sc_appmenu_exist_item ("Menu_Name", "Id_Item") | Esta macro comprueba si hay un elemento de menú.
sc_appmenu_remove_item ("Menu_Name", "Id_Item") | Esta macro elimina dinámicamente un elemento del menú.
sc_appmenu_reset ("Menu_Name") | Esta macro reinicia la matriz utilizada en la creación dinámica de una aplicación de menú.
sc_appmenu_update_item ("Menu_Name", "Id_Item", "Id_Parent", "Etiqueta", "Aplicación", "Parámetros", "Icono", "Sugerencia", "Objetivo") | Esta macro actualiza un elemento de menú.
sc_btn_disable ('id_boton', 'on/off') | Macro utilizada para desactivar los botones de Menú.
sc_menu_delete (Id_Item1) | Esta macro elimina elementos de la estructura del menú.
sc_menu_disable (Id_Item1) | Esta macro desactiva los elementos de la estructura del menú.
sc_menu_force_mobile (boolean) | Macro solía forzar la creación de menús para dispositivos móviles.
sc_menu_item | Esta macro identifica el elemento de menú seleccionado.
sc_script_name | Esta macro identifica el nombre de la aplicación que se seleccionó en el menú.

sc_actionbar_clicked_state()
La macro sc_actionbar_clicked_state() permite al desarrollador recuperar el estado actual de un botón de la barra de acción en el momento del clic. De esta manera, es posible validar el estado actual del botón y, según las reglas de negocio del sistema, modificarlo según sea necesario. Esta macro es exclusiva para eventos AJAX de los botones de la barra de acción. ### Ejemplos Ejemplo: Identificación del estado actual del botón en el evento ajax, para cambiar el estado al hacer clic.
    if (sc_actionbar_clicked_state() == 'pending') {

        sc_actionbar_state('ajax_btn', 'sent');

    } else {

        sc_actionbar_state('ajax_btn', 'pending');

    }
Ejemplo: Ejemplo para ver el valor actual del botón.
    echo sc_actionbar_clicked_state();
Macro Scope
Aplicación Grid
onClick

sc_actionbar_disable("boton_nombre")
Deshabilita el botón de la barra de acción, por lo que no está disponible para hacer clic. Esta macro se puede usar para cualquier tipo de botón (enlace o ajax) en la barra de acción. ## Definición de parámetros
Parámetro | Sintaxis | Descripción
    boton_nombre
| No es posible utilizar variables, el nombre del botón debe informarse mediante comillas dobles o simples. Ejemplo `sc_actionbar_disable("ajax_btn");` | Este parámetro es obligatorio. Debemos informar el nombre del botón de la barra de acción que se desactivará.
## Ejemplos Ejemplo 1: Uso básico de las macros
    sc_actionbar_disable("boton_nombre");
Ejemplo 2: Deshabilitar el botón de enlace al detalle del pedido si no hay artículos en el pedido.
    // Ejemplo creado en el evento onRecord del grid usando la tabla order y orderdetail
    // Si no hay artículos en el pedido, el botón estará deshabilitado

    $query = "SELECT count(*) FROM OrderDetails WHERE OrderID = ". {OrderID};
    sc_lookup(ds, $query);

    if ({ds[0][0]} == 0) {

        //Ejemplo de uso de la macro sc_actionbar_disable
        sc_actionbar_disable("boton_nombre");

    } else {

        sc_actionbar_enable("boton_nombre");

    }
Macro Scope
Aplicación Grid
onClick onRecord

sc_actionbar_enable("boton_nombre")
Habilita el botón de la barra de acción, haciéndolo disponible para hacer clic. Esta macro se puede usar para cualquier tipo de botón (enlace o ajax) en la barra de acción. ## Definición de parámetros
Parámetro | Sintaxis | Descripción
boton_nombre | No es posible utilizar variables, el nombre del botón debe informarse mediante comillas dobles o simples. Example `sc_actionbar_enable("ajax_btn");` | Este parámetro es obligatorio. Debemos informar el nombre del botón de la barra de acción que se habilitará.
## Examples Example 1: Uso básico de macro sc_actionbar_enable
    sc_actionbar_enable("boton_nombre");
Example 2: Enabling the link button to the order detail if there is any record to be displayed.
    // Ejemplo creado en el evento onRecord de la grid usando la tabla de pedidos y la tabla de detalles de pedidos
    // Si no hay artículos pedidos en la medición, el botón estará deshabilitado

    $query = "SELECT count(*) FROM OrderDetails WHERE OrderID =" . {OrderID};
    sc_lookup(ds, $query);

    if ({ds[0][0]} <> 0) {

        //Ejemplo de uso de la macro sc_actionbar_enable
        sc_actionbar_enable("boton_nombre");

    } else {

        sc_actionbar_disable("boton_nombre");

    }
Macro Scope
Aplicación Grid
onClick onRecord

sc_actionbar_hide("boton_nombre")
This macro displays the action bar button, hidden using the `sc_actionbar_hide` macro This macro can be used for any type of button (link or ajax) on the action bar. ## Definición de parámetros
Parameter | Syntax | Description
boton_nombre | No es posible utilizar variables. El nombre del botón debe informarse mediante comillas dobles o simples. Example `sc_actionbar_hide("ajax_btn");` | Este parámetro es obligatorio. Debemos informar el nombre del botón de la barra de acción que se debe ocultar.
## Exemplos Example 1: Basic macro usage
    sc_actionbar_hide("boton_nombre");
Example 2: Showing the order detail link button if there are any records to show.
    // Ejemplo creado en el evento onRecord de la grid usando la tabla order y orderdetail
    // Si no hay artículos en el pedido, el botón de enlace de detalles se ocultará.
    $query = "SELECT count(*) FROM OrderDetails WHERE OrderID =" . {OrderID};
    sc_lookup(ds, $query);

    if ({ds[0][0]} == 0) {

         //Example of using the macro sc_actionbar_hide
         sc_actionbar_hide("boton_nombre");

    } else {

         sc_actionbar_show("boton_nombre");

    }
Macro Scope
Aplicación Grid
onClick onRecord

sc_actionbar_show("boton_nombre")
Esta macro muestra el botón de la barra de acciones, oculto mediante la macro `sc_actionbar_hide` Esta macro se puede usar para cualquier tipo de botón (enlace o ajax) en la barra de acción. ## Definición de parámetros
Parámetro | Sintaxis | Descripción
boton_nombre | No es posible utilizar variables. El nombre del botón debe informarse mediante comillas dobles o simples. Example `sc_actionbar_show("ajax_btn");` | Este parámetro es obligatorio. Debemos informar el nombre del botón de la barra de acción que se mostrará.
## Exemplos Ejemplo 1: Uso básico de macros
    sc_actionbar_show("boton_nombre");
Ejemplo 2: Mostrar el botón de enlace de detalles del pedido si hay algún registro para mostrar.
    // Ejemplo creado en el evento onRecord de la consulta usando la tabla order y orderdetail
    // Si no hay artículos en el pedido, el botón no se mostrará

    $query = "SELECT count(*) FROM OrderDetails WHERE OrderID =" . {OrderID};
    sc_lookup(ds, $query);

    if ({ds[0][0]} <> 0) {

        //Exemplo de utilização da macro
        sc_actionbar_show("boton_nombre");
    } else {

        sc_actionbar_hide("boton_nombre");

    }
Macro Scope
Aplicación Grid
onClick onRecord

sc_actionbar_state("nombre_boton", "nombre_estado")
Esta macro le permite cambiar el estado actual del botón de la barra de acción. Para usar el evento ajax del botón, recomendamos usar esta macro junto con `sc_actionbar_clicked_state();` que permite recuperar el estado actual del botón. ## Definición de parámetros
Parámetros | Valores | Descripción
`button_name` | El nombre del botón debe informarse mediante comillas dobles o simples. Ejemplo En negrita, se puede ver el ejemplo de cómo el parámetro `button_name` debe ser informado: `sc_actionbar_state("ajax_btn", "sent");` | Este es un parámetro obligatorio. Debe informar el nombre del botón creado en la barra de acción.
`state_name` | El nombre del estado debe informarse mediante comillas dobles o simples. Ejemplo En negrita, se puede ver el ejemplo de cómo el parámetro `state_name` debe ser informado: `sc_actionbar_state("ajax_btn", "sent");` | Este es un parámetro obligatorio. Debe informar el nombre del siguiente estado que asumirá el botón.
## Ejemplos Ejemplo: cambiar el estado del botón ajax_btn entre pendiente y enviado en el evento onclick del botón.
    if (sc_actionbar_clicked_state() == 'pending') {

            sc_actionbar_state('ajax_btn', 'sent');

    } else {

            sc_actionbar_state('ajax_btn', 'pending');

    }
Ejemplo: cambiar el estado del botón ajax_btn entre pendiente y enviado, y almacenar el cambio en la base en el campo email_sent.
    if (sc_actionbar_clicked_state() == 'pending') {

    	$update = "update orders set email_sent = 'S' WHERE orderid =". {orderid};
    	sc_exec_sql($update);
            sc_actionbar_state('ajax_btn', 'sent');

    } else {

    	$update = "update orders set email_sent = 'N' WHERE orderid =". {orderid};
    	sc_exec_sql($update);
            sc_actionbar_state('ajax_btn', 'pending');

    }
Ejemplo: Visualización del estado del botón ajax_btn según el valor almacenado en el campo email_sent en el evento onRecord de la aplicación Grid.
    if ({email_sent} == 'S') {

        sc_actionbar_state('ajax_btn', 'sent');

    } else {

        sc_actionbar_state('ajax_btn', 'pending');

    }
Macro Scope
Aplicación Grid
onClick onRecord

sc_ajax_javascript('NombreDelMétodoDeJavascript',array("parámetro"))
Ver un vídeo tutorial Esta macro permite la ejecución de métodos JavaScript llamados desde algunos eventos en formularios, aplicaciones de control y calendario. Para usar esta macro, necesitas crear un método javascript en Configuración de programación. Esta macro recibe dos parámetros: El primer parámetro (obligatorio) recibe el nombre del método javascript. El segundo (opcional) recibe una matriz con los parámetros del método. Ejemplos: Ej.1:javascript de método sin parámetros: sc_ajax_javascript ('method_name'); sc_ajax_javascript ('suma'); Ej.2: Método JavaScript con un parámetro: sc_ajax_javascript ('method_name', array ("paramameter")); Ej. 3: Método javascript con dos parámetros: sc_ajax_javascript ('method_name', array("param1", "param2")); Ejemplo que usa variables globales: sc_ajax_javascript ('suma', array([num1], [num2]));
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onValidate onValidateFailure onValidateSuccess | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onValidateFailure

sc_ajax_message("Mensaje", "Título", "Parámetros", "Parameters_Redir", "String_toast");
Ver un vídeo tutorial La macro `sc_ajax_message()` permite mostrar mensajes personalizados durante la ejecución de aplicaciones que utilicen eventos Ajax. A través de esta macro, es posible presentar alertas, confirmaciones o notificaciones utilizando ventanas modales, notificaciones estilo toast y opciones de redirección automática. Su uso es exclusivo para eventos Ajax. ### Parámetros
Parámetro | Obligatorio | Acepta Vacío | Descripción y ejemplo
`message` | Sí | No | Texto del mensaje que será mostrado. Puede contener HTML. Ejemplo: "¡Operación realizada con éxito!" "Error al guardar los datos"
`title` | No | Sí | Título de la ventana del mensaje. Si no se proporciona, se mostrará sin título. Ejemplo: "Atención" "Información"
`configString` | No | Sí | Define el comportamiento y estilo del mensaje. Debe pasarse como una cadena con múltiples opciones separadas por `&`. Ver detalles en Tabla 2: Cadena de Configuración Ejemplo: "toast=Y&timeout=3&type=success&toast_pos=top-end" "modal=Y&button=Y&button_label=OK"
`redirectParams` | No | Sí | Define los valores que serán enviados a la aplicación especificada en `redir`, en el formato `campo1=valor1;campo2=valor2`. Ejemplo: "client_id=123;client_name=JOHN"
Aunque no son obligatorios, los parámetros deben pasarse en el orden correcto. Si se omite un parámetro intermedio, debe mantenerse con valor vacío. ### ### Tabla 2: Cadena de Configuración
Propiedad | Descripción | Valores | Ejemplo | Restricciones / Notas
modal | Define si el mensaje se mostrará dentro de un modal. | Y - El mensaje se abrirá en un modal N - El mensaje se mostrará sin modal. Esta propiedad puede ser omitida. | "modal=Y" "modal=Y&width=50" | Solo en aplicaciones con SweetAlert desactivado.
timeout | Define cuánto tiempo se mostrará el mensaje en segundos. Solo funciona con mensajes sin botón de confirmación. | Acepta solo números | "timeout=5" "toast=Y&timeout=5" "button=N&timeout=5" | No compatible con botón de confirmación En aplicaciones con SweetAlert desactivado, requiere button=N o ser omitido. En aplicaciones con SweetAlert activado, requiere toast=Y o ser omitido.
button | Controla la visualización del botón de confirmación dentro del mensaje. Su comportamiento es confirmar la acción y cerrar el mensaje. | Y - Se mostrará el botón de confirmación. N - El mensaje se mostrará sin botón. Se respetará el timeout. Omitir la propiedad tiene el mismo efecto. | "button=Y" "button=Y&button_label=Confirmar" | Solo en aplicaciones con SweetAlert desactivado.
button_label | Define el texto que se muestra en el botón | Texto del botón | "button=Y&button_label=Cerrar" "button=Y&button_label=OK" | Requiere botón de confirmación Solo en aplicaciones con SweetAlert desactivado Requiere button=Y.
top | Establece la posición vertical del mensaje usando la propiedad CSS top. Si se omite, la posición se calcula automáticamente. | Acepta solo números | "top=650" "top=650&timeout=5" | Solo en aplicaciones con SweetAlert desactivado y requiere modal=N o estar omitido.
left | Establece la posición horizontal del mensaje usando la propiedad CSS left. Si se omite, la posición se calcula automáticamente. | Acepta solo números | "left=650" "top=50&left=650&timeout=5" | Solo en aplicaciones con SweetAlert desactivado y requiere modal=N o estar omitido.
width | Establece el ancho de la caja de mensaje en píxeles | Acepta solo números | "width=650" "width=650&timeout=5" | Solo en aplicaciones con SweetAlert desactivado
height | Establece la altura de la caja de mensaje en píxeles | Acepta solo números | "height=350" "modal=Y&height=350&width=650" | Solo en aplicaciones con SweetAlert desactivado
redir | URL o nombre de la aplicación para redirección. Este atributo solo funciona si la propiedad button está habilitada. | Cadena con el nombre de la aplicación o URL. | "redir=form_comparison" "button=Y&redir=form_comparison" "redir=https://scriptcase.com.br/&target=_blank" | Requiere botón de confirmación: Aplicación con SweetAlert desactivado requiere button=Y o estar omitido. Aplicación con SweetAlert activado requiere toast=N o estar omitido.
redir_target | Define cómo se abrirá el enlace especificado en el parámetro redir. | _blank - Abre en una nueva ventana o pestaña. _self - Abre en el mismo marco donde se hizo clic (comportamiento por defecto). _parent - Abre en el marco padre. _top - Abre ocupando todo el cuerpo de la ventana (rompe todos los frames). | "redir=https://scriptcase.com.br/&target=_blank" "redir=form_comparison&target=_parent" | Solo si redir está definido.
show_close | Muestra un botón para cerrar en la barra de título. Esta propiedad, cuando está activa, fuerza la visualización de la barra de título incluso si el parámetro title está vacío. | Y - El botón de cerrar se muestra N - El botón de cerrar no se muestra | "show_close=Y" | Solo en aplicaciones con SweetAlert desactivado
body_icon | Muestra u oculta el ícono del mensaje. Incluso cuando esta propiedad está activa, la visualización del ícono depende de la configuración del tema de la aplicación. | Y - El ícono del mensaje será mostrado. N - El ícono del mensaje no será mostrado. | "body_icon=N" | Solo en aplicaciones con SweetAlert desactivado
toast | Muestra el mensaje como notificación tipo toast | Y - Usa notificación toast N - Usa mensaje SweetAlert | "toast=Y" | Solo en aplicaciones con SweetAlert activado
toast_pos | Define la posición del toast en la pantalla | top top-start top-end center center-start center-end bottom bottom-start bottom-end | "toast_pos=center&toast=Y&timeout=5" "toast_pos=top&toast=N&type=warning" | Solo en aplicaciones con SweetAlert activado y requiere toast=Y o estar omitido.
type | Define el ícono que se mostrará en el mensaje | warning error success info question | "toast=Y&timeout=5&type=success" "toast=N&type=warning" | Solo en aplicaciones con SweetAlert activado
### Ejemplo 1. Mensaje sin SweetAlert utilizando Modal
    sc_ajax_message("¡Datos guardados con éxito!", "Confirmación", "modal=Y&button=Y&button_label=OK&show_close=Y");
2. Mensaje sin SweetAlert
    sc_ajax_message("¡Atención! Por favor complete todos los campos.", "Advertencia", "button=Y");
3. Mensaje tipo Toast
    sc_ajax_message("¡Producto añadido al carrito!", "", "toast=Y&type=success&toast_pos=top-end&timeout=3");
4. Mensaje utilizando SweetAlert
    sc_ajax_message("¡Error al procesar la solicitud!", "Error", "type=error&button=Y");
Para mostrar el mensaje utilizando Toast, la opción "Usar SweetAlert" debe estar habilitada en la interfaz de la aplicación.
Macro Scope
Aplicación Calendario | Aplicación Grid | Aplicación Formulário | Aplicación Controle
ajaxFieldonBlur Onchange OnClick OnFocus | onClick | ajaxFieldonBlur Onchange OnClick OnFocus | onBlur onChange onClick onFocus

sc_ajax_refresh
Ver un vídeo tutorial La macro sc_ajax_refresh() se utiliza para recargar los datos en una aplicación de consulta sin la necesidad de recargar toda la página. Su uso es exclusivo en eventos AJAX de la consulta, ya sea en los eventos onClick de un campo o en la barra de acción. #### Ejemplo de uso
    $upd = "UPDATE order SET status = 'completed' WHERE id =". {orderid};
    sc_exec_sql($upd);
    // Ahora la macro se utilizará para actualizar los datos de la aplicación.
    sc_ajax_refresh();
Macro Scope
Aplicación Grid
onClick

sc_alert("Mensaje", $array)
Ver un vídeo tutorial Esta macro envía un mensaje en estilo de alerta en Javascript o Sweetalert2. Obs Para mostrar el mensaje usando la biblioteca sweetalert2, es necesario que la opción ”Usar SweetAlert” esté habilitada en la aplicación donde se usará la macro. Esta opción se puede habilitar en el menú de configuración de la aplicación. Para acceder a él, haga clic en: Aplicación> Configuración la opción se encuentra en el bloque de Configuración de las Notificaciones. Verifique a continuación los parámetros admitidos por la macro: Mensaje: Parámetro obligatorio que contiene el mensaje que se mostrará. $array: Este parámetro es opcional cuando se usa la macro, más obligatorio cuando queremos usar Sweetalert2. Cuando se usa, espera recibir una matriz con la configuración de Sweetalert2. Verifique la lista de configuraciones aceptadas por Sweetalert2 en esta macro:
Parámetro | Valor | Descripción
title | Ejemplo de cómo se debe informar dentro de la matriz:'title' => 'Título' | Texto que se mostrará en el título de la tarjeta, si la opción de brindis es marcado como falso. 'toast' => false
type | Ejemplo de cómo se debe informar dentro de la matriz: 'type' => 'warning' Lista de opciones aceptadas: success error warning info | Define el tipo de mensaje que se mostrará.
timer | Ejemplo de cómo se debe informar dentro de la matriz: 'timer' => '2000' | Define el tiempo en milisegundos que se mostrará el mensaje.
showConfirmButton | Ejemplo de cómo se debe informar dentro de la matriz: 'showConfirmButton' => false Lista de opciones aceptadas: True:Mostrar el botón de confirmación. false: No muestra el botón de confirmación. | Define si se muestra un botón de confirmación.
position | Ejemplo de cómo se debe informar dentro de la matriz: 'position' => 'bottom-end', Lista de opciones aceptadas: top top-start top-end center center-start center-end bottom bottom-start bottom-end | Define la posición donde se mostrará la ventana emergente.
toast | Ejemplo de cómo se debe informar dentro de la matriz: 'toast' => true | Define el uso de toast para la visualización de mensajes. Cuando está habilitada, esta opción no muestra el botón de confirmación.
Verifique a continuación los ejemplos de uso de la macro: Ejemplo 1: Mensaje usando Sweetalert `sc_alert("¡Este es un mensaje de alerta!");` Ejemplo 2: Mensaje usando Sweetalert2 `$params = array( 'title' => 'Título', 'type' => 'success', 'timer' => '2000', 'showConfirmButton' => false, 'position' => 'bottom-end', 'toast' => true ); sc_alert("Insertado con éxito!", $params);`
Macro Scope
Aplicación Blank | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | onApplicationInit onFooter onHeader onScriptInit | onFooter onHeader onScriptInit onNavigate onRecord | onApplicationInit onFilterInit | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onLoad | onApplicationInit onExecute onLoad

sc_api_download(profile, settings, file, destination)
Esta macro se utiliza para descargar los archivos almacenados en los servicios de Storage disponibles en Scriptcase, estos son: Google Drive, DropBox y Amazon S3. En primer lugar, es necesario crear las claves para utilizar estas API, ya sea para su uso con la macro o mediante la interfaz de la herramienta. Vea a continuación cómo obtener las credenciales para cada uno de ellos. Haga clic aquí para aprender cómo obtener las credenciales de Google Drive Haga clic aquí para aprender cómo obtener las credenciales de DropBox Haga clic aquí para aprender cómo obtener las credenciales de Amazon S3 #### Parameters
Parameters | Value | Description
--- | --- | ---
`profile` | Ejemplo de cómo se debe informar el parámetro. `'profile' => 'profile_name',` Este parámetro acepta solo el nombre del perfil creado. Haga clic aquí, para ver cómo crear un perfil. | Debemos informar el nombre del perfil que se está creando en la opción APIs del menú Herramientas. Cuando se utiliza, este parámetro carga la configuración informada cuando se crea el perfil. Cuando se utiliza, el parámetro de configuración no necesita ser informado. Para obtener más detalles, consulte Uso de la macro con perfil
`settings` | Ejemplo de cómo se debe informar el parámetro. `'settings' => [ 'app_name' => 'scriptcase', 'gateway' => 'dropbox', 'api_key' => '', 'api_secret' => '', 'access_token' => '', ],` Nota: Para obtener más información sobre el parámetro, consulte la tabla de configuración exclusiva a continuación, para cada una de las API | Recibe una matriz con las credenciales de acceso para la API que se utilizará. Cuando se utiliza, no es necesario introducir el parámetro de perfil.
`file` | Ejemplo de cómo se debe informar el parámetro. `'file' => {image_file_name},` Opciones permitidas: {image_file_name} [variable global] 'Ruta de archivo' | Este parámetro recibe la ruta completa hasta que se localiza el archivo. Cuando se utiliza un campo, debe ser del tipo de archivo de nombre de carga.
`destination` | Ejemplo de cómo se debe informar el parámetro. Usando un campo `'parents' => {field_name},` Ingresando una String `'parents' => ‘folder_name’,` Opciones permitidas: {nombre del campo} [variable global] "Nombre de carpeta o ruta de almacenamiento en la nube local" | Directorio donde se almacenará el archivo Cuando no se le informa, el archivo se almacenará en la raíz del servidor de almacenamiento.
#### Usando la macro con perfil El uso de la macro con un perfil, requiere la creación previa de la misma. Haga clic aquí para ver cómo crear un perfil en cada una de las API de almacenamiento disponibles. El perfil, o perfil, contiene los datos para usar la API deseada, por lo tanto, cuando se usa un perfil en la macro, no es necesario usar el parámetro settings. El parámetro de perfil acepta solo el nombre del perfil creado, para el uso dinámico de la macro, será necesario utilizar los parámetros settings. Ejemplo de uso de la macro con el perfil.
    sc_api_upload([
      'profile' => 'minha_api',
      'file' => {archivo},
      'destination' => 'destino',
    ]);
#### Usando la macro con el parámetro de configuración La matriz con las credenciales de acceso que se deben pasar en el parámetro de configuración varía según la API utilizada. Vea a continuación cómo utilizar este parámetro de acuerdo con cada una de las API disponibles. Cuando se utiliza el parámetro de configuración en la configuración en la macro, no es necesario informar un perfil. #### Uso De La Macro Con La Configuración - API De Google Drive Primero, debemos tener las credenciales para usar la API de Google Drive en la mano, haga clic aquí para aprender cómo obtenerlas. Después de configurar las credenciales, vea a continuación todos los valores de la matriz que deben pasarse en el parámetro de configuración usando la API de Google Drive. Todos los valores a continuación son obligatorios cuando se usa el parámetro de configuración
Índice | Valor | Descripción
`app_name` | Ejemplo de cómo se debe informar el parámetro. `'app_name' => 'scriptcase',` Este índice acepta solo cadenas | Nombre de la aplicación ingresado al crear las credenciales de acceso.
`gateway` | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'google_driver',` Este índice acepta solo cadenas | Nombre de la puerta de enlace para identificar la API utilizada.
`json_oauth` | Ejemplo de cómo se debe informar el parámetro. `'json_oauth' => 'JSON',` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Recibe el contenido del archivo de autenticación generado por el usuario (JSON). Este archivo debe descargarse después de crear las credenciales en el sitio web de Google.
`auth_code` | Ejemplo de cómo se debe informar el parámetro. `'auth_code' => '5/4wHt7TBTY4MtvQ',` Lista de opciones aceptadas: {nombre del campo} $ variable | Recibe el código auth_code, generado después de configurar la API siguiendo los pasos descritos en el tutorial Cómo generar el auth_code para usar la API del controlador de Google
`token_code` | Ejemplo de cómo se debe informar el parámetro. `'token_code' => '',` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Es posible generar token_code usando nuestra macro sc_api_gc_get_obj
Ejemplos de uso de la macro con Google Drive, usando el parámetro de configuración
    sc_api_download([
      'settings' => [
        'app_name' => {appname},
        'gateway' => 'google_drive',
        'json_oauth' => {jsonoauth},
        'auth_code' => {authcode},
        'token_code' => {tokencode},
      ],
    'file' => {archivo},
    'destination' => {destino},
    ]);
### Usar La Macro Con La Configuración - Dropbox En primer lugar, debemos tener las credenciales para usar la API de Dropbox a la mano, haga clic aquí para saber cómo obtenerlas. Después de configurar las credenciales, vea a continuación todos los valores de la matriz que se deben pasar en el parámetro de configuración usando la API de Dropbox. Todos los valores a continuación son obligatorios cuando se usa el parámetro de configuración
Índice | Valor | Descripción
--- | --- | ---
app_name | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'scriptcase',` Este índice acepta solo cadenas | Nombre de la aplicación ingresado al crear las credenciales de acceso.
gateway | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'google_driver',` Este índice acepta solo cadenas | Nombre de la puerta de enlace para identificar la API utilizada.
api_key | Ejemplo de cómo se debe informar el parámetro. `'api_key' => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Reciba el api_key, disponible al configurar la API.
api_secret | Ejemplo de cómo se debe informar el parámetro.
    'api_secret’  => {field_name},
Lista de opciones aceptadas: 'String' {nombre del campo} $variable | Recibe api_secret, disponible al configurar las credenciales de la API.
Ejemplos de uso de la macro con Dropbox, usando el parámetro de configuración
    sc_api_download([
      'settings' => [
        'gateway' => 'dropbox',
        'api_key' => {apikey},
        'api_secret' => {apisecret},
        'access_token' => {accesstoken},
      ],
    'file' => {archivo},
    'destination' => {destino},
    ]);
### Uso De La Macro Con Configuraciones - Amazon S3 Debemos tener las credenciales para usar la API de almacenamiento de Amazon S3 a mano, haga clic aquí para aprender cómo obtenerlas. Después de configurar las credenciales, consulte a continuación todos los valores de la matriz que se deben pasar en el parámetro de configuración mediante la API de Amazon S3. Todos los valores a continuación son obligatorios cuando se usa el parámetro de configuración.
Indice | Valor | Descripción
--- | --- | ---
`app_name` | Ejemplo de cómo se debe informar el parámetro. `'app_name' => 'scriptcase',` Este índice acepta solo cadenas | Nombre de la aplicación ingresado al crear las credenciales de acceso.
`gateway` | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'google_driver',` Este índice acepta solo cadenas | Nombre de la puerta de enlace para identificar la API utilizada.
`api_key` | Ejemplo de cómo se debe informar el parámetro. `'api_key' => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Reciba el api_key, disponible al configurar la API.
`api_secret` | Ejemplo de cómo se debe informar el parámetro. `'api_secret' => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Recibe api_secret, disponible al configurar las credenciales de la API.
`region` | Ejemplo de cómo se debe informar el parámetro. `'region' => 'us-east-1',` El parámetro de región de la macro acepta solo el código de región. Para que sea más fácil, siga un enlace para verificar el código de cada región. https://docs.aws.amazon.com/general/latest/gr/rande.html | Recibe el código de región, el mismo utilizado en la creación de credenciales.
`bucket` | Ejemplo de cómo se debe informar el parámetro. `'bucket' => 'bucket_name',` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Recibe el nombre del depósito creado al configurar las credenciales de la API.
Ejemplos de uso de la macro con Amazon S3, usando el parámetro de configuración
    sc_api_download([
      'settings' => [
        'app_name' => 'scriptcase',
        'gateway' => 'S3',
        'api_key' => {apikey},
        'api_secret' => {apisecret},
        'region' => {api_region},
        'bucket' => {api_bucket},
      ],
    'file' => {archivo},
    'destination' => {destino},
    ]);
Macro Scope
Aplicación Grid | Aplicación Formulário
onRecord | onLoad onLoadRecord

sc_api_gc_get_obj($app_name , $json_oauth, $auth_code)
La macro sc_api_gc_get_obj genera el token_code. Tiene tres parámetros: app_name: recibe el app_name, disponible en la configuración de tu api. Este parámetro acepta cadenas o variables. json_oauth: recibe el contenido del archivo json, este archivo está disponible para descargar en la configuración de su API. Este parámetro acepta cadenas o variables. auth_code: recibe el auth_code generado en el paso anterior u otro auth_code válido que ya ha generado. Para obtener más información de uso y ejemplos, visite nuestro artículo de la base de conocimientos: Cómo generar el código de autenticación y el código de token
Macro Scope
Aplicación Calendario | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu
onApplicationInit onScriptInit | onScriptInit | onFilterInit | onScriptInit | onApplicationInit onScriptInit | onApplicationInit

sc_api_gc_get_url($app_name, $json_oauth)
## La macro sc_api_gc_get_url genera una URL para la autenticación del usuario de la cuenta de Google que se utiliza para la configuración de la API. Tiene dos parámetros: app_name - Recibe el nombre de la aplicación, disponible en su configuración de api. Este parámetro acepta cadenas o variables. json_oauth - Recibe el contenido del archivo json, este archivo está disponible para descargar en la configuración de su api. Este parámetro acepta cadenas o variables. Para obtener más información de uso y ejemplos, visite nuestro artículo de la base de conocimientos: Cómo generar el código de autenticación y el código de token
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Aplicación ReportPDF
onApplicationInit onScriptInit | onScriptInit | onScriptInit | onApplicationInit | onApplicationInit

sc_api_storage_delete(profile, file, parents)
La macro sc_api_storage_delete se utiliza para eliminar archivos almacenados en los servicios de almacenamiento disponibles en Scriptcase: Google Drive, Amazon y Dropbox. Para usar la macro, es necesario configurar las API; consulte la documentación a continuación. Configuración de la API de Google Drive Configuración de la API de Dropbox Configuración de la API de Amazon S3 ### Lista de Parámetros
Parámetro | Ejemplo | Descripción
profile | En este parámetro se debe indicar el nombre del perfil configurado en el menú API. `'profile' => 'mi_api',` | Recibe el nombre del perfil creado en el menú Herramientas > API, recuperando los datos proporcionados para el uso de la API. Haga clic aquí para ver cómo crear un perfil.
file | Usando un campo `'file' => {upload_nombre_archivo},` El nombre del archivo puede indicarse usando: `{upload_nombre_archivo}` `[variable_global]` `‘Cadena de la ruta del archivo’` | Recibe el nombre del archivo que será eliminado del servidor de almacenamiento.
parents | Usando un campo `'parents' => {nombre_campo_texto},` El directorio puede indicarse usando: `{nombre_campo_texto}` `[variable_global]` `‘Nombre de la carpeta o ruta en el almacenamiento en la nube’` | Directorio donde se almacena el archivo en la nube. Si no se proporciona ningún valor, la API utilizará la raíz del servidor de almacenamiento para localizar el archivo que será eliminado.
### Ejemplo
    sc_api_storage_delete([
        'profile' => 'mi_perfil',
        'file' => {nombre_archivo},
        'parents' => 'directorio_almacenamiento',
    ]);
Macro Scope

sc_api_upload(profile, settings, file, parents)
Esta macro se utiliza para cargar archivos en la nube utilizando las API de almacenamiento de Google, Amazon y DropBox. En primer lugar, es necesario crear las claves para usar la API, ya sea con la macro o en la interfaz de campos. Haga clic aquí para aprender cómo obtener las credenciales de Google Drive Haga clic aquí para aprender cómo obtener las credenciales de DropBox Haga clic aquí para aprender cómo obtener las credenciales de Amazon S3 Después de obtener las credenciales, continúe con la configuración de la macro. Consulte la lista de parámetros a continuación.
Parámetros | Valor | Descripción
profile | Ejemplo de cómo se debe informar el parámetro. v `'profile' => 'my_api',` Este parámetro acepta solo el nombre del perfil creado. Haga clic aquí para ver cómo crear un perfil. | Debemos informar el nombre del perfil que se está creando en la opción APIs del menú Herramientas. Cuando se usa, este parámetro carga la configuración informada al crear el perfil. Cuando se utiliza, el parámetro de configuración no necesita ser informado. Para obtener más detalles, consulte Uso de la macro con perfil
settings | Ejemplo de cómo se debe informar el parámetro. `'configuración' => [ 'app_name' => 'scriptcase', 'gateway' => 'dropbox', 'api_key' => '', 'api_secret' => '', 'access_token' => '', ],` Nota: Para obtener más información sobre el parámetro, consulte la tabla de configuración exclusiva a continuación, para cada una de las API | Recibe una matriz con las credenciales de acceso para la API que se utilizará. Cuando se utiliza, no es necesario introducir el parámetro de perfil.
file | Ejemplo de cómo se debe informar el parámetro. `'file' => {upload_name_file},` Lista de opciones aceptadas: {upload_name_file} [variable global] "Cadena de ruta de archivo" | Este parámetro recibe la ruta completa hasta que se localiza el archivo. Cuando se utiliza un campo, debe ser del tipo de archivo de carga.
parents | Ejemplo de cómo se debe informar el parámetro. Usando un campo `'parents' => {text_field_name},` Ingresando una cadena `'parent' => 'nombre_carpeta',` Lista de opciones aceptadas: {text_field_name} [variable global] "Nombre de carpeta o ruta de almacenamiento en la nube local" | Directorio donde se almacenará el archivo Cuando no se le informa, el archivo se almacenará en la raíz del servidor de almacenamiento.
Como se vio anteriormente, el parámetro de settings recibe una matriz con las credenciales de acceso para la API utilizada. Este parámetro debe usarse solo cuando no hemos definido un perfil en el menú Herramientas> API Cada API tiene su propia configuración para el parámetro settings, vea a continuación cómo debe configurarse cada una. ## Usando la macro con perfil El uso de la macro con un perfil, requiere la creación previa de la misma. Haga clic aquí para ver cómo crear un perfil en cada una de las API de almacenamiento disponibles. El perfil, o perfil, contiene los datos para usar la API deseada, por lo tanto, cuando se usa un perfil en la macro, no es necesario usar el parámetro settings. El parámetro de perfil acepta solo el nombre del perfil creado, para el uso dinámico de la macro, será necesario utilizar los parámetros settings. Ejemplo de uso de la macro con el perfil.
    sc_api_upload ([
       'profile' => 'my_api',
       'file' => {archivo},
       'parents' => 'pasta_no_drive',
    ]);
`` ## Usando la macro con el parámetro de configuración La matriz con las credenciales de acceso que se deben pasar en el parámetro de configuración varía según la API utilizada. Vea a continuación cómo utilizar este parámetro de acuerdo con cada una de las API disponibles. Cuando se utiliza el parámetro de configuración en la configuración en la macro, no es necesario informar un perfil. ### Uso de la macro con la configuración - API de Google Drive Primero, debemos tener las credenciales para usar la API de Google Drive en la mano, haga clic aquí para aprender cómo obtenerlas. Después de configurar las credenciales, vea a continuación todos los valores de la matriz que deben pasarse en el parámetro de configuración usando la API de Google Drive. Todos los valores a continuación son obligatorios cuando se usa el parámetro de configuración
Índice | Valor | Descripción
app_name | Ejemplo de cómo se debe informar el parámetro. `'app_name' => 'scriptcase',` Este índice acepta solo cadenas | Nombre de la aplicación ingresado al crear las credenciales de acceso.
gateway | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'google_driver',` Este índice acepta solo cadenas | Nombre de la puerta de enlace para identificar la API utilizada.
json_oauth | Ejemplo de cómo se debe informar el parámetro. `'json_oauth' => 'JSON',` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Recibe el contenido del archivo de autenticación generado por el usuario (JSON). Este archivo debe descargarse después de crear las credenciales en el sitio web de Google.
auth_code | Ejemplo de cómo se debe informar el parámetro. `'auth_code' => '5/4wHt7TBTY4MtvQ',` Lista de opciones aceptadas: {nombre del campo} $ variable | Recibe el código auth_code, generado después de configurar la API siguiendo los pasos descritos en el tutorial Cómo generar el auth_code para usar la API del controlador de Google
token_code | Ejemplo de cómo se debe informar el parámetro. `'token_code' => '',` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Es posible generar token_code usando nuestra macro sc_api_gc_get_obj
Ejemplos de uso de la macro con Google Drive, usando el parámetro de configuración
    sc_api_upload([
       'settings' => [
           'app_name' => 'scriptcase',
           'gateway' => 'google_drive',
           'json_oauth' => '',
           'auth_code' => '',
           'token_code' => '',
       ],
       'file' => {archivo},
       'parents' => '',
    ]);
### Usar la macro con la configuración - Dropbox En primer lugar, debemos tener las credenciales para usar la API de Dropbox a la mano, haga clic aquí para saber cómo obtenerlas. Después de configurar las credenciales, vea a continuación todos los valores de la matriz que se deben pasar en el parámetro de configuración usando la API de Dropbox. Todos los valores a continuación son obligatorios cuando se usa el parámetro de configuración
Índice | Valor | Descripción
--- | --- | ---
app_name | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'scriptcase',` Este índice acepta solo cadenas | Nombre de la aplicación ingresado al crear las credenciales de acceso.
gateway | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'google_driver',` Este índice acepta solo cadenas | Nombre de la puerta de enlace para identificar la API utilizada.
api_key | Ejemplo de cómo se debe informar el parámetro. `'api_key' => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Reciba el api_key, disponible al configurar la API.
api_secret | Ejemplo de cómo se debe informar el parámetro. `'api_secret’ => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $variable | Recibe api_secret, disponible al configurar las credenciales de la API.
Ejemplos de uso de la macro con Dropbox, usando el parámetro de configuración
    sc_api_upload ([
       'configuración' => [
           'app_name' => 'scriptcase',
           'gateway' => 'dropbox',
           'api_key' => '',
           'api_secret' => '',
           'access_token' => '',
       ],
       'archivo' => {archivo},
       'padres' => '',
    ]);
### Uso de la macro con configuraciones - Amazon S3 Debemos tener las credenciales para usar la API de almacenamiento de Amazon S3 a mano, haga clic aquí para aprender cómo obtenerlas. Después de configurar las credenciales, consulte a continuación todos los valores de la matriz que se deben pasar en el parámetro de configuración mediante la API de Amazon S3. Todos los valores a continuación son obligatorios cuando se usa el parámetro de configuración.
Indice | Valor | Descripción
--- | --- | ---
app_name | Ejemplo de cómo se debe informar el parámetro. `'app_name' => 'scriptcase',` Este índice acepta solo cadenas | Nombre de la aplicación ingresado al crear las credenciales de acceso.
gateway | Ejemplo de cómo se debe informar el parámetro. `'gateway' => 'google_driver',` Este índice acepta solo cadenas | Nombre de la puerta de enlace para identificar la API utilizada.
api_key | Ejemplo de cómo se debe informar el parámetro. `'api_key' => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Reciba el api_key, disponible al configurar la API.
api_secret | Ejemplo de cómo se debe informar el parámetro. `'api_secret' => {field_name},` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Recibe api_secret, disponible al configurar las credenciales de la API.
region | Ejemplo de cómo se debe informar el parámetro. `'region' => 'us-east-1',` El parámetro de región de la macro acepta solo el código de región. Para que sea más fácil, siga un enlace para verificar el código de cada región. https://docs.aws.amazon.com/general/latest/gr/rande.html | Recibe el código de región, el mismo utilizado en la creación de credenciales.
bucket | Ejemplo de cómo se debe informar el parámetro. `'bucket' => 'bucket_name',` Lista de opciones aceptadas: 'String' {nombre del campo} $ variable | Recibe el nombre del depósito creado al configurar las credenciales de la API.
Ejemplos de uso de la macro con Amazon S3, usando el parámetro de configuración
    sc_api_upload ([
       'configuración' => [
           'app_name' => 'scriptcase',
           'gateway' => 'S3',
           'api_key' => '',
           'api_secret' => '',
           'región' => '',
           'cubo' => '',
       ],
       'archivo' => {archivo},
       'padres' => '',
    ]);
``
Macro Scope
Aplicación Formulário | Aplicación Controle
onAfterDelete onAfterUpdateAll onBeforeInsertAll onValidate | onValidate

sc_apl_conf("Aplicación", "Propiedad", "Valor")
Ver un vídeo tutorial Esta macro permite modificar la propiedad de la aplicación. El usuario puede determinar si un Formulario se iniciará en modo de inserción, o una grid se iniciará por filtro, etc. Esta macro debe ser usada por una aplicación para modificar las propiedades de otra aplicación. Propiedades para aplicaciones Formularios
Propiedad | Valor | Descripción
start | new | Fuerza al formulario a comenzar en el modo de inserción para agregar nuevos registros.
insert | on/off | Habilita (on) o deshabilita (off) el botón para la inclusión de nuevos registros.
update | on/off | Habilita (on) o deshabilita (off) el botón para la inclusión de nuevos registros.
delete | on/off | Habilita (on) o deshabilita el botón para cambiar los registros..
field_display_off | field | Dinámicamente oculta un campo.
field_display_on | field | Muestra dinámicamente un campo.
field_readonly | field | Fuerza un campo para que se muestre como "readonly"..
rows |  | Fuerza el número de líneas para cada una de las páginas (solo para formularios de multiples registros).
rows_ins |  | Fueza el número de líneas para insertar (solo para formulario de multiples registros).
Propiedad para aplicaciones Grid
Propiedad | Valor | Descripción
start | filter | Fuerza a la grid a comenzar por el filtro.
cols |  | Fuerza el número de columnas. (tipo vertical y deslizante)
rows |  | Fuerza a la grid a comenzar por el filtro..
lig_edit | on/off | Habilita (on) o deshabilita el botón de edición del registro (lápiz)
Propiedad para todas las aplicaciones
Propiedad | Valor | Descripción
exit | apl/url | Fuerza la aplicación a salir a una ubicación especificada.
Ej. 1: Fuerza a la aplicación de formulario "my_form" a comenzar en el modo de inserción. sc_apl_conf("my_form", "start", "new"); Ej. 2: No permite que la aplicación de formulario"my_form" agregue nuevos registros. sc_apl_conf("my_form", "add", "off"); Ej. 3: Muestra un campo "my_field", de una aplicación de formulario "my_form", dinámicamente. sc_apl_conf("my_form", "field_display_off", "my_field"); Ej. 4: Fuerza a la aplicación de formulario "my_query" a iniciar por el filtro. sc_apl_conf("my_form", "field_display_on", "my_field"); Ej. 5: Fuerza a la aplicación de grid "my_grid" a iniciar en modo filtro. sc_apl_conf("my_grid", "start", "filter"); Ej. 6: Fuerza la aplicacion de grid "my_grid"a mostrar N lineas en este ejemplo 20. sc_apl_conf("my_grid", "rows", "20"); Ej. 7: Oculta un campo "my_field" en la aplicación de formulario "my_form" dinámicamente. sc_apl_conf("my_form", "field_display_off", "my_field"); Ej. 8: Usa el boton del menu de la barra de herramientas. if ({sc_menu_item} == "btn_1") { sc_apl_conf("form_customer", "start", "new"); }
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onScriptInit

sc_apl_default("aplicacion", "tipo");
Ver un vídeo tutorial Esta macro permite que el usuario defina en su aplicación inicial lo que sucederá cuando la aplicación pierda la sesión. La macro tiene los siguientes parámetros: Apl: Aquí es necesario informar a qué aplicación se redirigirá la macro después de perder la sesión. Tipo: Aquí informaremos al tipo de redireccionamiento que se producirá. Hay dos tipos: R: La aplicación solo redireccionará a la aplicación inicial. M: Se mostrará un mensaje antes del redireccionamiento. Ejemplo: En una aplicación de inicio de sesión definida como la aplicación inicial, podemos definir que esta aplicación se redireccionará a sí mismo. sc_apl_default("app_login","R")
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onCalendarScriptInit onScriptInit | onScriptInit | onScriptInit | onFilterInit | onScriptInit | onScriptInit | onScriptInit

sc_apl_status("Aplicación", "Status")
Ver un video tutorial Usado para controlar el acceso de seguridad. Estas macros activan / desactivan las aplicaciones a las que un usuario tiene acceso. Applicación: Es el nombre o la variable que contiene el nombre de la aplicación para activar / desactivar. Estado: Es el valor o la variable que contiene el valor que se debe atribuir a la aplicación. Los valores son: "on" para activar y "off" para desactivar. Ej. 1: sc_apl_status ('atu_cad', 'off'); Ej. 2: sc_apl_status ({var_name_appl}, {var_status});
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateFailure onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_appmenu_add_item("Menu_Name", "Id_Item", "Id_Parent", "Label", "Aplication", "Parameters", "Icon", "Hint", "Target", "mega menu")
La macro `sc_appmenu_add_item` agrega dinámicamente elementos a la aplicación de menú iniciada por la macro `sc_appmenu_create`. Es importante destacar que, para la creación de un menú dinámico utilizando macros, la aplicación no debe contener ningún ítem creado manualmente en la interfaz de Ítems del Menú. ### Sintaxis
    // Inicializa el menú dinámico. Esta llamada es obligatoria antes de usar sc_appmenu_add_item
    sc_appmenu_create("nombre_app_menu");

    // Agrega un ítem al menú dinámico ya inicializado
    sc_appmenu_add_item(
      "nombre_app_menu",
      "id_item",
      "id_item_padre",
      "etiqueta",
      "aplicacion",
      "parametros",
      "icono",
      "tooltip",
      "target",
      "megamenu"
    );
### Parámetros
Parámetro | Obligatorio | Permite Vacío | Descripción y ejemplo
--- | --- | --- | ---
`nombre_app_menu` | Sí | No | Recibe el nombre de la aplicación de menú donde se crearán los ítems. Acepta texto fijo entre comillas dobles, variable local o variable global. Ejemplo: • "menu" • $variable_local • [variable_global]
`id_item` | Sí | No | Define el ID del ítem creado. Este parámetro acepta texto fijo entre comillas dobles o variable. Ejemplo: • "item_01" • "item_" . $array[0]
`id_item_padre` | Sí | Sí | Debe especificarse solo si el ítem es un subelemento. En ese caso, utilice el ID del ítem padre. Ejemplo: • "item_01" • "item_" . $array[0]
`etiqueta` | Sí | No | Recibe el nombre que se mostrará en el menú. Puede ser texto fijo, variable o una etiqueta de idioma (lang). Ejemplo: • "Nombre del Ítem" • $nombreItem • {lang_nombre_item}
`nombre_aplicacion` | Condicional¹ | Sí | Define la aplicación que se abrirá al hacer clic en el ítem. Puede dejarse en blanco si el ítem contiene subelementos. ¹ Puede dejarse en blanco si el ítem actúa como agrupador (ítem padre) sin acción de enlace.
`parametros` | No | Sí | Cadena de parámetros que se pasarán al activar el ítem. Deben recuperarse como variables globales. Ejemplo: • param1="valor";param2=$variable;param3={campo}
`tooltip` | No | Sí | Texto que se mostrará al pasar el ratón sobre el ítem. Puede ser texto fijo, variable o etiqueta lang. Ejemplo: • "Descripción del ítem" • $descripcion • {lang_descripcion}
`icono` | No | Sí | Define el ícono Font Awesome (o imagen) para el ítem del menú. Debe indicarse entre comillas dobles. Ejemplo: • "fa fa-user"
`target` | No | Sí | Define cómo se abrirá el enlace. Ejemplo: • "_self" – En la misma ventana • "_blank" – En una nueva pestaña • "_parent" – En el contexto de la ventana padre
`megamenu` | No | Sí | Define si el ítem se mostrará como un mega menú. Para que funcione correctamente: – Debe ser un ítem de nivel superior (sin padre). – Debe contener al menos dos niveles de subelementos. Ejemplo: • "S" – El ítem será mostrado como mega menú • "" – El ítem será mostrado como menú estándar
### Ejemplos 1. Menú fijo con valores directos
    sc_appmenu_create("menu");

    // Ítem principal fijo
    sc_appmenu_add_item("menu", "item_0", "", "Inicio", "app_home", "", "fa fa-home", "Página de inicio", "_self", "");

    // Grupo: Registros
    sc_appmenu_add_item("menu", "item_1", "", "Registros", "", "", "fa fa-folder", "", "", "");
    sc_appmenu_add_item("menu", "item_2", "item_1", "Clientes", "app_clientes", "", "fa fa-users", "", "_self", "");
    sc_appmenu_add_item("menu", "item_3", "item_1", "Proveedores", "app_proveedores", "", "fa fa-truck", "", "_self", "");
    sc_appmenu_add_item("menu", "item_4", "item_1", "Productos", "app_productos", "", "fa fa-box", "", "_self", "");

    // Grupo: Informes
    sc_appmenu_add_item("menu", "item_5", "", "Informes", "", "", "fa fa-file", "", "", "");
    sc_appmenu_add_item("menu", "item_6", "item_5", "Facturación", "app_rel_facturacion", "", "fa fa-chart-line", "", "_self", "");
    sc_appmenu_add_item("menu", "item_7", "item_5", "Inventario", "app_rel_inventario", "", "fa fa-warehouse", "", "_self", "");
    sc_appmenu_add_item("menu", "item_8", "item_5", "Clientes", "app_rel_clientes", "", "fa fa-address-book", "", "_self", "");
2. Usando array y foreach
    sc_appmenu_create("menu");

    // Inicio
    sc_appmenu_add_item("menu", "item_0", "", "Inicio", "app_home", "", "fa fa-home", "Página de inicio", "_self", "");

    $grupos = array(
      array(
        "id"     => "item_1",
        "label"  => "Registros",
        "icono"  => "fa fa-folder",
        "items"  => array(
          array("label" => "Clientes",     "app" => "app_clientes",     "icono" => "fa fa-users"),
          array("label" => "Proveedores",  "app" => "app_proveedores",  "icono" => "fa fa-truck"),
          array("label" => "Productos",    "app" => "app_productos",    "icono" => "fa fa-box")
        )
      ),
      array(
        "id"     => "item_5",
        "label"  => "Informes",
        "icono"  => "fa fa-file",
        "items"  => array(
          array("label" => "Facturación", "app" => "app_rel_facturacion", "icono" => "fa fa-chart-line"),
          array("label" => "Inventario",  "app" => "app_rel_inventario",  "icono" => "fa fa-warehouse"),
          array("label" => "Clientes",    "app" => "app_rel_clientes",    "icono" => "fa fa-address-book")
        )
      )
    );

    $id_counter = 2;

    foreach ($grupos as $grupo) {
      sc_appmenu_add_item("menu", $grupo["id"], "", $grupo["label"], "", "", $grupo["icono"], "", "", "");

      foreach ($grupo["items"] as $item) {
        $id = "item_" . $id_counter++;
        sc_appmenu_add_item("menu", $id, $grupo["id"], $item["label"], $item["app"], "", $item["icono"], "", "_self", "");
      }
    }
3. Usando foreach con consulta en base de datos
    sc_appmenu_create("menu");

    // Inicio
    sc_appmenu_add_item("menu", "item_0", "", "Inicio", "app_home", "", "fa fa-home", "Página de inicio", "_self", "");

    // Consulta con JOIN
    sc_lookup(menu_data, "
      SELECT
        g.id AS grupo_id,
        g.nombre AS grupo_nombre,
        i.id AS item_id,
        i.nombre AS item_nombre,
        i.app AS app,
        i.icono AS icono
      FROM grupos g
      JOIN items i ON i.grupo_id = g.id
      WHERE g.activo = 'S' AND i.activo = 'S'
      ORDER BY g.id, i.id
    ");

    $grupos_creados = array();

    if (isset({menu_data[0][0]})) {
      foreach ({menu_data} as $fila) {
        $grupo_id   = "item_" . $fila[0];
        $grupo_nombre = $fila[1];
        $item_id    = "item_" . $fila[2];
        $item_nombre  = $fila[3];
        $item_app   = $fila[4];
        $item_icono = $fila[5];

        if (!in_array($grupo_id, $grupos_creados)) {
          sc_appmenu_add_item("menu", $grupo_id, "", $grupo_nombre, "", "", "fa fa-folder", "", "", "");
          $grupos_creados[] = $grupo_id;
        }

        sc_appmenu_add_item("menu", $item_id, $grupo_id, $item_nombre, $item_app, "", $item_icono, "", "_self", "");
      }
    }
4. Ejemplo con opción de mega menú
    sc_appmenu_create("menu");

    // Raíz del mega menú
    sc_appmenu_add_item("menu", "item_0", "", "Gestión", "", "", "fa fa-sitemap", "", "", "S");

    // Grupos del mega menú
    $grupos = array(
      array(
        "id" => "item_1",
        "label" => "Registros",
        "items" => array("Clientes", "Productos", "Usuarios")
      ),
      array(
        "id" => "item_2",
        "label" => "Finanzas",
        "items" => array("Cuentas por pagar", "Ingresos", "Facturación")
      ),
      array(
        "id" => "item_3",
        "label" => "Informes",
        "items" => array("Ventas", "Inventario", "Clientes")
      )
    );

    $id_counter = 4;

    foreach ($grupos as $grupo) {
      sc_appmenu_add_item("menu", $grupo["id"], "item_0", $grupo["label"], "", "", "", "", "", "");

      foreach ($grupo["items"] as $label) {
        $id = "item_" . $id_counter++;
        $app = "app_" . strtolower(str_replace(" ", "_", $label));
        sc_appmenu_add_item("menu", $id, $grupo["id"], $label, $app, "", "", "", "_self", "");
      }
    }
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_create("Menu_Name")
Esta macro inicia la matriz para el ensamblaje dinámico de una aplicación de menú. El nombre de la aplicación del menú debe ingresarse como parámetro. Esta macro debe usarse en eventos de control o en el evento onload del menú. Ej. 1: sc_appmenu_create ('menu_main');
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_exist_item("Menu_Name", "Id_Item")
Compruebe si existe un elemento de menú y devuelva un valor verdadero o falso.
Parametros | Descripción
Menu_Name | Menú de nombre de la aplicación
Id_Item | Código de identificación del elemento del menú
Ej. 1: if(sc_appmenu_exist_item('menu_main', 'item_2')){ sc_appmenu_update_item('menu_main','item_2','item_1','Category Form','form_category'); } else{ sc_appmenu_add_item('menu_main','item_2','item_1','Category Form','form_category'); }
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_remove_item("Menu_Name", "Id_Item")
Elimina dinamicamente un elemento del Manu. Para usar esta macro antes es necesario ejecutar la macro sc_appmenu_create.
Parametro | Descripción
menu_name | Nombre de la aplicación del menu
id_item | Menu item id
Ej. 1: sc_appmenu_remove_item('menu_main','item_2');
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_reset("Menu_Name")
Esta macro borra la matriz para el ensamblaje dinámico de una aplicación de menú. El nombre de la aplicación del menú debe ingresarse como parámetro. Ej. 1: sc_appmenu_reset ('menu_main');
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_update_item("Menu_Name", "Id_Item", "Id_Parent", "Etiqueta", "Aplicación", "Parámetros", "Icono", "Sugerencia", "Objetivo")
Actualiza dinámicamente un elemento a una aplicación de menú. Solo puede usar esta macro cuando ya hay una matriz generada con la macro sc_appmenu_create antes. Esta macro solo se puede usar en elementos que se crearon con la macro sc_appmenu_add_item anteriormente.
Parametos | Descripción
menu_name | Nombre del elemento del menu
id_item | ID del elemento del menu
id_parent | ID del elemento del menú de la aplicación. Para las raíces se pasa el valor nulo / vacío.
Label | Descripción elemento del menu aplicación
Aplication | Elemento de menu o nombre de la aplicación
Parameters | Cadena con paramentro para pasar al elemento del menu Ej.: param1 = valor; param2 = valor
Icon | Ruta de icono utilizada en el elemento del menu
Hint | Sugerencia descriptiva para el elemento de menu
Target | Objetivo para el enlace del elemento del menu
Ej. 1: sc_appmenu_update_item('menu_main','item_2','item_1','Category Form','form_category');
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_begin_trans("Conexión")
Ver un video tutorial Esta macro inicia un conjunto de transacciones en la base de datos. Para el uso de esta macro necesita tener una base de datos transaccional. En las aplicaciones de formulario, los eventos (onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate o onBeforeDelete) están protegidos automáticamente por un control de transacción, ya que la conexión es la misma que la de la aplicación. En los otros casos, si el usuario necesita realizar un control de transacción, debe comenzar con esta macro y finalizar con la macro sc_commit_trans() para confirmar las actualizaciones o sc_rollback_trans() para cancelar las transacciones. El parámetro "conexión" es opcional, necesario solo si el comando se ejecuta en una conexión diferente de la aplicación real. Ej: sc_begin_trans(); if({campo} == 1) { sc_rollback_trans(); } else { sc_commit_trans(); }
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_block_display(Nombre del bloque, on/off)
Ver un vídeo tutorial Determina dinámicamente los campos de visualización de un bloque específico. Por defecto, se muestran todos los bloques (condición "activada"). Ej. 1: if ({type_customeri} == "personal") { sc_block_display(company, off); } else { sc_block_display(personal, off); } Ej. 2: Usando una variable local como segundo parámetro $var = "off"; sc_block_display(company, $var); Obs: En las grid, esta macro solo funciona con orientación de "diapositiva".
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Formulário | Aplicación Controle
onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit | onScriptInit onRecord | onScriptInit | onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onClick onScriptInit onLoadAll onRefresh

sc_btn_copy
Ver un video tutorial Disponible cuando se hace clic en el botón "Copiar". Se puede probar y usar dentro de los eventos de ScriptCase, lo que permite una programación específica en tiempo de ejecución. Ej. 1: if (sc_btn_copy) { sc_message("Registro copiado exitosamente!"); }
Macro Scope
Aplicación Calendario | Aplicación Formulário
onScriptInit onLoad | onScriptInit onLoad

sc_btn_delete
Ver un video tutorial Disponible cuando se hace clic en el botón "Eliminar". Se puede probar y usar dentro de los eventos de ScriptCase, lo que permite una programación específica en tiempo de ejecución. Ej. 1: if (sc_btn_delete) { sc_error_message("No fue posible eliminar este registro"); }
Macro Scope
Aplicación Calendario | Aplicación Formulário
onValidate onValidateFailure onValidateSuccess | onValidate onValidateFailure onValidateSuccess

sc_btn_disable('id_boton', 'on/off')
Ver un vídeo tutorial Esta macro se usa para deshabilitar o habilitar botones desde una aplicación de menú. Ej: sc_btn_disable('btn_2', 'off');
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onLoad

sc_btn_disabled("boton_nombre", "status")
Ver un vídeo tutorial Esta macro está destinada a habilitar o deshabilitar dinámicamente un botón de la barra de herramientas. Tiene dos parámetros obligatorios:
Parametro | Valor | Descripción
--- | --- | ---
nombre_boton | El valor debe informarse mediante variables o en formato de cadena, con comillas simples o dobles. En negrita, aquí está el ejemplo de cómo se debe ingresar el parámetro: sc_btn_disabled('update', 'off'); Obs: Los nombres de los botones deben estar en minúsculas. | Este parámetro define el botón cuya visualización cambiará. Los nombres de los botones están disponibles en la tabla siguiente, separados por aplicación. Grid/Gráfico Formulário/Calendario Control
status | Al igual que el nombre del campo, el parámetro solo acepta cadenas, protegidas con comillas simples o dobles. En negrita, aquí está el ejemplo de cómo se debe ingresar el parámetro: sc_btn_disabled('update', 'off'); | Este parámetro define si el botón está habilitado, cuando está on encendido, o deshabilitado si está off apagado Valores aceptados en el parámetro: on - El botón se muestra deshabilitado; off - El botón se muestra habilitado;
#### Nombre de los botones de grid
Nombre del botón | Descripción
--- | ---
first | Navegue para la primera página.
back | Navega para la página anterior.
forward | Navega para la página siguiente.
last | Navega para a última página.
filter | Controle la visualización del botón "Filtro" en la grid.
pdf | Genera archivo PDF a color.
det_pdf | Genera archivo PDF en el detalle.
pdfbw | Genera archivo PDF blanco y negro de la grid.
xls | Genera archivo XLS.
xml | Genera archivo XML.
csv | Genera archivo CSV.
rtf | Genera archivo RTF.
word | Genera archivo Word.
json | Genera archivo JSON.
print | Abre la consulta en formato de impresión.
det_print | Abre el detalle en formato de impresión.
summary | Controla la visualización del botón "Resumen" en la cuadrícula.
new | Controla la visualización del botón "Nuevo", lo que permite la inclusión de nuevos registros. (si la aplicación tiene un enlace o si el formulario se está ejecutando en el iframe de la consulta)
insert | Controla la visualización del botón "Insertar". (solo en casos de formulario que se ejecuta en iframe de consulta)
update | Controla la visualización del botón "Actualizar". (solo en casos de formulario que se ejecuta en iframe de consulta)
delete | Controla la visualización del botón "Eliminar". (solo en los casos en que el formulario se ejecuta en el iframe de la consulta)
groupby | Controla la visualización del botón "Agrupación".
dynsearch | Controla la visualización del botón "Filtro dinámico".
gridsave | Controla la visualización del botón "Guardar grid".
sel_col | Botón Seleccionar columnas
sort_col | Botón Ordenar
#### Nombre de los botones de la aplicación Calendario y Formulario
Nombre del botón | Descripción
first | Navega para el primeir registro del formulario.
back | Navega para el registro anterior.
forward | Navega para el registro siguiente.
last | Navega para el último registro del formulário.
new | Controla la visualización del botón "Nuevo" en un formulario, usado en off el formulario es iniciado en modo incluir.
insert | Controla la visualización del botón "Incluir".
update | Controla la visualización del botón "Actualizar".
delete | Controla la visualización del botón "Excluir".
copy | Controla la visualización del botón "Copiar".
dynsearch | Controla la visualización del botón "Filtro dinâmico".
pdf | Genera archivo PDF a partir del formulario.
print | Abre el formulario en formato de impresión.
#### Nombre de los botones del Control
Nombre del botón | Descripción
ok | Controla la visualización del botón "Ok" en el control.
exit | Controla la visualización del botón "Salir".
facebook | Controla la visualización del botón "Facebook".
twitter | Controla la visualización del botón "Twitter"
google | Controla la visualización del botón "Google+"
paypal | Controla la visualización del botón "PayPal"
Ejemplo: Habilitando botón delete apenas para el usuario admin. if ( [user_login] == 'admin' ) { sc_btn_disabled('delete', 'on'); } else { sc_btn_disabled('delete', 'off'); } Ejemplo: Usando variables. Obs: Pueden ser utilizadas variables globales o locales. if ( [user_login] == 'admin' ) { sc_btn_disabled([btn_name], [status]); } else { sc_btn_disabled([btn_name], [status]); }
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle
onAfterDelete onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit | onScriptInit | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onScriptInit onLoad onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess

sc_btn_display("Nombre_Boton", "on/off")
Ver un vídeo tutorial Utilizado dentro de los eventos, los botones de la barra de herramientas se pueden habilitar o deshabilitar. Button_Name: es el nombre o la variable que contiene el nombre del botón que se habilitará / deshabilitará. Nombre de botones (Grid):
Nombre del botón | Descripción
first | Ir para la primera pagina del grid.
back | Ir para la pagina anterior del grid.
forward | Ir para la proxima pagina del grid.
last | Ir para la ultima pagina del grid.
filter | Muestra el boton "Filtro".
pdf | Genera PDF a color.
det_pdf | Genera PDF detalle
pdfbw | Genera PDF blanco y negro.
xls | Genera archivo XLS.
xml | Genera archivo XML.
csv | Genera archivo CVS.
rtf | Genera archivo RTF.
word | Genera archivo Word.
json | Genera archivo JSON.
print | Muestra el boton "Imprimir" en la grid.
det_print | Muestra el botón "Imprimir" en los detalles. resumen
summary | Muestra el boton "Resumen" en la grid.
new | Muestra el botón "Nuevo". (si la aplicación tiene un enlace o si el formulario se está ejecutando en el iframe de la grid)
insert | Muestra el boton "incluir" en el formulario (solo para formularios ejecutados desde el iframe del grid)
update | Muestra el boton "actualizar" del formulario (solo para formularios ejecutados desde el iframe del grid)
delete | Muestra el boton "eliminar" del formulario (solo para formularios ejecutados desde el iframe del grid)
qsearch | Muestra el boton "Busqueda rapida/Quick Search" en la grid.
dynsearch | Muestra el boton "Busqueda dinaminca" en la grid.
gridsave | Muestra el boton "Guardar Grid" en la grid.
sel_col | Botón Seleccionar columnas
sort_col | Botón Ordenar
Nombre del botón: (Formulario):
Nombre del botón. | Descripción
first | Ir para la primera pagina del form.
back | Ir para la pagina anterior del form.
forward | Ir para la proxima pagina del form.
last | Ir para la ultima pagina del grid.
new | Muestra el boton the "nuevo" en el form, si está apagado, el formulario comenzará en modo de inserción.
insert | Muestra botón "Incluir" en el formulario.
update | Muestra botón "Actualizar" en el formulario.
delete | Muestra botón "Eliminare" en el formulario.
copy | Muestra botón "Copiar" en el formulario.
qsearch | Muestra "Quick Search/Busqueda Rapida" en el formulario.
pdf | Genera archivo PDF en el formulario.
print | Abrir el formulario en modo impimir.
dynsearch | Muestra boton "Busqueda dinamica" en el grid.
Nombre del botón (Control):
Nombre del botón. | Descripción
ok | Muestra boton "Ok" en la aplicación control.
exit | Muestra boton "Exit" en la aplicación control.
facebook | Muestra boton "Facebook" en la aplicación control.
twitter | Muestra boton "Twitter" en la aplicación control.
google | Muestra boton "Google+" en la aplicación control.
paypal | Muestra boton "PayPal" en la aplicación control.
OBS. Importante: los nombres de los botones deben estar en minúsculas. Ej. 1: sc_btn_display ('nuevo', 'off'); Ej. 2: Usando una variable local como segundo parámetro $var = "off"; sc_btn_display ('new', $var); Ej. 3: Al pasar variables o campos ({field} o [global_variable]) como parámetros, no es necesario utilizar comillas dobles o simples antes y después de la variable. sc_btn_display ({variable_button}, 'off');
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle
onAfterDelete onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit | onScriptInit | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit onLoadAll onRefresh onValidate onValidateFailure

sc_btn_insert
Ver un vídeo tutorial Disponible cuando se hace clic en el botón "Agregar". Se puede probar y usar dentro de los eventos de ScriptCase, lo que permite una programación específica en tiempo de ejecución. Ej. 1: if (sc_btn_insert) { sc_message("Registro insertado exitosamente"); }
Macro Scope
Aplicación Calendario | Aplicación Formulário
onValidate onValidateFailure onValidateSuccess | onValidate onValidateFailure onValidateSuccess

sc_btn_label("btn_name", "new_label")
Ver un vídeo tutorial Esta macro se utiliza para cambiar dinámicamente la etiqueta de los botones, ya sean creados por el desarrollador o por el propio Scriptcase. Para ello, es necesario informar dos parámetros obligatorios, `'btn_name'` e `'new_label'` (nombre del botón, y nueva etiqueta).
Parametro | Valor | Descripción
--- | --- | ---
btn_name | El parámetro se puede ingresar usando variables (globales o locales) o cadena (usando comillas dobles o simples) En negrita, aquí está el ejemplo de cómo se debe ingresar el parámetro: `sc_btn_label('update', 'Actualizar Registro');` Valores aceptados en el parametro: String - Protegida por comillas simples o dobles. Ej.: `'update'` Variables - Locales o globales. Ej.: `$btn_update` | Recibe el nombre de los botones a los que se les cambiará la etiqueta. Los nombres de los botones, que son creados automáticamente por Scriptcase, están disponibles a continuación, separados por aplicación. Grid/Gráfico Formulario/Calendario Control
new_label | El parámetro se puede ingresar usando variables (globales o locales) o cadena (usando comillas dobles o simples) `sc_btn_label('update', 'Actualizar Registro');` Valores aceptados en el parametro: String - Protegido por comillas simple o dobles. Ej.: `'Actualizar Registro'` Variáveis - Local o global. Ej.: `$new_label` Lang -variable lang. Ej.: `{lang_btn_label}` | Este parámetro recibe la nueva etiqueta del botón informado en el parámetro anterior. Además de la cadena y la variable, también es posible utilizar un idioma para definir la etiqueta, lo que permite la traducción de la internacionalización de su aplicación.
Clique aqui y vea ejemplos de como usar la macro. Nombre de los botones de la Grid y del grafico.
Nombre del botón | Descripción
--- | ---
first | Navega para el inicio de la grid.
back | Navega para la pagina anterior.
forward | Navega para la pagina siguiente.
last | Navega para la última página.
filter | Controla la exibición del botón "Filtro" de la grid.
pdf | Genera el PDF a color de la grid.
det_pdf | Genera PDF del detalle.
pdfbw | Genera PDF blanco y negro de la grid.
xls | Genera archivo XLS.
xml | Genera archivo XML.
csv | Genera archivo CSV.
rtf | Genera archivo RTF.
word | Genera archivo Word.
json | Genera archivo JSON.
print | Abre la grid en formato de impresión.
det_print | Abre el detalle en formato de impresión.
summary | Controla la visualización del botón "Resumen" en la grid.
new | Controla la visualización del botón "Nuevo", permitiendo agregar nuevos registros. Nota: si la aplicación tiene un enlace a ella, o si el formulario se está ejecutando en el iframe de la grid
insert | Controla la visualización del botón "Agregar". Nota: solo en los casos en que el formulario se ejecuta en iframe de la grid
update | Controla la visualización del botón "Actualizar". Nota: solo en los casos en que el formulario se ejecuta en iframe de la grid
delete | Controla la visualización del botón "Eliminar". Nota: solo en los casos en que el formulario se ejecuta en iframe de la grid
groupby | Controla la visualización del botón "Agrupación".
dynsearch | Controla la visualización del botón "Filtro dinamico".
gridsave | Controla la visualización del botón "Guardar Grid".
sel_col | Botón de selecionar columnas
sort_col | Botón de ordenar
Nombre de los botones del formulario y calendario
Nombre del botón | Descripción
--- | ---
first | Navega para el primer registro del formulario.
back | Navega para el registro anteriordel formulario.
forward | Navega para el registro siguiente del formulario.
last | Navega para el utlimo registro del formulario.
new | Controla la visualización del botón "Nuevo" en un formulario, usado en 'off' el formulario es iniciado en modo agregar o nuevo.
insert | Controla la visualización del botón "Agregar".
update | Controla la visualización del botón "Actualizar".
delete | Controla la visualización del botón "Eliminar".
copy | Controla la visualización del botón "Copiar".
dynsearch | Controla la visualización del botón "Filtro dinâmico".
pdf | Genera documento PDF a partir del formulário.
print | Abre el formulário en modo impreción.
Nombre de los botones de la grid.
Nombre del botón | Descripción
ok | Controla la exibición del botón "Ok" en el form control.
exit | Controla la exibición del botón "Sair".
facebook | Controla la exibición del botón "Facebook".
twitter | Controla la exibición del botón "Twitter"
paypal | Controla la exibición del botón "PayPal"
Ejemplo: Parametro con string
    sc_btn_label('update', 'Actualizar registro');
Ejemplo: Parametro con lang
    sc_btn_label("update", {lang_btn_label});
Ejemplo: Parametro con variable Global
    [btn_name] = "update";
    [label] = "update";
    sc_btn_label([btn_name], [label]);
Ejemplo: Parametro con variable local
    $btn_name = "update";
    $label= "update";
    sc_btn_label($btn_name, $label);
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle
onAfterDelete onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit | onScriptInit | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onScriptInit onLoad onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit onLoadAll onRefresh onValidate onValidateFailure

sc_btn_new
Disponible cuando se hace clic en el botón "Agregar nuevo". Se puede probar y usar dentro de los eventos de ScriptCase, lo que permite una programación específica en tiempo de ejecución. Ej. 1: if (sc_btn_new) { {My_Date} = date('Y/m/d'); } Disponible cuando se hace clic en el botón "Agregar nuevo". Se puede probar y usar dentro de los eventos de ScriptCase, lo que permite una programación específica en tiempo de ejecución. Ej. 1: if (sc_btn_new) { My_Date} = date ('Y / m / d'); }
Macro Scope
Aplicación Calendario | Aplicación Formulário
onLoad | onLoad

sc_btn_update
Ver un video tutorial Disponible cuando se hace clic en el botón "Guardar". Se puede probar y usar dentro de los eventos de ScriptCase, lo que permite una programación específica en tiempo de ejecución. Ej. 1: if (sc_btn_update) { sc_error_message("Record updated successfully"); }
Macro Scope
Aplicación Calendario | Aplicación Formulário
onValidate onValidateFailure onValidateSuccess | onValidate onValidateFailure onValidateSuccess

sc_calc_dv(Dígitos, Descanso, Valor, Módulo, Pesos, Tipo)
Ver un video tutorial Esta macro tiene como objetivo calcular los dígitos de verificación.
Parámetros | Descripción
Digit | Variable que recibirá el dígito calculado.
Rest | Variable que recibirá el "resto" de la división.
Value | Valor o variable para calcular el dígito.
Module |
Weights | Valor o variable que contiene los pesos que se utilizarán. El valor predeterminado son los valores "98765432".
Type | Valor o variable que contiene el cálculo de parcelas a utilizar: 1 a la suma normal de los valores de las parcelas y 2 a la suma de cada algoritmo de las parcelas. El valor predeterminado es "1".
Ej. 1: sc_calc_dv({my_dv}, {my_rest}, 1234567, 11, 98765432, 1); Cálculo de parcelas: 7x2 = 14; 6x3 = 18; 5x4 = 20; 4x5 = 20; 3x6 = 18; 2x7 = 14; 1x8 = 8 Suma de paquetes: 14 + 18 + 20 + 20 + 18 + 14 + 8 = 112 Resto de la división de 112/11 = 2 Dígito: 11 - 2 = 9 Ej. 2: sc_calc_dv ({my_dv}, {my_rest}, 1234567, 10, 12, 2); Cálculo de parcelas: 7x2 = 14; 6x1 = 6; 5x2 = 10; 4x1 = 4; 3x2 = 6; 2x1 = 2; 1x2 = 2 Suma de paquetes: 1 + 4 + 6 + 1 + 0 + 4 + 6 + 2 + 2 = 26 Resto de la división de 26/10 = 6 Dígito: 10 - 6 = 4
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_call_api($profile, $arr_settings)
Permite utilizar las API integradas con Scriptcase. Actualmente ofrecemos la integración con Mandrill y Amazon SES API. Esta macro tiene dos parámetros:
Parámetros | Descripción
$profile | Parámetro requerido. Puede ser vacío '' o contener el nombre de la puerta de enlace configurada en "Herramientas> API".
$arr_settings | This parameter is optional, as long as the "profile" is not empty.Cuando el mismo es informado debe contenr un Array con la puerta usada y la API key.
Ej.1 - Configuración de parámetros, array con información de la API.
    $settings = array( 'settings' => ['gateway' => 'mandrill', 'api_key'=> {api_key}] );

    $mandrill = sc_call_api('', $settings);
Ej. 2: Envío de correo electrónico usando Mandril.
    $txt_no_tags = strip_tags({body});

    $arr_merge = array(
                    'name'  => '',
                    'type'  => 'to',
                    'email' => 'example@exemple.com'
                );

    $var_config = array( 'settings' => ['gateway' => 'mandrill', 'api_key'=> {api_key}] );

    $mandrill = sc_call_api('', $var_config);
    $var_msg = array(
                  'from_email'                     => {from_email},
                  'from_name'                      => {from_name},
                   'html'                          => {body},
                   'text'                          => $txt_no_tags,
                   'to'                            => array($arr_merge),
                   'subject'                       => {subject},
                   'important'                     => true,
                   'auto_text'                     => null,
                   'auto_html'                     => null,
                   'inline_css'                    => null,
                   'metadata'                      => array('website' => 'www.scriptcase.net')
       );

    $async = false;
    $return = $mandrill->messages->send($var_msg, $async);
Ej. 3 - Envío de SMS usando clickatell.
    $var_config     = array(
      'message'     => [
        'to'      => {sms_to},
        'message'     => {sms_txt},
        ],
        'settings'    => [
        'gateway'   => {gateway},
        'auth_token'  => {auth_token},
        ]
    );

    sc_send_sms($var_config);
Ej. 4 - Uso de la macro con PayPal
      $arr_settings = [
                'gateway' => 'paypal',
                'environment' => 'sandbox',
                'auth_email' => 'vitorjamil@gmail.com',
                'auth_token' => '72AE21503DDA4840BE1DC7945F6D1CE1'
                     ];
    sc_call_api('',$arr_settings);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onHeader onScriptInit onRecord | onFilterInit onFilterSave onFilterValidate | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_captcha_display("on/off")
Controla dinámicamente si se muestra el captcha/recaptcha configurado en la aplicación. Para utilizar la macro, la aplicación debe estar previamente configurada con el recurso. #### Ejemplo
    if ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) {

        sc_captcha_display("on");

    } else {

        sc_captcha_display("off");
Macro Scope
Aplicación Formulário | Aplicación Controle
onScriptInit onLoad | onScriptInit onLoadAll

sc_changed({Nombre_Campo})
Ver un video tutorial Macro para comprobar si se ha cambiado el nombre del campo. Ej. 1: if (sc_changed({my_field})) { Echo "Filed has been changed"; }
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onBeforeUpdate onValidate onValidateFailure onValidateSuccess | onBeforeUpdate onValidate onValidateFailure onValidateSuccess | onRefresh

sc_change_connection("Conexión_antigua", "Nueva_conexión")
Ver un video tutorial Esta macro cambia dinámicamente las conexiones de la aplicación Ej. 1: Para cambiar las conexiones:
    sc_change_connection("Old_Concection01", "New_Connection01" ; "Old_Concection02", "New_Connection02");
Permite cambiar más de una aplicación / conexión en un comando. Se pueden pasar múltiples conexiones como parámetros que deben estar separados por un ";". Ej. 2: Usando variables:
    sc_change_connection([Global_Connetion], [Test_Connection]);
Los cambios tienen efecto en las próximas aplicaciones. Ej. 3: Cambiar la conexión principal de la aplicación
    sc_change_connection({Password}, [Test] ; "Mi_Conexion", [Global_Connection]);
Los cambios tienen efecto en las próximas aplicaciones. Ej. 4: Para eliminar los cambios: Para recuperar su configuración anterior puede usar la macro sc_reset_change_connection();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onExecute | onScriptInit onLoad | onHeader onScriptInit | onApplicationInit onScriptInit | onScriptInit onLoad onLoadRecord | onScriptInit onLoadAll | onHeader onScriptInit onRecord

sc_change_css("atributo", "valor", "nombre_campo")
Esta macro permite manipular las propiedades CSS de los campos y filas de la consulta De esta forma puedes cambiar el aspecto de la aplicación de forma dinámica y con muchas más opciones de modificación ## Lista de parámetros
parámetros | valores paramétricos | Descripción
nombre_del_atributo | Este parámetro recibe el nombre del atributo css a modificar, que debe introducirse entre comillas dobles, comillas simples. En este parámetro se puede utilizar el atributo sc_badge que aplica un css predefinido al texto. Ejemplo con atributo color `sc_change_css('color', '#dcfce7');` Ejemplo com sc_badge `sc_change_css('sc_badge', '#dcfce7', 'field_name');` | Este parámetro es obligatorio y establece el atributo CSS que se modificará.
`valor` | Este parámetro define el valor del atributo introducido en el parámetro anterior y debe introducirse entre comillas dobles o simples. Cuando se utiliza el atributo `sc_badge` en paramentro el valor del atributo debe ser uno de los colores listados a continuación: azul, marrón, cian, gris, verde, naranja, rosa, morado, rojo, amarillo y cadena vacía Si no se introduce ningún valor, pasando la cadena vacía, la insignia se eliminará del campo. Ejemplo de configuración del color del atributo color `sc_change_css('color', '#dcfce7');` Ejemplo con sc_badge `sc_change_css('sc_badge', 'green', 'field_name');` | Parámetro obligatorio que define el valor del atributo indicado anteriormente.
`nombre_del_campo` | El nombre del botón debe informarse mediante comillas dobles, comillas simples o variables. Ejemplo En este ejemplo estamos definiendo el cambio de color de fuente del campo `fld_status` `sc_change_css('color', '#dcfce7', 'fld_status');` | Atributo opcional. Define el campo donde se aplicará el CSS, si no se informa ningún valor el cambio se realizará en todos los campos de la línea. Para utilizar el atributo `sc_badge` es obligatorio informar del nombre del campo, de lo contrario el css no se aplicará a ningún campo.
Consulte a continuación la lista de colores aceptados al utilizar `sc_badge` en el nombre del atributo. blue brow cyan gray green orange pink purple red yellow ## Ejemplo Ejemplo de cambio del color de la fuente y utilización del `sc_badge`
    switch({taskstatus}) {
    	case 'COMPLETED':
    		sc_change_css('color', '#dcfce7', 'taskstatus');
    		sc_change_css('sc_badge', 'green', 'taskstatus');
    		break;

    	case 'IN-PROGRESS':
    		sc_change_css('color', '#1e40af', 'taskstatus');
    		sc_change_css('sc_badge', 'blue', 'taskstatus');
    		break;

    	case 'NOT-STARTED':
    		sc_change_css('color', '#991b1b', 'taskstatus');
    		sc_change_css('sc_badge', 'red', 'taskstatus');
    		break;
    }

    Ejemplo de utilización de la macro con atributos css
    switch({taskstatus}) {
    	case 'COMPLETED':
    		sc_change_css('color', '#166534', 'taskstatus');
    		sc_change_css('background-color', '#dcfce7', 'taskstatus');
    		sc_change_css('padding-right', '0.6em', 'taskstatus');
    		sc_change_css('padding-left', '0.6em', 'taskstatus');
    		sc_change_css('border-radius', '14px', 'taskstatus');
    		sc_change_css('font-weight', 'bold', 'taskstatus');
    		sc_change_css('width', 'fit-content', 'taskstatus');
    		sc_change_css('display', 'block', 'taskstatus');
    		sc_change_css('padding-top', '0.2em', 'taskstatus');
    		sc_change_css('padding-bottom', '0.2em', 'taskstatus');
    		sc_change_css('font-size', '60%', 'taskstatus');
    		sc_change_css('margin', '10%', 'taskstatus');
    		break;

    	case 'IN-PROGRESS':
    		sc_change_css('color', '#1e40af', 'taskstatus');
    		sc_change_css('background-color', '#dbeafe', 'taskstatus');
    		sc_change_css('padding-right', '0.6em', 'taskstatus');
    		sc_change_css('padding-left', '0.6em', 'taskstatus');
    		sc_change_css('border-radius', '14px', 'taskstatus');
    		sc_change_css('font-weight', 'bold', 'taskstatus');
    		sc_change_css('width', 'fit-content', 'taskstatus');
    		sc_change_css('display', 'block', 'taskstatus');
    		sc_change_css('padding-top', '0.2em', 'taskstatus');
    		sc_change_css('padding-bottom', '0.2em', 'taskstatus');
    		sc_change_css('font-size', '60%', 'taskstatus');
    		sc_change_css('margin', '10%', 'taskstatus');
    		break;

    	case 'NOT-STARTED':
    		sc_change_css('color', '#991b1b', 'taskstatus');
    		sc_change_css('background-color', '#fee2e2', 'taskstatus');
    		sc_change_css('padding-right', '0.6em', 'taskstatus');
    		sc_change_css('padding-left', '0.6em', 'taskstatus');
    		sc_change_css('border-radius', '14px', 'taskstatus');
    		sc_change_css('font-weight', 'bold', 'taskstatus');
    		sc_change_css('width', 'fit-content', 'taskstatus');
    		sc_change_css('display', 'block', 'taskstatus');
    		sc_change_css('padding-top', '0.2em', 'taskstatus');
    		sc_change_css('padding-bottom', '0.2em', 'taskstatus');
    		sc_change_css('font-size', '60%', 'taskstatus');
    		sc_change_css('margin', '10%', 'taskstatus');
    		break;
    }
Macro Scope
Aplicación Grid
onClick onRecord

sc_commit_trans("Conexion")
Ver un video tutorial Esta macro tiene el objetivo de confirmar un conjunto de transacciones en la base de datos En las aplicaciones de formularios, hay eventos que realizan transacciones con la base de datos (Ex: onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate, onBeforeDelete, etc...). El control de transacciones de estos eventos se realiza mediante Scriptcase, si la conexión proporcionada es la misma de la aplicación. Sin embargo, si el usuario tiene que realizar cualquier tipo de redirección en estos eventos, es necesario utilizar la macro sc_commit_trans antes de la redirección para asegurar las transacciones realizadas anteriormente. Ej: onAfterUpdate - Utilizando la redirección después de actualizar un registro:
    sc_commit_trans();

    sc_redir('grid_main');
El parámetro "conexión" es opcional, siendo necesario solo si el comando se ejecuta en una base de datos diferente a la aplicación.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_concat()
Ver un vídeo tutorial Esta macro devuelve una cadena resultante de la definición de dos o más valores Puede usarse en la búsqueda de campos o eventos junto con las macros sc_lookup() y sc_select() Hace formato concat de acuerdo a su base de datos. Ej. 1: Edición de lookup (Edición de búsqueda):
    SELECT campo1, sc_concat(campo2,' - ',campo3) FROM tabla
Ej. 2: Usando la macro con sc_lookup:
    sc_lookup(Dataset,"SELECT campo1,sc_concat(campo2, ' - ' ,campo3) FROM tabla");
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_confirm("Mensaje")
Ver un video tutorial Válido solo en el código de programación PHP que se ejecuta cuando se lo llama a través de un botón de la barra de herramientas. Esta macro se usa para confirmar que la acción debe ejecutarse realmente, evitando errores. ### Parámetro Esta macro tiene un solo parámetro, que es el mensaje de confirmación que se mostrará. Ej. 1: sc_confirm ("¿Realmente deseas ejecutar esta acción?");
Macro Scope
Aplicación Formulário | Aplicación Controle
onClick | onClick

sc_connection_edit("Nombre_Conexion", $ arr_conn)
Ver un video tutorial 1º Parámetro: nombre de la conexión que se editará. 2º Parámetro: matriz de elementos que contienen la información de conexión que se editará. Mira los índices de la matriz:
Indice | Descripción | Ejemplo
['server'] | Database server (host) | $arr_conn['server'] = "127.0.0.1"
['user'] | Database username | $arr_conn['user'] = "root"
['password'] | Database password | $arr_conn['password'] = "secretpass123"
['database'] | Nombre de la base de datos utilizada en la conexión | $arr_conn['database'] = "sc_samples"
['persistent'] | Define si la conexión es persistente o no | $arr_conn['persistent'] = "Y" / "N"
['encoding'] | Configurar la codificación de conexión | $arr_conn['encoding'] = "utf8"
Nota: No es necesario usar todos los índices en la matriz, solo podemos pasar los requeridos. Ejemplo: $arr_conn = array(); $arr_conn['user'] = "admin2"; $arr_conn['password'] = "admin2pass"; $arr_conn['database'] = "sc_samples2"; sc_connection_edit("sc_connection", $arr_conn);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_connection_new("Nombre_de_Conexion", $arr_conn)
Ver un video tutorial Cuando se usa, la macro crea una nueva conexión con la información insertada en sus parámetros. Esta conexión está disponible en toda la sesión actual de Scriptcase y deja de existir cuando se cierra la sesión. La nueva conexión solo estará disponible en la próxima aplicación. 1º Parámetro: nombre de la conexión. Nota: si hay una conexión creada dentro del Scriptcase con el mismo nombre, esta macro no tiene ningún efecto. Las conexiones creadas dentro de Scriptcase prevalecen. Si desea editar una conexión existente, consulte la documentación de la macro sc_connection_edit . 2º Parámetro: Matriz de elementos que contienen la información de conexión. Mira los índices de la matriz:
Indice | Descripción | Ejemplo
['drive'] | Controlador de la base de datos utilizada para la conexión. (vea la tabla de abajo) | $arr_conn['driver'] = "oci8"
['server'] | Database server (host) | $arr_conn['server'] = "127.0.0.1"
['user'] | Database username | $arr_conn['user'] = "root"
['password'] | Database password | $arr_conn['password'] = "secretpass123"
['database'] | Nombre de la base de datos utilizada en la conexión | $arr_conn['database'] = "sc_samples"
['persistent'] | Define si la conexión es persistente o no | $arr_conn['persistent'] = "Y" / "N"
['encoding'] | Configurar la codificación de conexión | $arr_conn['encoding'] = "utf8"
Nota: Se requiere que todos los artículos estén llenos, con la excepción de los artículos. ['persistent'] y ['encoding']. Vea abajo la lista de drivers:
Driver | Descripción
access | MS Access
ado_access | MS Access ADO
odbc | ODBC Genérico
db2 | DB2
db2_odbc | DB2 ODBC Nativo
odbc_db2 | DB2 ODBC Genérico
odbc_db2v6 | DB2 ODBC Genérico 6 ou Abaixo
pdo_db2_odbc | DB2 PDO ODBC
pdo_ibm | DB2 PDO
firebird | Firebird
pdo_firebird | Firebird PDO
borland_ibase | Interbase 6.5 ou Acima
ibase | Interbase
pdo_informix | Informix PDO
informix | Informix
informix72 | Informix 7.2 ou Abaixo
ado_mssql | MSSQL Server ADO
pdo_sqlsrv | MSSQL Server NATIVE SRV PDO
mssqlnative | MSSQL Server NATIVE SRV
odbc_mssql | MSSQL Server ODBC
mssql | MSSQL Server
pdo_dblib | DBLIB
pdo_mysql | MySQL PDO
mysqlt | Mysql (Transactional)
mysql | MySQL (Non-Transactional)
pdo_oracle | Oracle PDO
oci805 | Oracle 8.0.5 ou Acima
odbc_oracle | Oracle ODBC
oci8 | Oracle 8
oci8po | Oracle 8 Portable
oracle | Oracle 7 ou menor
postgres7 | PostgreSQL 7 ou Acima
pdo_pgsql | PostgreSQL PDO
postgres64 | PostgreSQL 6.4 ou acima
postgres | PostgreSQL 6.3 ou abaixo
pdosqlite | SQLite PDO
sqlite | SQLite
sybase | Sybase
pdo_sybase_dblib | Sybase PDO DBLIB
pdo_sybase_odbc | Sybase PDO ODBC
Ejemplo: $arr_conn = array(); $arr_conn['drive'] = "mysqlt"; $arr_conn['server'] = "127.0.0.1"; $arr_conn['user'] = "root"; $arr_conn['password'] = "pass123"; $arr_conn['database'] = "sc_samples"; $arr_conn['persistent'] = "Y"; $arr_conn['encoding'] = "utf8"; sc_connection_new("new_conn_mysql", $arr_conn);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_date(Fecha, "Formato", "Operador", D, M, Y)
Ver un vídeo tutorial Esta macro tiene el objetivo de calcular el incremento o disminución de fechas. Para su uso son necesarios algunos parámetros de la siguiente manera:
Parámetros | Descripción
Date | Campo de fecha que contiene la fecha a modificar.
Format | Formato del campo fecha.
Operator | "+" para incremento y "-" para decremento.
D | Número de días para aumentar o disminuir.
M | Número de meses para aumentar o disminuir.
Y | Número de años para aumentar o disminuir.
Ej. 1: {birthdate} = sc_date({birthdate}, "dd/mm/yyyy", "+", 30, 0, 0); Ej. 2: $new_date = sc_date({birthdate}, "yyyy-mm-dd", "-", 15, 3, 2); Ej. 3: {inclusion_dt} = sc_date(date('Ymd'), "yyyymmdd", "-", 0, 1, 1); OBS: Para obtener la certificación del formato de fecha, antes de usar la función, pruébelo en cualquier caso: echo "form_date =". {nombre del campo fecha};
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_date_conv({Field_Date}, "Input_Format", "Output_Format")
Ver un vídeo tutorial Esta macro convierte el campo de fecha pasado como parámetro con un formato de entrada a otro campo con un formato de salida. Consulte a continuación la lista de parámetros para esta macro y los valores aceptados.
Parameter | Values | Description
field_name | Ejemplo de cómo se debe informar el parámetro:{field_name} | Este parámetro debe recibir el nombre del campo de datos que tendrá el valor manipulado
input_format | La cadena debe tener el mismo formato utilizado en la base de datos. Ejemplo de cómo ingresar la cadena de fecha en la macro: "aaaa-mm-dd" Valores aceptados: Date string - Por ejemplo "yyyy-dd-mm" db_Format - Recupera el formato de fecha de la base de datos. | Recibe la cadena con el formato de fecha actual, guardado en la base de datos. Si el formato informado es diferente del utilizado en la base de datos, la macro no funcionará como se esperaba.
output_format | La cadena debe tener el formato en el que se mostrará la fecha. Ejemplo de cómo ingresar la cadena de fecha en la macro: "yyyy/dd/mm/" Valores aceptados: Date string - Por ejemplo "yyyy-dd-mm" sc_format_region - Valor formateado según la configuración regional db_Format -Convierta la fecha al valor nativo de la base de datos | Reciba la cadena con el formato de visualización de fecha deseado. Si desea utilizar el formato de acuerdo con la configuración regional, se debe informar el valor sc_format_region en este parámetro
Para obtener más información sobre las cadenas de datos, consulte el Manual de PHP Ej. 1: Convierte la fecha del formato "dd/mm/ yyyy" al formato "yyyymmdd". `{field_date} = sc_date_conv({field_date}, "dd/mm/yyyy", "yyyymmdd");` `` Ej. 2: Convierte la fecha del formato nativo de la base de datos a "dd/mm/yyyy". `{field_date} = sc_date_conv({field_date}, "db_format", "dd/mm/yyyy");` `` Ej. 3: Convierte la fecha del formato nativo de la base de datos a "dd/mm/yyyy". `{field_date} = sc_date_conv({field_date}, "dd/mm/yyyy", "db_format");` Ex. 4: Convertir la fecha del formato nativo de la base de datos(db_format) al formato de configuración regional(sc_format_region) `{field_date} = sc_date_conv({field_date},"db_format","sc_format_region");` `` ````Ex. 5: Convertir la fecha de "aaaa-mm-dd" al formato de configuración regional(sc_format_region) `{field_date} = sc_date_conv({field_date},"aaaa-mm-dd","sc_format_region");`````
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit onRecord

sc_date_dif({Date1}, "Format Date1", {Date2}, "Format Date2")
Ver un vídeo tutorial Calcula la diferencia entre dos fechas (pasadas como parámetros) en días.
Parámetros | Descripción
Date1 | Valor de Date1 o variable.
Format Date1 | Valor o variable que contiene el formato de fecha almacenado en Date1.
Date2 | Valor de Date2 o variable.
Format Date2 | Valor o variable que contiene el formato de fecha almacenado en Date2.
Ej. 1: {amount_days} = sc_date_dif({date1}, "aaaa-mm-dd", {date2}, "mm/dd/aaaa"); Ej. 2: {amount_days} = sc_date_dif("2000-05-01", "aaaa-mm-dd", "04/21/2004", "mm/dd/aaaa"); {amount_days} sería igual a -1451 (days) Nota: Los formatos pueden ser diferentes pero deben ser en días, meses y años.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_date_dif_2({Date1}, "Format Date1", {Date2}, "Format Date2", Option)
Ver un video tutorial Calcula la diferencia entre dos fechas (pasadas como parámetros) que devuelve la cantidad de días, meses y años. El resultado se devuelve en una estructura de matriz, donde el índice 0 tiene la cantidad de días, el índice 1 tiene la cantidad de meses y el índice 2 tiene la cantidad de años.
Parámetro | Descripción
Date1 | Fecha, valor o variable
Format Date1 | Valor o variable que contiene el formato de fecha almacenado en fecha1.
Date2 | Valor de fecha2 o variable.
Format Date2 | Valor o variable que contiene el formato de fecha almacenado en fecha2.
Option | 1 = No considera el día inicial; 2 = Considera el día inicial.
Ej. 1: $diferencia = sc_date_dif_2 ({date1}, "yyyy-mm-dd", {date2}, "mm/dd/yyyy", 1); {dif_days} = $diferencia[0]; {dif_months} = $diferencia[1]; {dif_years} = $diferencia[2]; Ej. 2: $diferencia = sc_date_dif_2 ("2000-05-01", "yyyy-mm-dd", "04/21/2004", "mm/dd/yyyy", 1); $diferencia[0] = 20 (days) $diferencia[1] = 11 (months) $diferencia[2] = 3 (years) Ej. 3: Usando la opción 2 $diferencia = sc_date_dif_2 ("2000-05-01", "yyyy-mm-dd", "04/21/2004", "mm/dd/yyyy", 2); $diferencia[0] = 21 (days) $diferencia[1] = 11 (months) $diferencia[2] = 3 (years). Nota: Los formatos entre las dos fechas pueden ser diferentes, pero deben tener días, meses y años. También debe conocer el formato interno que se devuelve para que la macro funcione correctamente.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_date_empty({Campo_Fecha})
Ver un video tutorial Esta macro comprueba si un campo de fecha está vacío. Ej. 1: if (sc_date_empty({my_date}) ) { sc_error_message("Invalid Date"); }
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onHeader | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit | onFilterRefresh onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onLoadAll onRefresh | onHeader onRecord

sc_decode({Mi_Campo})
Ver un video tutorial Devuelve, el campo o la variable encriptados, a su valor original. Ej. 1: Usando una variable local: {mi_campo} = sc_decode($field_cript); Ej. 2: Usando una variable de usuario: $mi_var = sc_decode($field_cript); Nota: Netmake no es responsable por la integridad del algoritmo de criptografía (es un algoritmo de código abierto)
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_encode({Mi_Campo})
Ver un video tutorial Devuelve el campo o variable con el contenido encriptado. Ej. 1: Cifrar una variable local: $field_cript = sc_encode({my_field}); Ej. 2:Cifrar una variable de usuario: $field_cript = sc_encode($my_var); Note: Netmake no es responsable de la integridad del algoritmo de cifrado (el algoritmo proporcionado es de código abierto).
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_error_continue("Evento")
Ver un video tutorial
Esta macro desactiva el mensaje de tratamiento de error de base de datos estándar de Scriptcase para el evento pasado como parámetro, lo que permite que sea sustituido por el tratamiento de error personalizado del programador. Se puede usar junto con la variable: {sc_erro_delete }, {sc_erro_insert} y / o {sc_erro_update} Los eventos que se pasarán como parámetro son: insertar, eliminar o actualizar. Ej. 1: Utilizando en el evento onDelete para el mensaje devuelto por mssql, el tratamiento desencadenante, que cancela la exclusión de registros, muestra un mensaje de error en el formato [Microsoft] [Controlador ODBC SQL Server] [SQL Server] No puede borrar el registro. sc_error_continue ("delete"); if (! Empty ({sc_error_delete})) { $ tmp = strrpos ({sc_error_delete}, "]"); if ($ tmp! == false) { {sc_error_delete} = substr ({sc_error_delete}, $ tmp 1) ; } sc_error_message ({sc_error_delete}); sc_error_exit; }
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onBeforeDelete onBeforeInsert onBeforeUpdate | onBeforeDelete onBeforeInsert onBeforeUpdate | onScriptInit

sc_error_delete
Ver un video tutorial Esta variable devuelve una cadena con un mensaje de error de base de datos, que ocurre al tratar de excluir un registro. Se usa cuando hay una necesidad de tratar estos mensajes. < br /> Como por ejemplo, en caso de validaciones de bases de datos a través de desencadenantes o procedimientos que devuelvan mensajes. Ej. 1: contenido de la variable {sc_error_delete} , que devuelve un mensaje de error generado por el activador de la base de datos usando MsSQL. "[Microsoft] [Controlador ODBC SQL Server] [SQL Server] No puede borrar este registro." Nota: Para acceder al error de devolución de la base de datos, ve la macro " sc_error_continue ".
Macro Scope
Aplicación Calendario | Aplicación Formulário
onAfterDelete | onAfterDelete

sc_error_exit(URL / Mi_Aplicación, "Target");
Ver un video tutorial El `sc_error_exit` La macro interrumpe la ejecución del código. Cuando se usa sin parámetro, la macro usa un retorno, por lo que al usarla en un método PHP solo se interrumpirá la ejecución del código en el método, regresando al evento de origen y ejecutando el resto del código. En este caso, para interrumpir la ejecución del evento de la aplicación, también se debe utilizar la macro al devolver el método. Esta macro debe usarse después de la macro. `sc_error_message();` ### Parámetros Tiene dos parámetros que no son obligatorios y el uso o no de los parámetros interfiere con el funcionamiento de la macro.
Parámetro | Descripción | Paso de parámetros
--- | --- | ---
app_name/URL | Este parámetro no es obligatorio. Cuando se informa, cada vez que se activa la macro, el usuario será redirigido a la aplicación o página informada, que puede abrirse en la misma pestaña o en una nueva.según el parámetro objetivo. | El nombre de la aplicación o la URL deben estar entre comillas simples o dobles. Ejemplo con URL `sc_error_exit('www.scriptcase.com.br');` Ejemplo con aplicación `sc_error_exit('app_Login');`
target | Este parámetro no es obligatorio. Define si la aplicación/URL se abrirá en la misma pestaña o en una nueva. Los valores pueden ser: _blank - Que muestra la aplicación/URL en una nueva pestaña. _self - Muestra la aplicación/URL en la misma pestaña que la aplicación. Si no se ingresa ningún valor, el _ser se utilizará como valor predeterminado. | Este parámetro debe ingresarse entre comillas dobles o simples. Ejemplo abriendo la misma pestaña `sc_error_exit('www.scriptcase.com.br');` Ejemplo abriendo la misma pestaña `sc_error_exit('www.scriptcase.com.br', "_self");` Ejemplo de apertura de nueva pestaña `sc_error_exit('app_Login','_blank');`
### Ejemplos Ex. 1: Muestra solo el mensaje de error.
    sc_error_message('Mensaje de error');
    sc_error_exit();
Ex. 2: Muestra mensajes de error y el botón "Aceptar" para redirigir a la URL especificada.
    sc_error_message('Mensaje de error');
    sc_error_exit(http://www.meusite.com);
Ex. 3: Muestra mensajes de error y el botón "Aceptar" para redirigir a la Aplicación informada.
    sc_error_message('Mensaje de error');
    sc_error_exit(mi_aplicación, "_blank");
Macro Scope
Aplicación Calendario | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle
ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onValidate onValidateFailure onValidateSuccess | onClick | onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onNavigate onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess

sc_error_insert
Ver un vídeo tutorial Esta variable devuelve una cadena con el error de base de datos, que ocurre al agregar un registro. Se usa cuando es necesario tratar estos mensajes. Por ejemplo, en el caso de validaciones de bases de datos a través de desencadenantes o procedimientos que devuelven mensajes. Ej. 1: Variable {sc_erro_insert} , al devolver un mensaje de error generado por la base de datos, se activa el uso de mssql "[Microsoft] [Controlador ODBC SQL Server] [SQL Server ] No puede agregar este registro. " Nota: Para acceder al error de la base de datos, consulte la macro " sc_error_continue ".
Macro Scope
Aplicación Calendario | Aplicación Formulário
onAfterInsert | onAfterInsert

sc_error_message("Texto")
Ver un video tutorial Esta macro genera un mensaje de error. En las aplicaciones "Formularios y Control ", los mensajes se presentan junto con otros mensajes de error. encontrados en la aplicación, excepto cuando se utiliza la macro "sc_error_exit ". En las aplicaciones "Grid y menú ", los mensajes solo se presentarán a través de la macro " sc_error_exit ". Ej. 1: if ({discount}> 0.10 && [glo_usr] == 'operator') { sc_error_message ("El descuento ". {Discount}. " es mayor a 0.10"); } En este ejemplo, si el valor en el campo de descuento es más de 0.10 y el usuario intenta agregar o guardar este registro, la operación finaliza y el aparece un mensaje de error. El comando debe terminar con ");" (cerrar paréntesis y punto y coma) utilizado como delimitador para el intérprete de macros.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onValidate onValidateFailure onValidateSuccess | onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onLoad onNavigate onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess

sc_error_update
Ver un video tutorial Esta macro devuelve una cadena con un mensaje de error de base de datos que se produce al actualizar un registro. Se usa cuando existe la necesidad de tratar estos mensajes. Por ejemplo, en el caso de validaciones de bases de datos a través de disparadores o procedimientos que devuelven mensajes. Ej. 1: Variable {sc_erro_update}, devolviendo un mensaje de error generado por un activador de base de datos usando mssql. "[Microsoft] [Controlador ODBC SQL Server] [SQL Servidor] No puede actualizar este registro ". Nota: Para acceder al error de devolución de la base de datos, consulte la macro " sc_error_continue".
Macro Scope
Aplicación Calendario | Aplicación Formulário
onAfterUpdate | onAfterUpdate

sc_event_hint('nombre_del_campo', 'mensaje de ayuda', ancho_máximo)
La macro `sc_event_hint` permite que el desarrollador defina un texto de ayuda (tooltip) en los campos que contienen enlaces creados a partir del evento onClick. La macro no está disponible para eventos creados a partir de los botones de la barra de acción. #### Parámetros La macro tiene tres parámetros, de los cuales dos son obligatorios (`nombre_del_campo` y `mensaje`) y uno opcional (`ancho_máximo`). Los parámetros deben estar separados por una coma (,).
Parámetro | Descripción | Ejemplo
`nombre_del_campo` | Parámetro obligatorio que recibe el nombre del campo, como una cadena, donde se mostrará el texto de ayuda (tooltip). El nombre del campo debe estar entre comillas dobles o simples, conteniendo solo el nombre del campo. Este parámetro no acepta el uso de variables. |
    // Ejemplo de definición del parámetro.
    sc_event_hint('nombre_del_campo', 'Haga clic para más información', 100);
`mensaje` | Parámetro obligatorio que recibe el texto de ayuda que se mostrará al pasar el cursor sobre el enlace creado en el evento Ajax. El texto solo se mostrará en el campo especificado en el primer parámetro si existe un evento onClick configurado. El parámetro se puede definir usando: Cadena de texto (protegida por comillas dobles o simples) Variable PHP Variable global Lang |
    // Definir el texto usando una cadena de texto.
    sc_event_hint('nombre_del_campo', 'Haga clic para más información', 100);

    // Definir el texto usando una variable PHP.
    sc_event_hint('nombre_del_campo', $var_php, 100);

    // Definir el texto usando una variable global.
    sc_event_hint('nombre_del_campo', [var_global], 100);

    // Definir el texto usando una lang de Scriptcase.
    sc_event_hint('nombre_del_campo', {lang_nombre}, 100);
`ancho_máximo` | Parámetro opcional que define el ancho máximo del tooltip donde se mostrará el mensaje. Al alcanzar el límite definido, el texto se dividirá en varias líneas. El tamaño se define en píxeles y debe contener solo números. |
    // Definir el texto con un límite de ancho.
    sc_event_hint('nombre_del_campo', 'Haga clic para más información', 100);
#### Ejemplo de uso Ejemplo 1: Usando un lang
    sc_event_hint("id_cliente", {lang_nombre});
Ejemplo 2: Usando una variable PHP.
    $var_msg_help = "Mensaje de ayuda del campo";

    sc_event_hint("id_cliente", &var_msg_help );
Ejemplo 3: Con validación
    if ( {tipo_persona} == "F" ) {

        sc_event_hint(nombre_del_campo,"Persona Física");

    } else {

      sc_event_hint(nombre_del_campo,"Persona Jurídica");

    }
Macro Scope
Aplicación Grid
onScriptInit onRecord

sc_exec_sql("Comando SQL", "Conexión")
Ver un video tutorial Esta macro permite condicionar las circunstancias en que se ejecutan los comandos SQL. El parámetro "Conexión" es opcional. Es obligatorio si el comando que se ejecuta está en una base de datos diferente de la aplicación. Ej. 1: if (sc_after_delete) { sc_exec_sql("delete from mytable where key = {key_ant}"); }
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_exit(Opción)
Ver un video tutorial La macro `sc_exit` define el comportamiento de la aplicación después de la ejecución de un botón PHP o RUN. Este comportamiento varía según el parámetro proporcionado. Su uso es exclusivo para botones del tipo PHP o RUN ### Parámetro
Parámetros | Ejemplos | Descripción
--- | --- | ---
Sin parámetro | `sc_exit();` | La pantalla de confirmación con el botón "OK" no se mostrará y el usuario será redirigido a la aplicación anterior (si existe).
ok | `sc_exit(ok);` | La pantalla de confirmación con el botón "OK" se mostrará y el usuario será redirigido a la aplicación anterior (si existe).
sef | `sc_exit(sef);` | La pantalla de confirmación con el botón "OK" no se mostrará y el usuario regresará a la aplicación actual, ejecutando nuevamente el comando `SELECT` de la aplicación.
ref | `sc_exit(ref);` | La pantalla de confirmación con el botón "OK" no se mostrará y el usuario regresará a la aplicación actual, actualizando los datos mediante un refresh.
ok, sef | `sc_exit(ok,sef);` | La pantalla de confirmación con el botón "OK" se mostrará y el usuario regresará a la aplicación actual, ejecutando nuevamente el comando `SELECT` de la aplicación.
ok, ref | `sc_exit(ok,ref);` | La pantalla de confirmación con el botón "OK" se mostrará y el usuario regresará a la aplicación actual, actualizando los datos mediante un refresh.
### Parámetros para formularios y control Las opciones a continuación son para control de transacciones y de uso exclusivo para botones PHP en aplicaciones de control y formulario.
Parámetros | Ejemplos | Descripción
--- | --- | ---
Sin parámetro | `sc_exit();` | No afecta las transacciones en la base de datos.
c | `sc_exit(c);` | Realiza las transacciones pendientes.
r | `sc_exit(r);` | No realiza las transacciones pendientes.
### Ejemplo Ejemplo de uso de sc_exit en un botón RUN.
    // Usando en el evento onRecord del botón RUN.
    $update = "update orders set shipaddress = 'finalizado' where orderid = ". {orderid};
    sc_exec_sql($update);
    sc_exit(ref);
Macro Scope
Aplicación Calendario | Dashboard | Aplicación Formulário | Aplicación Controle
onScriptInit | onScriptInit | onClick onScriptInit | onClick onScriptInit

sc_field_color("Campo", "Color")
Ver un vídeo tutorial Esta macro se usa para cambiar/restaurar un color de la grid de forma dinámica.. Ej. 1: Cambiar el color del campo de texto de la grid "customer_id". sc_field_color ("customer_id", "#33FF66"); Ej. 2: Cambie el color del texto del campo "valor_orden”, si el valor es mayor que 1000. De lo contrario, use el color predeterminado. if ({valor_orden} > 1000) { sc_field_color ("valor_orden", "#33FF66"); } else { sc_field_color ("valor_orden", ""); } Ej. 3: Usando una variable local. sc_field_color ("customerid", {fld_color}); Ej. 4: Usando una variable global. sc_field_color ("customerid", [glo_color]);
Macro Scope
Aplicación Grid | Aplicación ReportPDF
onScriptInit onRecord | onScriptInit onRecord

sc_field_disabled("Field_Name = True / False", "Parameter")
Ver un vídeo tutorial Esta macro se usa para bloquear un campo y obtener los datos que se escribirán en él. Los campos que se van a bloquear deben ir seguidos de la opción "verdadero" (predeterminado) o "falso". El parámetro es opcional, "I" se usa solo para bloquear la adición de nuevos registros, "U" para bloquear solo la actualización, en el caso de que el parámetro no haya sido informado, el scriptcase usará ambas opciones.. Ej. 1: Bloquea solo un campo para agregar y actualizar. sc_field_disabled("Field_01"); Ej. 2: Desbloqueo de un campo para agregar y actualizar. sc_field_disabled("Field_02=false"); Ej. 3: Bloquea varios campos, solo para actualización. sc_field_disabled("Field_01; Field_02; Field_03", "U"); Ej. 4: Combinación de bloqueo y desbloqueo en varios campos, para agregar y actualizar. sc_field_disabled("Field_01=true; Field_02=false; Field_03=true");
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onLoad | onLoad onNavigate | onLoadAll | onHeader

sc_field_disabled_record("Field_Name = True / False", "Parametre")
Ver un video tutorial Esta macro tiene el objetivo de bloquear el tipado en campos determinados en las líneas del formulario de Grabación múltiple, Grid editable y Visión de Grid editable. Los campos que se supone que deben bloquearse deben aplicarse a las opciones, "verdadero" (Para bloquear) o "falso" (para desbloquear). Si no está informado, el valor predeterminado es "verdadero". El parámetro opcional es usar la "I" para bloquear al insertar un nuevo registro y "U" para bloquear mientras se actualiza un registro. Si no se informa, Scriptcase bloqueará en ambas ocasiones de manera predeterminada. Ej. 1: Bloquear el campo al incluir y actualizar. sc_field_disabled_record("Field_01"); Ej. 2: Desbloqueo del campo al incluir y actualizar. sc_field_disabled_record("Field_02=false"); Ej. 3: Bloquear los distintos campos solo cuando se actualiza. sc_field_disabled_record("Field_01; Field_02; Field_03", "U"); Ej. 4:Combinación de bloqueo y desbloqueo de varios campos al mismo tiempo que incluye y actualiza. sc_field_disabled_record("Field_01=true; Field_02=false; Field_03=true"); La macro también puede funcionar dentro de una condición, bloqueando un campo específico en la línea de registro. Ejemplo 1: if ({Filed_01} == 1) { sc_field_disabled_record("Filed_03"); } Ejemplo 2: switch(trim([arr_apps][ {app_name} ])) { case 'form': break; case 'calendar': sc_field_disabled_record("priv_export; priv_print"); break; case 'cons': sc_field_disabled_record("priv_insert; priv_delete; priv_update"); break; default: sc_field_disabled_record("priv_insert; priv_delete; priv_update; priv_export; priv_print"); break; }
Macro Scope
Aplicación Formulário
onLoadRecord

sc_field_display({Mi_Campo}, on / off)
Ver un video tutorial Esta macro muestra dinámicamente un campo específico. Por defecto, todos los campos se muestran ("en" condición "). Ej. 1: if ({tp_customeri} == "personal") { sc_field_display({company_name}, off); } else { sc_field_display({personal_name}, off); } Ej. 2: Usando una variable local como segundo parámetro $var = "off"; sc_field_display({company_name}, $var);
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle
ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onHeader onScriptInit | onScriptInit | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeInsertAll onBeforeUpdateAll onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onScriptInit onLoadAll onRefresh onValidate onValidateFailure

sc_field_init_off(campo1, campo2,...)
Ver un video tutorial Esta macro está destinada a inhibir los campos de consulta en la carga inicial. Los campos inhibidos por esta macro se pueden habilitar mediante el botón "Columnas". Ej. 01: sc_field_init_off ({orderID}, {valorTotal});
Macro Scope
Aplicación Grid
onApplicationInit

sc_field_no_validate('nombre_del_campo')
La macro solo se puede utilizar en el evento onLoad de las aplicaciones Formulario, Control y Calendario. Permite ignorar las validaciones de los campos informados en el parámetro, permitiendo al desarrollador "eliminar" dinámicamente las validaciones según su regla de negocio. Cabe mencionar que la macro solo ignorará las validaciones definidas en la pantalla de configuración del campo. No se considerarán validaciones creadas por el desarrollador en eventos, métodos o bibliotecas. Verifique algunas validaciones que serán ignoradas con el uso de la macro. Tipos de datos de campo: fecha, tarjeta de crédito, correo electrónico y código postal. Formato de valores de campos de texto: valor máximo, mínimo y caracteres permitidos. Formato de valores de campos numéricos: valor máximo y mínimo. Campos marcados como obligatorios. Consulte a continuación para obtener detalles sobre el parámetro macro. ## Parámetro macro
Parameter | Syntax | Description
--- | --- | ---
`field_name` | El parámetro espera recibir el nombre de los campos entre comillas (simples o dobles) o entre llaves `{field_name}`. También es posible ingresar dos o más campos, en cuyo caso los nombres deben estar separados por una coma. Sintaxis con un campo
    // nombre del campo entre comillas
    sc_field_no_validate('nombre_del_campo');
    // nombre del campo entre llaves
    sc_field_no_validate({nombre_del_campo});
Sintaxis con dos o más campos
    // Dos y más campos
    sc_field_no_validate({campo1}, {campo2});
| Este parámetro es obligatorio y debe recibir el nombre de los campos que no tendrán en cuenta la validación. Es posible informar más de un campo, en este caso los nombres deben estar separados por coma.
## Lista de Ejemplos #### Eliminando la validación de un campo oculto por la macro sc_field_display.
    sc_field_display({campo1}, 'off');
    sc_field_no_validate({campo1});
Ejemplo que utiliza varios campos entre llaves.
    sc_field_no_validate({campo1}, {campo2}, {campo3});
Ejemplo usando múltiples campos con comillas.
    sc_field_no_validate('campo1', 'campo2', 'campo3');
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onLoad | onLoad onLoadRecord | onLoadAll

sc_field_readonly
Ver un video tutorial Esta macro establece dinámicamente un atributo de campo de formulario en 'ReadOnly'. Use esta macro solo para hacerlo en 'runtime'. De lo contrario, active / desactive este parámetro en la interfaz del formulario. sección "Solo lectura". El parámetro on / off es opcional, utilizado por un evento ajax para definir si un campo será de solo lectura (Activado) o de solo lectura (Desactivado). Ej. 1: para establecer un campo como de solo lectura incluso cuando el formulario está en "Modo de adición": `if (sc_btn_new)` `{` `sc_field_readonly ({my_field});` `}` Ej. 2: para configurar un campo como de solo lectura de forma dinámica, utilice: `sc_field_readonly ({my_field});`
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeInsertAll onBeforeUpdateAll onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onScriptInit onLoadAll onRefresh onValidate onValidateFailure

sc_field_style({Mi_Campo}, "Background-Color", "Size", "Color", "Family", "Weight")
Ver un video tutorial La macro `sc_field_style` permite cambiar dinámicamente el CSS de los campos de una Grid. ### Parámetros Esta macro no permite el uso de variables en los parámetros. Por lo tanto, los valores (argumentos) deben ser pasados directamente en la macro, respetando el orden correcto. Solo el parámetro `nombre_campo` es obligatorio. Sin embargo, al "saltar" un parámetro, debe pasarse como una cadena vacía. Por ejemplo, para cambiar el tercer parámetro (font-size) sin modificar el color de fondo (background-color), la macro debe usarse de la siguiente manera: `sc_field_style({data_nasc}, '', '15px');`
Parámetro | Descripción | Ejemplo
--- | --- | ---
`nombre_campo` | Este parámetro es obligatorio e indica el nombre del campo que será modificado. El nombre del campo debe escribirse entre llaves: `{nombre_campo}`. | `sc_field_style({data_nasc}, '#33FF99', '15px', '#000000', 'Arial, sans-serif', 'bold');`
`background-color` | Cambia el color de fondo de la celda del campo (columna) usando la propiedad CSS `background-color`. | `sc_field_style({data_nasc}, '#33FF99');`
`font-size` | Usa la propiedad `font-size` para cambiar el tamaño de fuente del campo. Basta con proporcionar el valor deseado, como por ejemplo `'14px'`. | `sc_field_style({data_nasc}, '', '14px');`
`color` | Cambia el color del texto del campo utilizando la propiedad CSS `color`. | `sc_field_style({data_nasc}, '', '', '#33FF99');`
`font-family` | Cambia la familia tipográfica del campo, sobrescribiendo la fuente predeterminada usada en la aplicación. | `sc_field_style({data_nasc}, '', '', '', 'Arial, sans-serif');`
`font-weight` | Cambia el grosor (peso) de la fuente del campo utilizando la propiedad CSS `font-weight`. | `sc_field_style({data_nasc}, '', '', '', '', 'bold');`
Ejemplos de uso #### Ejemplo 1: Fechas vencidas con fondo rojo
    if ({data_vencimento} < date('Y-m-d')) {
        sc_field_style({data_vencimento}, '#FF4D4D', '', '#FFFFFF');
    }
#### Ejemplo 2: Resaltar campo con fuente más grande
    sc_field_style({nome_cliente}, '', '18px');
#### Ejemplo 3: Fuente monoespaciada para descripción
    sc_field_style({descricao}, '', '', '', 'Courier New, monospace');
#### Ejemplo 4: Texto en negrita para estado "Pendente"
    if ({status} == 'Pendente') {
        sc_field_style({status}, '', '', '', '', 'bold');
    }
#### Ejemplo 5: Alerta visual para estado "En análisis"
    if ({status} == 'Em Análise') {
        sc_field_style({status}, '#FFF3CD', '14px', '#856404');
    }
Macro Scope
Aplicación Grid
onRecord

sc_foot_hide()
Ver un video tutorial Esta macro tiene como objetivo ocultar el pie de página de la aplicación. Sin parámetro obligatorio, la macro está disponible en las siguientes aplicaciones: Form Control Gráfico Grid En el Grid, además de su uso estándar (sin parámetros), es posible definir individualmente el módulo donde se inhibirá la visualización del pie de página. A continuación se muestra la lista de parámetros exclusivos para usar en la aplicación de consulta. grid - Oculta solo el pie de página del módulo grid res o sum: oculta solo el pie de página del módulo de resumen det - Oculta el pie de página del módulo de detalles Recordando que los parámetros no son obligatorios, en el caso de la consulta, si no se informa ningún parámetro, se inhibirá la visualización del pie de página en todos los módulos. Ejemplos P.ej. sin parámetro: el uso predeterminado de la macro, sin pasar un parámetro, inhibe la visualización del pie de página en el Formulario, Control, Gráfico y en todos los módulos de la consulta.
    sc_foot_hide();
A continuación se muestran ejemplos del uso de la macro con parámetro, exclusivamente para uso en la cuadrícula P.ej. usando el parámetro 'grid' - Inhibe la visualización del pie de página solo en el módulo de la aplicación.
    sc_foot_hide('grid');
P.ej. usando el parámetro 'sum' - Inhibe la visualización del pie de página solo en el módulo en el resumen de la aplicación.
    sc_foot_hide('res'); o sc_foot_hide('suma');
P.ej. usando el parámetro 'det' - Inhibe la visualización del pie de página solo en el módulo en el resumen de la aplicación.
    sc_foot_hide('det');
P.ej. usando más de un parámetro - Inhibe la visualización del pie de página en los módulos de cuadrícula y detalle de la aplicación. En este caso los parámetros deben estar separados por una coma.
    sc_foot_hide('grid,det');
Macro Scope
Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle
onScriptInit | onScriptInit | onScriptInit | onScriptInit

sc_format_num({Mi_Campo}, "Simb_Grp", "Simb_Dec", "Qtde_Dec", "Enche_Zeros", "Lado_Neg", "Simb_Monetário", "Lado_Simb_Monetario")
Ver un video tutorial Esta macro se usa para formatear valores numéricos.
Parámetro | Descripción
Mi_Campo | Variable o campo para formatear (El retorno está en la siguiente variable).
Grupo_Símb | Símbolo de agrupación de valores enteros.
Dec_Símb | Símbolo separador de decimales.
Cantidad_Dec | Número de decimales que se mostrarán.
Fill_Zeros | Decimales completos con ceros (llenar) (S = Si y N = No).
Side_Neg | Posición de signo negativo (1 = left and 2 = right)
Moneda_Símb | Símbolo monetario que se mostrará.
Side_moneda_Símb | Posición del símbolo de moneda. (1 = izquierda y 2 = derecha).
Ex. 1: Formatear un número entero. sc_format_num({my_value}, '.', '', '0', 'N', '1', ''); Valor de entrada = 001234567890 Valor de salida = 1.234.567.890 Ex. 2: Formatear un valor negativo y truncar decimales. sc_format_num({my_value}, '.', '', '0', 'N', '1', ''); Valor de entrada = 0012345678.90- Valor de salida = -12.345.678 Ex. 3: Formateando un valor con 4 decimales y rellenando con ceros. sc_format_num({my_value}, '.', ',', '4', 'S', '1', ''); Valor de entrada = 0012345678.9 Valor de salida = 12.345.678,9000 Ex. 4: Formateando un valor con 2 decimales, rellenando con ceros y usando el símbolo monetario. sc_format_num({my_value}, '.', ',', '2', 'S', '1', 'US$'); Valor de entrada = 0012345678.9 Valor de salida = US$ 12.345.678,90 Ex. 5: Formatear un valor con 2 decimales, rellenando con ceros. sc_format_num({my_value}, '.', ',', '2', 'S', '1', ''); Valor de entrada = .9 Valor de salida = 0,90
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit

sc_format_num_region({Mi_Campo}, "Qtde_Dec", "Insert_Zeros", "Monetary_Sym")
Ver un video tutorial Esta macro tiene el objetivo de formatear números, utilizando la configuración regional
Parámetro | Descripción
Mi_Campo | Variable o campo que tiene un valor para formatear (si el valor es 0, el resultado será el mismo que la variable).
Qtde_Dec | Cantidad de decimales que se mostrarán.
Insertar_Zeros | completa con los decimales no existentes (Y = sí y N = no).
Moneda_Sym | Mostrar símbolo monetario (Y = sí y N = no).
Ej. 1: Formatear un valor con 2 decimales, insertando los ceros y el valor monetario. sc_format_num_region({my_value}, "2", "Y", "Y"); Valor de entrada = 9 Valor de salida = R$0,90
Macro Scope
Aplicación Blank | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad

sc_form_show'on' o 'off'
Ver un vídeo tutorial Esta macro muestra dinámicamente o no un formulario. Por defecto, se muestra el formulario (estado "on"). Ej. 1: No muestra el formulario. sc_form_show = 'off';
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onScriptInit onLoad onValidate | onScriptInit onLoad onValidate | onScriptInit onLoadAll

sc_getfield("miCampo")
Ver un video tutorial Esta macro se usa para asignar objetos (que representan el formulario del campo) a una variable de JavaScript, lo que permite al usuario acceder a las propiedades del objeto. Esta macro se ejecutará en control y formularios en los eventos y métodos de JavaScript. Ej: Mostrando el valor del campo "cliente" de un formulario: cli_js = sc_getfield ('cliente'); alert (cli_js.value);
Macro Scope

sc_get_groupby_rule()
Ver un vídeo tutorial Esta macro se usa para recuperar el nombre de la Agrupación que se está utilizando en ese momento. El valor de retorno es una Cadena que contiene el nombre de la regla. Ej: if (sc_get_groupby_rule() == "rule1") { [titulo] = "Ventas X Región"; }
Macro Scope
Aplicación Grid
onScriptInit onNavigate onRecord

sc_get_language
Ver un vídeo tutorial Esta macro devuelve la abreviatura del lenguaje utilizado. Ej. 1: $mi_lenguaje = sc_get_language();
Idioma | Valor
Árabe | ar
Alemán | de
Bahasa Melayu | ms
Bielorruso | be
Bengalí | bn
Bosnio | bs
Búlgaro | bg
Catalán | ca
Chinês simplificado | zh_cn
Chinês tradicional | zh_hk
Croata | hr
Checo | cz
Coreano | ko
Cirílico serbio | sr
Cingaleses | si
Danés | da
Eslovaco | sk
Esloveno | sl
Español | es
Estonio | et
Finlandês | fi
Francês | fr
Galego | gl
Grego | el
Gujarati | gu
Holandés | nl
Hebraico | he
Hindi | hi
Húngaro | hu_hu
Inglês | en_us
Indonésio | id
Italiano | it
Japonês | ja
Letón | lv
Lituano | lt
Macedonio | mk
Marathi | mr
Noruego | no
Polaco | pl
Português (Brasil) | pt_br
Portugal (Português) | pt_pt
Punjabi | pa
Rumano | ro
Ruso | ru
Shuar | jiv
Sueco | sv
Telugu | te
Tailandés | thai
Turco | tr
Ucraniano | uk
Urdu | ur
Kannada | kn
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onFooter onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onRecord

sc_get_regional
Ver un video tutorial Esta macro devuelve la abreviatura de la configuración regional utilizada.. Ej. 1: $my_regional = sc_get_regional();
Idioma | Valor
Afrikaans (Sudáfrica) | af_za
Albanés (Albania) | sq_al
Alemán (Alemania) | de_de
Alemán (Austria) | de_at
Alemán (Lichtenstein) | de_li
Alemán (Luxemburgo) | de_lu
Alemán (Suiza) | de_ch
Amárico (Etiopía) | am_et
Armenio (Armenia) | hy_am
Azerbaiyán (Azerbaijan) | az_az
Bahasa Melayu (Malasia) | ms_my
Belarús (Bielorrusia) | be_by
Bengali (Bangladesh) | bn_bd
Bengali (India) | bn_in
Bokmal noruego (Noruega) | nb_no
Bosnia (Bosnia-Herzegovina) | bs_ba
Breton (Francia) | br_fr
Búlgaro (Bulgaria) | bg_bg
Catalán (España) | ca_es
Checa (República Checa) | cs_cz
Chino (República de China) | zh_cn
Chino (simplificado, Singapur) | zh_sg
Chino (tradicional, Hong Kong) | zh_hk
Chino (tradicional, Macau) | zh_mo
Chino (tradicional, Taiwan) | zh_tw
Coreano (Corea) | ko_kr
Croata (Bosnia y Herzegovina) | hr_ba
Croata (Croacia) | hr_hr
Danés (Dinamarca) | da_dk
Eslovaquia (República Eslovaca) | sk_sk
Esloveno (Eslovenia) | sl_si
Español (Argentina) | es_ar
Español (Bolivia) | es_bo
Español (Chile) | es_cl
Español (Colombia) | es_co
Español (Costa Rica) | es_cr
Español (Ecuador) | es_ec
Español (El Salvador) | es_sv
Español (España) | es_es
Español (Estados Unidos) | es_us
Español (Guatemala) | es_gt
Español (Honduras) | es_hn
Español (México) | es_mx
Español (Nicaragua) | es_ni
Español (Panama) | es_pa
Español (Paraguay) | es_py
Español (Peru) | es_pe
Español (Puerto Rico) | es_pr
Español (República Dominicana) | es_do
Español (Uruguay) | es_uy
Español (Venezuela) | es_ve
Estonio (Estonia) | et_ee
Finlandés (Finlandia) | fi_fi
Francés (Bélgica) | fr_be
Francés (Camerún) | fr_cm
Francés (Canadá) | fr_ca
Francés (Costa de Marfil) | fr_ci
Francés (Francia) | fr_fr
Francés (Luxemburgo) | fr_lu
Francés (Mónaco) | fr_mc
Francés (Suiza) | fr_ch
Frisón, Western (Países Bajos) | fy_nl
Gallego (España) | gl_es
Georgia (Georgia) | ka_ge
Griego (Grecia) | el_gr
Groenlandés (Kalaallit Nunaat) | kl_gl
Gujarati (India) | gu_in
Hausa (Ghana) | ha_gh
Hebreo (Israel) | he_il
Hindi (India) | hi_in
Holandés (Bélgica) | nl_be
Holandés (Países Bajos) | nl_nl
Húngaro (Hungría) | hu_hu
Indonesia (Indonesia) | id_id
Inglés (Australia) | en_au
Inglés (Belice) | en_bz
Inglés (Botswana) | en_bw
Inglés (Camerún) | en_cm
Inglés (Canadá) | en_ca
Inglés (Caribe) | en_cb
Inglés (Estados Unidos) | en_us
Inglés (Filipinas) | en_ph
Inglés (India) | en_in
Inglés (Irlanda) | en_ie
Inglés (Jamaica) | en_jm
Inglés (Malasia) | en_my
Inglés (Namibia) | en_na
Inglés (Nigeria) | en_ng
Inglés (Nueva Zelanda) | en_nz
Inglés (Reino Unido) | en_gb
Inglés (Singapur) | en_sg
Inglés (Trinidad y Tobago) | en_tt
Inglés (Uganda) | en_ug
Inglés (Zambia) | en_zm
Inglés (Zimbabwe) | en_zw
Inglés (África del Sur) | en_za
Irlandés (Irlanda) | ga_ie
Islandés (Islandia) | is_is
Islas Feroe (Islas Feroe) | fo_fo
Italiano (Italia) | it_it
Italiano (Suiza) | it_ch
Japonés (Japón) | ja_jp
Kannada (India) | kn_in
Kazajo (Kazajstán) | kk_kz
Khmer (Camboya) | km_kh
Kirghiz (Kirguistán) | ky_kg
Laos (Laos) | lo_la
Letonia (Letonia) | lv_lv
Lituano (Lituania) | lt_lt
Luxemburgo (Luxemburgo) | lb_lu
Macedonio (República de Macedonia) | mk_mk
Malayalam (India) | ml_in
Marathi (India) | mr_in
Mongol (Mongolia) | mn_mn
Nepal (Nepal) | ne_np
Northern Sotho (Sudáfrica) | nso_z
Noruego (Noruega) | no_no
Noruego Nynorsk (Noruega) | nn_no
Occitano (Francia) | oc_fr
Oriya (India) | or_in
Persa (Irán) | fa_ir
Polaco (Polonia) | pl_pl
Portugués (Angola) | pt_ao
Portugués (Brasil) | pt_br
Portugués (Portugal) | pt_pt
Punjabi (India) | pa_in
Rumano (Moldavia) | ro_md
Rumano (Rumania) | ro_ro
Rusa (Bielorrusia) | ru_by
Ruso (Kazajstán) | ru_kz
Ruso (Rusia) | ru_ru
Serbio Cirílico (Serbia y Montenegro) | sr_yu
Serbio Latino (Serbia y Montenegro) | sh_yu
Setswana (Sudáfrica) | tn_za
Sotho (Sudáfrica) | st_za
Sri Lanka (Cingalés) | si_si
Sueco (Finlandia) | sv_fi
Sueco (Suecia) | sv_se
Swahili (Tanzania) | sw_tz
Tamil (India) | ta_in
Tayiko (Tayikistán) | tg_tj
Telugu (India) | te_in
Thai (Tailandia) | th_th
Turco (Turquía) | tr_tr
Ucrania (Ucrania) | uk_ua
Urdú (Pakistán) | ur_pk
Uzbeko (Uzbekistán) | uz_uz
co | eu -
Vietnamita (Vietnam) | vi_vn
Welsh (Reino Unido) | cy_gb
Xhosa (Sudáfrica) | xh_za
Zulú (Sudáfrica) | zu_za
Árabe (Arabia Saudita) | ar_sa
Árabe (Argelia) | ar_dz
Árabe (Bahrein) | ar_bh
Árabe (Egipto) | ar_eg
Árabe (Emiratos Árabes Unidos) | ar_ae
Árabe (Iraq) | ar_iq
Árabe (Jordania) | ar_jo
Árabe (Kuwait) | ar_kw
Árabe (Libia) | ar_ly
Árabe (Líbano) | ar_lb
Árabe (Marruecos) | ar_ma
Árabe (Omán) | ar_om
Árabe (Qatar) | ar_qa
Árabe (Siria) | ar_sy
Árabe (Túnez) | ar_tn
Árabe (Yemen) | ar_ye
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onFooter onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onHeader onRecord

sc_get_theme
Ver un video tutorial Esta macro devuelve el tema de aplicación utilizado. Ej. 1: $my_theme = sc_get_theme();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onFooter onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_get_wizard_step
Ver un vídeo tutorial Esta macro funciona en la aplicación de formulario solo cuando está configurada para funcionar como formulario de paso. Con esta macro es posible identificar la etapa actual en la que se encuentra el usuario final y así realizar cualquier validación necesaria. Para que la macro funcione, el formulario debe configurarse con al menos dos pasos o más. No tiene parámetros. Ejemplo: Validación de campos sin completar.
    if (sc_get_wizard_step() == 1) {

        if ( empty({Contactname}) ) {

            sc_error_message("Complete el campo Contactname");
        }
    }
Macro Scope
Aplicación Formulário
onValidate

sc_groupby_label("Mi_Campo")
Ver un vídeo tutorial Esta Macro modifica dinámicamente la etiqueta del campo que se muestra en grupo por líneas. Ej. 1: sc_groupby_label('state') = "state grouping"; Ej. 2: sc_groupby_label('balance') = "balance total";
Macro Scope
Aplicación Grid
onGroupBy

sc_head_hide()
Ver un video tutorial Esta macro tiene como objetivo ocultar el pie de página de la aplicación. Sin parámetro obligatorio, la macro está disponible en las siguientes aplicaciones: Form Control Gráfico Grid En el Grid, además de su uso estándar (sin parámetros), es posible definir individualmente el módulo donde se inhibirá la visualización del encabezado de página. A continuación se muestra la lista de parámetros exclusivos para usar en la aplicación de consulta. grid - Oculta solo el encabezado de página del módulo grid res o sum: Oculta solo el encabezado de página del módulo de resumen det - Oculta el encabezado de página del módulo de detalles Recordando que los parámetros no son obligatorios, en el caso de la consulta, si no se informa ningún parámetro, se inhibirá la visualización del encabezado de página en todos los módulos. Ejemplos P.ej. sin parámetro: el uso predeterminado de la macro, sin pasar un parámetro, inhibe la visualización del encabezado de página en el Formulario, Control, Gráfico y en todos los módulos de la consulta.
    sc_head_hide();
A continuación se muestran ejemplos del uso de la macro con parámetro, exclusivamente para uso en la cuadrícula P.ej. usando el parámetro 'grid' - Inhibe la visualización del encabezado de página solo en el módulo de la aplicación.
    sc_head_hide('grid');
P.ej. usando el parámetro 'sum' - Inhibe la visualización del encabezado de página solo en el módulo en el resumen de la aplicación.
    sc_head_hide('res'); o sc_head_hide('suma');
P.ej. usando el parámetro 'det' - Inhibe la visualización del encabezado de página solo en el módulo en el resumen de la aplicación.
    sc_head_hide('det');
P.ej. usando más de un parámetro - Inhibe la visualización del encabezado de página en los módulos de cuadrícula y detalle de la aplicación. En este caso los parámetros deben estar separados por una coma.
    sc_head_hide('grid,det');
Macro Scope
Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle
onScriptInit | onScriptInit | onScriptInit | onScriptInit

sc_hide_groupby_rule('group1', 'grop2', 'group3')
Ver un video tutorial Esta macro se usa para deshabilitar las reglas de Agrupación por tiempo de ejecución. Esta macro solo funcionará si hay al menos dos grupos, por lo que al usar la macro, un grupo se deshabilitará y el otro permanecerá presentado. Ex: if( [usr_login_group] == 'seller' ){ sc_hide_groupby_rule('rule_1', 'rule_2'); }
Macro Scope
Aplicación Grid
onApplicationInit

sc_image(Imagen01.jpg)
Esta macro se usa para copiar imágenes en algunos eventos o comandos Javascript para cargar imágenes en una aplicación. Todas las imágenes utilizadas en las aplicaciones se copian automáticamente en cada aplicación. Ej. 1: sc_image (img1.gif, img2.jpg); Nota: Las imágenes deben existir en el directorio de imágenes del entorno de desarrollo (../devel/conf/sys/img/img/).
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onScriptInit onLoad onValidate | onApplicationInit onScriptInit | onFooter onScriptInit | onApplicationInit onScriptInit | onFilterInit | onApplicationInit onClick onScriptInit onLoad onLoadRecord onValidate | onApplicationInit onScriptInit onLoadAll onValidateFailure onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onLoad | onApplicationInit onScriptInit

sc_include("Archivo", "Fuente")
Ver un video tutorial Scriptcase le permite al usuario catalogar sus scripts PHP para usar en varias aplicaciones. Para catalogar los scripts, vaya al menú principal de ScriptCase en "Herramientas> Biblioteca" y use la opción "cargar" existente en la interfaz. Cuando se cataloga un script, el usuario tiene la opción de elegir el contexto donde se almacenará, nivel global (Scriptcase), nivel de grupo o nivel de usuario. - Público: todos los proyectos tendrán acceso. - Proyecto: solo los usuarios del proyecto (el que se registrará en ese momento) tendrán acceso. - Usuario: solo el usuario (el que se registrará en ese momento) tendrá acceso. En la macro sc_include, el usuario debe informar el nombre del script que se incluirá y la fuente. - Nombre del script: nombre del script que se incluirá. El contexto de origen en el que se guardó el script, que podría ser: - Sys o Blank: nivel global de Scriptcase. - Prj: nivel de grupo. - Usr: nivel de usuario. Ej. 1: Incluyendo un script catalogado a nivel global. sc_include (my_script.php); Ej. 2: Incluyendo un guión catalogado a nivel de grupo. sc_include (my_script.php, grp); Ej. 3: Incluyendo un script catalogado a nivel de usuario. sc_include (my_script.php, usr);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onHeader onScriptInit | onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onHeader onScriptInit onRecord

sc_include_lib("Lib1", "Lib2", ...)
Ver un video tutorial Esta macro se usa para seleccionar dinámicamente las bibliotecas de aplicaciones.
Librerías PHP | Librerías JavaScript
--- | ---
tcpdf | Jquery
fpdf_html | jquery_thickbox
excel | jquery_blockui
rtf | tiny_mce
phpspreadsheet | jquery_touch_punch
- | fusioncharts
- | jsmind
- | jkanban
- | orgchart
Ej. 1:
    sc_include_lib ("tcpdf");

    $pdf=new TCPDF();
    $pdf->AddPage();
    $pdf->SetFont('Helvetica','B',16);
    $pdf->Cell(40,10,'Hola Mundo!');
    $pdf->Output();
Ej. 2:
    ?>
    sc_include_lib ("jsmind");
    < ?php
Macro Scope
Aplicación Blank | Aplicación Grid
onExecute | onScriptInit

sc_include_library("Destino", "Nombre de la biblioteca", "Archivo", "include_once", "Requerir")
Ver un video tutorial Esta macro incluye un archivo PHP de una biblioteca en la aplicación. Debe tener una biblioteca creada en Scriptcase para utilizar esta macro. Para crear una biblioteca, vaya a "Herramientas -> Librerías".
Parámetro | Descripción
Target | Te dice cuál es el alcance de la biblioteca. Puede ser "sys" para bibliotecas de ámbito público o "prj" para bibliotecas de ámbito de proyecto.
Nombre de la librería | Nombre dado a la biblioteca en el momento de la creación.
Archivo | Ruta absoluta dentro de la biblioteca.
include_once (Opcional) | Asegúrese de que el archivo solo se incluya una vez. Si no se informa, este valor se establece como "verdadero".
Require (Opcional) | Si el archivo o la biblioteca no existe, la aplicación se ejecutará y devolverá un error. Si no se informa, el valor se establece como "verdadero".
Ej: Incluyendo un archivo de una librería: sc_include_library("prj", "phpqrcode", "qrlib.php", true, true);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad

sc_label("nombre_del_campo")
Watch a tutorial Esta macro permite cambiar dinámicamente la etiqueta de los campos en aplicaciones de grid, formularios y control. ### Parámetros La macro tiene solo un parámetro obligatorio, que recibe el nombre del campo cuya etiqueta será cambiada. Este parámetro debe ser proporcionado entre comillas (dobles o simples) o mediante una variable, como en los ejemplos de sintaxis a continuación.
    //Proporcionando como cadena
    sc_label("customerid") = "Nueva etiqueta para el campo";

    //Proporcionando con una variable
    $var_campo = "nombre_del_campo";
    sc_label($var_campo) = "Nueva etiqueta para el campo";
### Ejemplos Ej. 1: Registro de Usuario En este escenario, se usa un solo formulario para registrar empleados y clientes.
    if ({tipo_usuario} == 'cliente') {
        sc_label('campo_id') = 'ID del Cliente';
    } else {
        sc_label('campo_id') = 'ID del Empleado';
    }
Ej. 2: Registro de Eventos En un formulario de registro de eventos, las etiquetas de los campos pueden ser cambiadas para reflejar el tipo de evento (por ejemplo, Conferencia, Taller, Seminario).
    if ({tipo_evento} == 'conferencia') {
        sc_label('local') = 'Local de la Conferencia';
    } else if ({tipo_evento} == 'taller') {
        sc_label('local') = 'Local del Taller';
    } else if ({tipo_evento} == 'seminario') {
        sc_label('local') = 'Local del Seminario';
    }
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onScriptInit onLoad onRefresh | onScriptInit | onClick onScriptInit onNavigate | onScriptInit | ajaxFieldonBlur Onchange OnClick OnFocus onScriptInit onLoad onNavigate onLoadRecord onRefresh | onBlur onChange onClick onFocus onScriptInit onLoadAll | onScriptInit

sc_language
Ver un video tutorial Esta macro devuelve el idioma y la configuración regional. Ej. 1: echo "Language: ".{sc_language};
Idioma | Valor
Árabe | ar
Alemán | de
Bahasa Melayu | ms
Bielorruso | be
Bengalí | bn
Bosnio | bs
Búlgaro | bg
Catalán | ca
Chinês simplificado | zh_cn
Chinês tradicional | zh_hk
Croata | hr
Checo | cz
Coreano | ko
Cirílico serbio | sr
Cingaleses | si
Danés | da
Eslovaco | sk
Esloveno | sl
Español | es
Estonio | et
Finlandês | fi
Francês | fr
Galego | gl
Grego | el
Gujarati | gu
Holandés | nl
Hebraico | he
Hindi | hi
Húngaro | hu_hu
Inglês | en_us
Indonésio | id
Italiano | it
Japonês | ja
Letón | lv
Lituano | lt
Macedonio | mk
Marathi | mr
Noruego | no
Polaco | pl
Português (Brasil) | pt_br
Portugal (Português) | pt_pt
Punjabi | pa
Rumano | ro
Ruso | ru
Shuar | jiv
Sueco | sv
Telugu | te
Tailandés | thai
Turco | tr
Ucraniano | uk
Urdu | ur
Kannada | kn
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit onScriptInit | onApplicationInit onScriptInit | onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_ldap_groups
La macro `sc_ldap_groups()` devuelve todos los grupos existentes en Active Directory (AD) utilizados en la macro `sc_ldap_login`. #### Sintaxis
    sc_ldap_groups();
#### Retorno esperado
    Array (
      [N] => Array
            (
                [uniquemember] => Array
                    (
                        [count] => 4
                        [0] => uid=einstein,dc=example,dc=com
                        [1] => uid=galieleo,dc=example,dc=com
                        [2] => uid=tesla,dc=example,dc=com
                        [3] => uid=newton,dc=example,dc=com
                    )

                [0] => uniquemember
                [ou] => Array
                    (
                        [count] => 1
                        [0] => scientists
                    )

                [1] => ou
                [cn] => Array
                    (
                        [count] => 1
                        [0] => Scientists
                    )

                [2] => cn
                [objectclass] => Array
                    (
                        [count] => 2
                        [0] => groupOfUniqueNames
                        [1] => top
                    )

                [3] => objectclass
                [count] => 4
                [dn] => ou=scientists,dc=example,dc=com
            )
    )
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit

sc_ldap_login($server, $version, $user, $password, $dn, $group, $port, $biblioteca)
La macro `sc_ldap_login` es responsable de establecer la conexión con el servidor LDAP (Lightweight Directory Access Protocol), permitiendo la conexión con Active Directory (AD). También define el comportamiento de las demás macros LDAP a través del parámetro `$biblioteca`, que especifica la biblioteca a utilizar (LdapRecord o adLdap). #### Sintaxis `sc_ldap_login($server, $version = '', $user = '', $password = '', $dn = '', $group = '', $port, $biblioteca);` #### Parámetros
Parámetro | Descripción
`$server` | Dirección IP o nombre del servidor LDAP.
`$version` | Versión del protocolo LDAP a utilizar (ejemplo: `3`). Si se deja vacío, se usará la versión predeterminada del servidor.
`$user` | Nombre de usuario para autenticación en LDAP. Debe estar en el formato esperado por el servidor, como `cn=admin,dc=empresa,dc=com` o `user@empresa.com`.
`$password` | Contraseña del usuario utilizada para iniciar sesión en LDAP.
`$dn` | Distinguished Name (DN) que define el punto de búsqueda de los usuarios. Ejemplo: `"dc=empresa,dc=com"`.
`$group` | Opcionalmente, se puede especificar un grupo para verificar la asociación del usuario.
`$port` | Puerto utilizado para la conexión con el servidor LDAP (`389` para conexiones estándar y `636` para conexiones seguras mediante SSL).
`$biblioteca` | Este parámetro define qué biblioteca se utilizará para la conexión con LDAP. Si se proporciona el valor `2`, la macro usará la nueva biblioteca (`LdapRecord`), disponible a partir de la versión 9.12 de Scriptcase. Si no se proporciona el parámetro, la macro continuará utilizando la biblioteca antigua (`adLdap`). Esta configuración permite que los proyectos antiguos sigan funcionando sin modificaciones, mientras que las nuevas implementaciones pueden beneficiarse de la mayor compatibilidad y seguridad de LdapRecord.
#### Ejemplo de uso
    $server = "ldap.miservidor.com";
    $version = "3";
    $user = "cn=admin,dc=empresa,dc=com";
    $password = "contraseña123";
    $dn = "dc=empresa,dc=com";
    $group = "";
    $port = 389;
    $biblioteca = 2; // O dejar vacío para utilizar la biblioteca antigua "adLdap"

    sc_ldap_login($server, $version, $user, $password, $dn, $group, $port, $biblioteca);
#### Retorno Esperado
    Array
    (
        [0] => Array
            (
                [sn] => Array
                    (
                        [count] => 1
                        [0] => Newton
                    )

                [0] => sn
                [objectclass] => Array
                    (
                        [count] => 4
                        [0] => inetOrgPerson
                        [1] => organizationalPerson
                        [2] => person
                        [3] => top
                    )

                [1] => objectclass
                [uid] => Array
                    (
                        [count] => 1
                        [0] => newton
                    )

                [2] => uid
                [mail] => Array
                    (
                        [count] => 1
                        [0] => newton@ldap.forumsys.com
                    )

                [3] => mail
                [cn] => Array
                    (
                        [count] => 1
                        [0] => Isaac Newton
                    )

                [4] => cn
                [count] => 5
                [dn] => uid=newton,dc=example,dc=com
            )
    )
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_ldap_logout
Esta macro se usa para liberar la conexión después de usar la macro sc_ldap_login. Ej: sc_ldap_logout();
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_ldap_search( $filter = 'all', $attributes = array() )
Macro para realizar búsquedas en LDAP.
Parameter | Description
$filter | 'all' o 'member': 'all' devuelve toda la información que el usuario registrado puede ver. 'member' devuelve la información sobre ese miembro
$attributes | Matriz de opciones de filtro LDAP.
Ej: $result = sc_ldap_search($filter, array('mail', 'displayname')); #### Retorno esperado
    Array (
      [N] => Array (
                [objectclass] => Array
                    (
                        [count] => 4
                        [0] => inetOrgPerson
                        [1] => organizationalPerson
                        [2] => person
                        [3] => top
                    )

                [0] => objectclass
                [cn] => Array
                    (
                        [count] => 1
                        [0] => Albert Einstein
                    )

                [1] => cn
                [sn] => Array
                    (
                        [count] => 1
                        [0] => Einstein
                    )

                [2] => sn
                [uid] => Array
                    (
                        [count] => 1
                        [0] => einstein
                    )

                [3] => uid
                [mail] => Array
                    (
                        [count] => 1
                        [0] => einstein@ldap.forumsys.com
                    )

                [4] => mail
                [telephonenumber] => Array
                    (
                        [count] => 1
                        [0] => 314-159-2653
                    )

                [5] => telephonenumber
                [count] => 6
                [dn] => uid=einstein,dc=example,dc=com
            )
    )
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_ldap_users($filter = 'all', $attributes = array())
La macro `sc_ldap_users()` se utiliza para recuperar información de los usuarios almacenados en un servidor LDAP (Lightweight Directory Access Protocol). Con esta función, es posible recuperar todos los atributos visibles para el usuario autenticado o filtrar solo aquellos de los que forma parte, permitiendo una gestión eficiente de usuarios y permisos. #### Parámetros
Parámetros | Descripción
`filter` | Define el alcance de la búsqueda en LDAP. Puede ser: `"all"` – Retorna toda la información accesible para el usuario autenticado. `"member"` – Retorna solo los atributos de los usuarios especificados.
`attributes` | Un array que contiene los atributos deseados en la consulta. Si se omite, la función devuelve todos los atributos disponibles para el usuario autenticado.
#### Sintaxis `$users = sc_ldap_users( $filter = 'all', $attributes = array());` #### Retorno Esperado
    Array
    (
        [0] => Array
            (
                [sn] => Array
                    (
                        [count] => 1
                        [0] => Newton
                    )

                [0] => sn
                [objectclass] => Array
                    (
                        [count] => 4
                        [0] => inetOrgPerson
                        [1] => organizationalPerson
                        [2] => person
                        [3] => top
                    )

                [1] => objectclass
                [uid] => Array
                    (
                        [count] => 1
                        [0] => newton
                    )

                [2] => uid
                [mail] => Array
                    (
                        [count] => 1
                        [0] => newton@ldap.forumsys.com
                    )

                [3] => mail
                [cn] => Array
                    (
                        [count] => 1
                        [0] => Isaac Newton
                    )

                [4] => cn
                [count] => 5
                [dn] => uid=newton,dc=example,dc=com
            )
    )
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_link(Columna, Aplicación, Parámetros, "Sugerencia", "Objetivo", Altura, Ancho)
Ver un vídeo tutorial Le permite crear dinámicamente una conexión de campo entre dos aplicaciones. Nota: Esta macro solo está disponible en Query. A continuación se muestra la lista de parámetros de la macro, los cuales deben ser informados separados por comas.
Parámetro | Valor | Descripción
Columna | Acepta solo cadenas con o sin protección de comillas. Por ejemplo: `sc_link(customerid,form_customer,custom={customerid},"Datos del cliente","_self");` Formas aceptadas de pasar el parámetro: customerid 'customerid' "customerid" | Parámetro obligatorio, donde se debe informar el nombre del campo que se transformará en un enlace a la otra aplicación. Nota: Si el campo informado ya tiene un enlace de campo, el enlace definido en la macro sobrescribirá el enlace de la interfaz.
Aplicación | Acepta cadenas con o sin la protección de comillas, además de variables globales o locales. Por ejemplo: `$var_cliente = 'formulario_cliente';` `sc_link(id_cliente,$var_cliente,custom={id_cliente},"Datos del cliente","_self");` Formas aceptadas de pasar el parámetro: form_customer 'form_customer' "form_customer" $var_customer [glob_customer] | Parámetro requerido, define la aplicación de destino de la llamada. En este parámetro es posible utilizar variables que permitan cambiar la aplicación de destino, dependiendo de su regla de negocio.
Parámetros | Este parámetro define el valor de la variable que estará disponible desde la aplicación de destino como una variable global. Por ejemplo: `sc_link(customerid,form_customer,custom={customerid},"Datos del cliente","_self");` Formas aceptadas de pasar el parámetro: custom = {customerid} custom = 'ALFKI' custom = $var_customer custom - [glob_customer] | Este parámetro no es obligatorio, pero su uso es necesario para la correcta visualización de los datos en la aplicación de destino. Cuando no se informa, la aplicación de destino mostrará todos los datos en la tabla. Recuperación del valor en la aplicación de destino En la aplicación de destino de la conexión, en el ejemplo al lado está la aplicación form_customer, el personalizado debe recuperarse como una variable global en el SQL de la aplicación. En este ejemplo, se ha agregado la siguiente instrucción SQL al formulario (form_customer) customerid = '[custom]' Para obtener más detalles sobre el uso de variables globales, acceda a nuestra documentación en línea.
Sugerencia | Acepta cadenas, con o sin la protección de comillas, idioma y variables globales o locales. Por ejemplo: `sc_link(id_cliente,formulario_cliente,custom={id_cliente},"Datos del cliente","_self");` Obs: Para usar comas y apóstrofes en el texto, es necesario proteger con el carácter de escape "\" Formas aceptadas de pasar el parámetro: "Texto de ayuda\, con una coma" 'Datos del cliente' Datos del cliente {lang_text} [glob_txt] $var_txt | Este parámetro no es obligatorio. Recibe un texto con alguna ayuda o comentario para el usuario del sistema, el texto se muestra cada vez que el cursor del mouse pasa sobre el enlace. Es posible utilizar langs para la definición de mensajes, permitiendo la traducción de su sistema. Obs: Para utilizar comas y apóstrofes en el texto es necesario proteger con el carácter de escape "\"
Destino | Este parámetro acepta sólo cadena. Los valores disponibles se enumeran a continuación. Por ejemplo: `sc_link(customerid,form_customer,custom={customerid},"Datos del cliente", "modal",850,600);` Nota: Si se omite, se asignará el valor "_self". Formas aceptadas de pasar el parámetro: "_self" "_blank" "iframeT" "iframeL" "iframeR" "iframeB" "modal" | Define la forma de abrir la aplicación de destino. _self: ejecuta la aplicación de destino en la misma página, superponiéndose a la aplicación de consulta; _blank: ejecuta la aplicación de destino en otra página (ventana emergente); iframeT: muestra la aplicación de destino en un iframe encima de la consulta (superior); iframeL: la aplicación de destino se mostrará en un iframe a la izquierda de la consulta (izquierda) iframeR: la aplicación de destino se mostrará en un iframe a la derecha de la consulta (derecha); iframeB: la aplicación de destino se mostrará en un iframe debajo de la consulta (Bot); modal: abre una nueva ventana y bloquea cualquier interacción en la ventana principal; Al usar cualquiera de los iframe o modal para abrir la aplicación, es posible definir la altura y ancho agregando los valores en los parámetros opcionales a continuación.
Altura | Este parámetro acepta solo valores numéricos y su unidad de medida es el píxel. Por ejemplo: `sc_link(id_cliente,formulario_cliente,personalizado={id_cliente},"Datos del cliente","modal",850,600);` | Parámetro no obligatorio, disponible solo cuando se usa el iframe y modal parámetro Destino Define la altura del iframe o modal donde se mostrará la aplicación de destino. Obs: Si se omite, el valor predeterminado será 440
Anchura | Este parámetro acepta solo valores numéricos y su unidad de medida es el píxel. Por ejemplo: `sc_link(id_cliente,formulario_cliente,custom={id_cliente},"Datos del cliente","iframeB",850,600);` | Parámetro no obligatorio, disponible solo cuando se usa el iframe y modal parámetro Destino Define el ancho del iframe o modal donde se mostrará la aplicación de destino. Nota: si se omite, el valor predeterminado será 630
Ej. 1: Crea un enlace a la aplicación customer.php, en el campo Id, pasando la variable global [cliente_global] como y el campo del producto (variable local) {Id} a la aplicación costumer.php:
    sc_link(Id, costumer.php, product=[cliente_global]; Id={Id}, "Client Data", "_blank");
Ej. 2: Crear un enlace dinámico a otra aplicación dependiendo del valor del campo {tipo_cliente} y abrirlo en un modal.
    if ( {tipo_cliente} == "F") {
        sc_link (costumer_type, type_f.php, product=[cliente_global]; Id={Id}," Personal Data ", "modal", 500, 700);
    } else {
        sc_link (costumer_type, type_a.php, product=[cliente_global]; Id={Id}," Company Data ", "iframeR");
    }
Ej. 3: Crear un enlace a una URL: en este caso, "parámetro y destino" no tienen ningún efecto. Se ejecutará redirigiendo a una URL informada.
    sc_link (my_field, http://www.scriptcase.com, ,"mensaje de sugerencia");
Macro Scope
Aplicación Grid
onRecord

sc_log_add("Acción", "Descripción")
Esta macro está destinada a agregar un registro a la tabla de registro, lo que hace que el mensaje y / o el nombre de la acción personalizable para el desarrollador. Los parámetros macro pueden usar variables de PHP. Ej. 1: sc_log_add ("access", "El usuario de pruebas accedió a la aplicación"); Ej. 2: $vMensaje = "El usuario de pruebas accedió a la aplicación"; sc_log_add ("access", $vMensaje);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Grid | Dashboard | Aplicación Formulário
onExecute | onValidate | onScriptInit | onWidgetLoad | onValidate

sc_log_split({descripcion})
Ver un video tutorial Esta macro está destinada a proporcionar acceso a la información escrita en la última inserción en la tabla de registro, lo que permite la manipulación de los datos antes y después de la actualización de registro que lo devuelve en un modo de conjunto. La información se almacena en el campo "descripción" de la tabla de registro en el formato de cadena con delimitadores Ej: $arr_description = sc_log_split({description}); Input: -> keys fields Array ( [clientid] => ANTON ) [fields] => Array ( [old] => Array ( [CEP] => 50710500 [Address] => Rua Desembargador Joao Paes 657 [ciudad] => Farol [State] => RS ) [new] => Array ( [CEP] => 53230630 [Address] => Avenida Presidente Kennedy, 1001 [ciudad] => Peixinhos [State] => PE ) ) )
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Grid | Dashboard | Aplicación Formulário
onExecute | onLoad | onScriptInit | onWidgetLoad | onLoad

sc_lookup(Conjunto de datos, "Comando SQL", "Conexión")
Ver un video tutorial Esta macro permite al usuario ejecutar comandos SQL y devuelve el resultado a la variable "conjunto de datos". La estructura del "conjunto de datos" es una matriz (línea / columna). El parámetro "conexión" es opcional. Se usa cuando el comando se ejecuta en una base de datos distinta de la especificada para la aplicación. Nota: El parámetro de conexión no acepta variable. Debe ingresar el nombre de la conexión que ejecutará el comando SQL. Ej. 1: sc_lookup(dataset, "select customer_id, customer_name, credit_limit from customers" ); Para tener acceso a la primera línea (Dataset), use: {customer_id} = {dataset[0][0]}; {customer_name} = {dataset[0][1]}; {credit_limit } = {dataset[0][2]}; Para tener acceso a la segunda línea (Dataset), use: {customer_id} = {dataset[1][0]}; {customer_name} = {dataset[1][1]}; {credit_limit} = {dataset[1][2]}; Si ocurre un error en la ejecución del comando SQL, la variable atribuida al conjunto de datos volverá como "falso" y el mensaje de error estará disponible en la variable "dataset_erro". También es importante verificar los datos devueltos seleccionados, para evitar el acceso a variables inexistentes, una vez que la matriz de salida solo se creará si el comando select devuelve datos. Ej. 2: sc_lookup(my_data, "select customer_id, customer_name, credit_limit from customers"); if ({my_data} === false) { echo "Access error. Message=". {my_data_erro} ; } elseif (empty({my_data})) { echo "Select command didn't return data"; } else { {customer_id} = {my_data[0][0]}; {customer_name} = {my_data[0][1]}; {credit_limit} = {my_data[0][2]}; } Ej. 3: El comando SQL también puede estar compuesto de campos de aplicación (variables locales) o de variables globales: sc_lookup(dataset, "select order_value from orders where clienteid = '{customer_id} ' and salesman_id = [var_glo_salesman]"); Nota: El comando siempre debe terminar con punto y coma ";". Nota 2: Para obtener un gran resultado devuelto en el conjunto de datos, recomendamos el uso de la macro sc_selec en lugar de esta.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_lookup_field(dataset, "SQL Command", "connection_name")
Esta macro permite al desarrollador ejecutar un comando SELECCIONAR a la vez y tener acceso a los datos devueltos a través del parámetro del `dataset`, en formato de array: `{dataset[número_de_línea][nombre_de_columna]}`. Para ejecutar comandos que devuelven una gran cantidad de datos, recomendamos usar `sc_select` para un mejor rendimiento. A diferencia de la macro `sc_lookup`, donde informamos el índice `{dataset[0][0]}`, en la macro `sc_lookup_field` debemos informar el nombre de la columna de la que queremos recuperar los datos `{dataset[0][field_name]}` La forma de ensamblar el array de retorno, donde debemos informar el nombre de la columna, hace que esta macro sea incompatible con las siguientes bases de datos: MSSQL Server, Access y DB2. En estos casos, recomendamos utilizar la macro `sc_lookup`. Consulte a continuación los detalles sobre los parámetros de la macro.
Parámetro | Descripción | Ejemplos
--- | --- | ---
`dataset` | Este parámetro es obligatorio y debe informarse sin espacios ni caracteres especiales y no acepta el uso de variables. Define el nombre de la variable que recibirá el retorno del comando SELECT ejecutado por la macro. En caso de error en la ejecución del comando SQL, este parámetro devolverá `false` y el mensaje de error estará disponible en la variable "dataset_erro". A continuación se muestra un ejemplo simple de visualización de mensaje de error y validación.
    sc_lookup_field("mis_datos", "select field_01, field_02, field_03 from tb_name");
    if ( {mis_datos} === false ) {

        echo "Ocurrio un error: " . {mis_datos_erro};

    }
    sc_lookup_field("mis_datos", "select field_01, field_02, field_03 from tb_name");
La matriz con los datos se ensamblará de la siguiente manera::
    Array (
        [0] => Array (
                [field_01] => 1
                [field_02] => OFFICE EQUIPMENT
            )
        [1] => Array (
                [field_01] => 2
                [field_02] => FIXED TELEPHONY
            )
    )
En el ejemplo anterior, el comando devolvió dos líneas de registro y en cada línea dos columnas (field_01 y field_02). La recuperación del valor debe ocurrir de la siguiente manera:
    {mis_datos[número_de_línea][nombre_columna]}
`comando_SQL` | Este parámetro es obligatorio y se puede definir informando el comando directamente en la macro protegida con comillas (dobles o simples) o usando una variable (local o global). |
    // comando directo en macro
    sc_lookup_field("mis_datos", "select field_01, field_02, field_03 from tb_name");
    // comando usando una macro
    $select_command= "select field_01, field_02, field_03 from tb_name"
    sc_lookup_field("mis_datos", $select_command);
`nombre_de_la_conexión` | El parámetro "conexión" es opcional y debe informarse si el comando se ejecuta en una base de datos diferente a la especificada para la aplicación. Además, este parámetro no acepta el uso de variables, siendo necesario teclear el nombre de la conexión para que la macro se ejecute correctamente. |
    // Ejemplo informando el nombre de la conexión
    sc_lookup_field("mis_datos", "select field_01, field_02, field_03 from tb_name","conn_name");
## Exemplos Ejemplo 1: Acceder a varias líneas
    sc_lookup_field(mis_datos, "select field_01, field_02, field_03 from tb_name");

    //Para acceder a la primera línea (conjunto de datos), debemos informar:
    {field_01} = {mis_datos[0]['field_01']};
    {field_02} = {mis_datos[0]['field_02']};
    {field_03} = {mis_datos[0]['field_03']};

    //Para acceder a la segunda línea (dataset), debemos informar:
    {field_01} = {mis_datos[1]['field_01']};
    {field_02} = {mis_datos[1]['field_02']};
    {field_03} = {mis_datos[1]['field_03']};
Ejemplo 2: Con validación de datos:
    $comando_SQL = "select field_01, field_02, field_03 from tb_name";

    sc_lookup_field(mis_datos, $comando_SQL);

    if ( {mis_datos} === false ) {

        echo "Error de acceso. Mensaje = " . {mis_datos_erro};

    } elseif ( empty({mis_datos}) ) {

        echo "el comando select no devolvió datos";

    } else {

        {field_01} = {mis_datos[0]['field_01']};
        {field_02} = {mis_datos[0]['field_02']};
        {field_03} = {mis_datos[0]['field_03']};

    }
Ejemplo 3: Usando el parámetro de conexión
    $comando_SQL = "select field_01, field_02 from tb_name where field_03 = '{field_03} ' and field_02 = [var_global]"

    sc_lookup_field(mis_datos, $comando_SQL, "nombre_de_la_conexión");
Ejemplo 4: Uso de variables locales y globales en el comando macro
    $comando_SQL = "select field_01, field_02 from tb_name where field_03 = '{field_03} ' and field_02 = [var_global]"

    sc_lookup_field(mis_datos, $comando_sql);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_mail_send(SMTP, Usr, Pw, From, To, Asunto, Mensaje, Mens_Type, Copies, Copies_Type, Port, Connection_Type, Attachment, SSL)
Ver un video tutorial Esta macro se usa para enviar correos electrónicos.
Parámetro | Descriptión
SMTP | Nombre del servidor SMTP o dirección IP. (String o variable que contiene el nombre del servidor)
Usr | Nombre de usuario SMTP. (String o variable que contiene el nombre de usuario)
Pw | Contraseña SMTP (String o variable que contiene la contraseña)
From | De email (String o variable que contiene el correo)
To | Lista de los correos electrónicos que recibirán el mensaje, podría ser una cadena o variable que contiene uno o más correos electrónicos separados por ";" o una variable que contiene una matriz de correos electrónicos.
Subject | Asunto del mensaje (String o variable que contiene el asunto)
Message | Cuerpo del mensaje (string o variable que contiene el mensaje)
Mens_Type | Formato de mensaje: (T)exto o (H)tml.
Copies | Lista de los correos electrónicos que recibirán el mensaje, podría ser una cadena o variable que contiene uno o más correos electrónicos separados por ";" o una variable que contiene una matriz de correos electrónicos.
Copies_Type | Copias de tipo: BCC (copias ocultas) o CCC (copias normales).
Port | El puerto utilizado por su servidor de correo electrónico. Use el puerto 465 para el tipo de seguridad SSL, y el puerto 587 para el tipo de seguridad TLS o el puerto 25 para no tener seguridad. Si no se informa, Scriptcase establecerá el puerto predeterminado: 25
Connection_Type | Indicando una conexión segura. Use S para SSL, T para TLS o N para conexiones no seguras. Si no se informa, Scriptcase establecerá el valor predeterminado: N.
Attachment | Ruta absoluta del archivo que se adjuntará en el correo electrónico
SSL | Parámetro opcional para agregar configuraciones SSL. Si necesita agregar más de una configuración, use ";" para separarlos Ej: $ssl='allow_self_signed=false;verificar_peer= falso';
reply_to | Es la dirección de correo electrónico a la que se envía el mensaje de respuesta, cuando desea que la respuesta vaya a una dirección de correo electrónico que no sea la dirección De
Nota: Para usar una conexión segura es necesario tener habilitada la extensión PHP "php_openssl". #### Ej. 1: Envío de correo electrónico con el parámetro reply_to Para usar el parámetro `reply_to` debe incluir todos los demás parámetros antes de él, solo infórmelos vacío.
    sc_mail_send('smtp.meuserver.com.br', 'usr', 'pw', 'de@netmake.com.br', 'para@netmake.com.br', 'envío de prueba
    de correo electrónico ',' mensaje ',' H ',' abc@cop.com.br; zxy@cop.com.br ',' CCC ',' 587 ',' ',' c: / teste / arq .txt ',' ',' responder@netmake.com.br ');
#### Ej. 2: Utilizando variables y definiendo el puerto.
    sc_mail_send([glo_smtp], [usuar], [glo_pw], {from}, {to}, {subject}, {message}, 'T', [glo_copias], 'CCC', '419', 'S', {attached});
#### Ej. 3: Sin usuario y contraseña. La cantidad de correos electrónicos enviados se almacenará en la variable especial "sc_mail_count". Si ocurre algún error cuando el scriptcase intenta enviar el correo electrónico, la variable "sc_mail_ok" recibirá "falso" y el mensaje de error se almacenará en la variable "sc_mail_erro".
    sc_mail_send([glo_smtp], '', '', 'from.netmake.com.br', {to}, {sunject}, {message}, 'H', '', '', '', '', [glo_att]);
#### Ej. 4 :
    sc_mail_send([glo_smtp], '', '', 'from@netmake.com.br', {to}, {subject}, {message}, 'H');

    if ({sc_mail_ok}) {

      echo "sent {sc_mail_count} e-mail(s) with success!!";

    } else {

      sc_error_message({sc_mail_erro});

    }
#### Ej. 5: Envío de archivos adjuntos
    //Definición de variables para uso en la macro.
    $mail_smtp_server   = 'smtp.gmail.com'; // Servidor SMTP
    $mail_smtp_user     = 'doc@gmail.com.br'; // usuario de acceso SMTP
    $mail_smtp_pass     = 'contraseña'; // Contraseña para el usuario SMTP ingresado arriba
    $mail_from          = 'doc@gmail.com.br'; // Correo electrónico de origen del mensaje
    $mail_to            = 'doc@gmail.com.br'; // Correo electrónico del destinatario del mensaje
    $mail_subject       = 'Asunto'; // Asunto del email
    $mail_message       = 'Cuerpo del correo electrónico'; // Cuerpo del correo electronico
    $formato_correo     = 'T'; // Formato del cuerpo del correo electrónico: T (solo texto) o H (para texto y HTML)
    $correo_copias      = ''; // Parámetro que define los correos electrónicos copiados.
    $correo_tp_copias   = ''; // Tipo de copia: BCC (para copia oculta) o CCC (para copia normal)
    $puerto_correo      = '465'; // Puerto del servidor de envío
    $mail_tp_connection = 'S'; // Uso o no de conexión segura: Y (Conexión segura) o N (Conexión insegura)
    $mail_attachments   = 'c:/teste/arq.txt' // Directorio del archivo que se enviará como archivo adjunto

    //Macro with variables
    sc_mail_send($mail_smtp_server,
    	     $mail_smtp_user,
                 $mail_smtp_pass,
    	     $mail_from,
    	     $mail_to,
    	     $mail_subject,
    	     $mail_message,
    	     $mail_format,
    	     $mail_copies,
    	     $mail_tp_copies,
    	     $mail_port,
    	     $mail_tp_connection,
    	     $mail_attachments);
#### Ej. 6: Enviar varios archivos como archivos adjuntos
    //Definición de variables para uso en la macro.
    $mail_smtp_server   = 'smtp.gmail.com';    // Servidor SMTP
    $mail_smtp_user     = 'doc@gmail.com.br';  // usuario de acceso SMTP
    $mail_smtp_pass     = 'contraseña';        // Contraseña para el usuario SMTP ingresado arriba
    $mail_from          = 'doc@gmail.com.br';  // Correo electrónico de origen del mensaje
    $mail_to            = 'doc@gmail.com.br';  // Correo electrónico del destinatario del mensaje
    $mail_subject       = 'Asunto';            // Asunto del email
    $mail_message       = 'Cuerpo del correo electrónico'; // Cuerpo del correo electrónico
    $formato_correo     = 'T';                 // Formato del cuerpo del correo electrónico: T (solo texto) o H (para texto y HTML)
    $correo_copias      = '';                  // Parámetro que define los correos electrónicos copiados.
    $correo_tp_copias   = '';                  // Tipo de copia: BCC (para copia oculta) o CCC (para copia normal)
    $puerto_correo      = '465';               // Puerto del servidor de envío
    $mail_tp_connection = 'S';                 // Uso o no de conexión segura: Y (Conexión segura) o N (Conexión insegura)
    // Array of the file that will be sent as an attachment.
    $mail_attachments   = array('C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\file\img\color.png','C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\file\img\test.txt');

    //Macro con variables
    sc_mail_send($mail_smtp_server,
    	     $mail_smtp_user,
                 $mail_smtp_pass,
    	     $mail_from,
    	     $mail_to,
    	     $mail_subject,
    	     $mail_message,
    	     $mail_format,
    	     $mail_copies,
    	     $mail_tp_copies,
    	     $mail_port,
    	     $mail_tp_connection,
    	     $mail_attachments);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onHeader onScriptInit onRecord | onScriptInit | onFilterInit onFilterSave onFilterValidate | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_make_link(Aplicación, Parámetros)
Esta macro crea una cadena que contiene un enlace a otra aplicación Scriptcase (al escribir código html).
Parámetro | Descripción
Aplicaciones | Nombre de la aplicación para establecer el enlace.
Parámetros | Parámetros necesarios llamados aplicación. En el formato: "=" (el signo de atribución). Más de un parámetro debe estar separado por ";" (punto y coma).
Ej. 1: Creando una cadena con un enlace para la aplicación datacli.php, sin paso de parámetros. $string_link = sc_make_link(datacli.php); Ej. 2: Creando una cadena con un enlace para la aplicación datacli.php, con paso de parámetros. $string_link = sc_make_link(datacli, parm1={company};parm2=[glo_office]);
Macro Scope
Aplicación Blank | Aplicación Gráfica | Aplicación Grid | Aplicación Controle
onExecute | onFooter onHeader onScriptInit | onScriptInit onNavigate onRecord | onValidate onValidateSuccess

sc_master_value("Objeto", "Valor")
Ver un video tutorial Actualice los datos en la aplicación principal , en tiempo real, de acuerdo con los cambios realizados en un campo determinado de la aplicación detalle.
Parámetro | Descripción
Objeto | Nombre del objeto que se actualizará en la aplicación maestra. No es necesario el {} en un nombre de campo.
Valor | Valor del objeto El valor puede ser un campo o una variable.
Ej. 1: sc_lookup(result,"SELECT SUM(Total) FROM adm_order_itens WHERE OrderID = '{OrderID}'"); //Using sc_format_num() to format the value that will be updated in the master application $value = sc_format_num({result[0][0]}, ',', '.', 2, 'S', 1, ''); sc_master_value('OrderPrice', $value); * Si el valor, que se enviará al maestro, sea numérico, debe usar sc_format_num() para formatearlo. Para ver la documentación de la macro, haga clic aquí.
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure | onScriptInit onLoadAll onRefresh

sc_menu_delete(Id_Item1)
Ver un vídeo tutorial Esta macro elimina elementos de menú pasados como parámetros. Se puede usar en aplicaciones de menú o en el menú de árbol (treemenu). Observe que los parámetros utilizados en esta macro son la "ID" de los elementos. Si se elimina un elemento del menú y tiene "nodos", también se ocultarán.
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_menu_disable(Id_Item1)
Esta macro desactiva los elementos del menú que pasan como parámetros. Se puede usar en aplicaciones de menú o menús de árbol. Los parámetros pasados son elementos "ID". Los elementos del menú se desactivan recursivamente (cuando un elemento del submenú está desactivado, sus "nodos" también se desactivan).
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_menu_force_mobile(boolean)
Ver un vídeo tutorial La macro `sc_menu_force_mobile` fuerza la visualización en modo móvil en aplicaciones del tipo Menú (horizontal o TreeMenu). Esta macro no es compatible con la aplicación Menú responsivo. ### Parámetros true: Fuerza la ejecución de la aplicación en formato móvil, independientemente del dispositivo. false: La aplicación se mostrará según el tipo de dispositivo, respetando la detección automática. ### Ejemplos: Ejemplo 1: Forzar la visualización móvil de la aplicación. sc_menu_force_mobile(true); Ejemplo 2: Restablecer el comportamiento predeterminado (detección automática). sc_menu_force_mobile(false);
Macro Scope
Aplicación Menu | Aplicación Menú Arból
onLoad | onApplicationInit onLoad

sc_menu_item
Ver un vídeo tutorial Esta variable solo está disponible para la aplicación de menú y tiene el objetivo de dar acceso a un ítem del menú que fue seleccionado, de esta manera el usuario puede tomar las decisiones antes de ejecutar la aplicación. Ej. 1: Para limpiar la variable global. if ({sc_menu_item} == "item_1") { sc_reset_global([global1], [global2]); } Ej. 2: Si una aplicación requiere una variable global, otra aplicación puede inicializarla en consecuencia. if ({sc_menu_item} == "item_5" && (!isset([glo_employ]) || empty([glo_employ]))) { sc_redir(apl_inf_emp); } Ej. 2: Usando el botón en el menú de la barra de herramientas. if ({sc_menu_item} == "btn_1") { sc_apl_conf("form_customer", "start", "new"); }
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | onExecute | onApplicationInit onExecute

sc_redir('app_name/url', parameter01; parameter02, 'target', 'error', 'modal_height', 'modal_width')
Ver un video tutorial La macro sc_redir se utiliza para crear redirecciones dinámicas entre dos aplicaciones o entre una aplicación y una URL, permitiendo el paso de parámetros y el control sobre cómo se abrirá la aplicación de destino utilizando el parámetro target. En aplicaciones de formulario, la macro sc_redir se puede usar en eventos que dependen de actualizaciones en la base de datos, como: onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate, y onBeforeDelete. Sin embargo, en estos eventos, la macro sc_commit_trans() debe usarse antes de sc_redir para confirmar la transacción; de lo contrario, la redirección ocurrirá sin que los cambios en la tabla sean aplicados. #### Parámetros
Parámetro | Descripción | Ejemplos
--- | --- | ---
`app_name/url` | Recibe el nombre de la aplicación de destino o URL a la cual el usuario será redirigido. Los valores deben estar entre comillas dobles o simples. | `sc_redir('app_name');`
`parameter_to_send` | Permite pasar valores a la aplicación de destino en el formato: `nombre_parámetro='valor'`. Puede usar un campo de la aplicación, una variable o informar un valor fijo. Si se pasan más de un parámetro, use un punto y coma (;) como delimitador. Los valores deben recuperarse como variables globales en la aplicación de destino. | `sc_redir('app_name', parm1=50);` Dos parámetros pasados: `sc_redir('aplx', parm1={clienteid}; parm2="xxx");` En 'aplx', los valores se recuperan como variables globales: `[parm1]` y `[parm2]`.
`target` | Define cómo se mostrará la aplicación/URL de destino. _self: Abre el destino en la misma pestaña (valor predeterminado si no se especifica ningún valor). _blank: Abre el destino en una nueva pestaña. _parent: Abre el destino en la ventana principal, si la página actual está en un iframe. modal: Abre el destino en una ventana modal (esta opción no está disponible cuando se usa la macro en un botón de ejecución). | Especificar el target sin parámetros: `sc_redir('app_name', , '_blank');` Usando modal: `sc_redir('app_name', , 'modal', , '800', '600');`
`error` | Define el comportamiento de la redirección en caso de error en la aplicación. 'E': Bloquea la redirección si ocurre un error. 'F': Fuerza la redirección incluso si ocurre un error. | `sc_redir('app_name', , ' ', 'E');` `sc_redir('app_name', , ' ', 'F');`
`modal_height` | Define la altura del modal en píxeles. Este parámetro es obligatorio al usar modal en el parámetro target. | `sc_redir('app_name', , 'modal', , '800', '600');`
`modal_width` | Define el ancho del modal en píxeles. Este parámetro es obligatorio al usar modal en el parámetro target. | `sc_redir('app_name', , 'modal', , '800', '600');`
#### Ejemplos de Uso ##### Ejemplo 1 - Redirección simple sin parámetros.
    // Dado que solo se especificó la aplicación, se abrirá en la misma pestaña.
    sc_redir('aplx');
##### Ejemplo 2 - Redirección con paso de parámetros.
    // Se envían cuatro parámetros a la aplicación de destino; estos valores deben recuperarse como variables globales: [parm1], [parm2], [parm3], [parm4].
    if (empty($variable)) { $variable = "documentación"; }
    sc_redir('aplx', parm1={clienteid}; parm2="xxx"; parm3=$variable; parm4=10);
##### Ejemplo 3 - Uso de target sin parámetros.
    // En este caso, dado que no se envían parámetros a la aplicación de destino, se debe dejar el espacio en blanco para especificar el target.
    sc_redir('aplx', , '_blank');
##### Ejemplo 4 - Uso de modal para el parámetro target.
    // Es obligatorio definir el ancho y la altura al especificar modal en el parámetro target.
    // Solo se deben proporcionar los valores.
    sc_redir('aplx', , "modal", '', '800', '600');
##### Ejemplo 5 - Ejemplo de uso en eventos de transacción de base de datos en formularios.
    // La macro sc_commit_trans debe usarse antes de sc_redir para confirmar la transacción.
    sc_commit_trans();
    sc_redir('aplx', parm1={clienteid});
##### Ejemplo 6 - Redirección a una URL.
    if ([glo_usr] == "test") { sc_redir("http://www.mipagina.com"); }
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onValidate onValidateSuccess | onApplicationInit onScriptInit | onClick onApplicationInit onScriptInit | onApplicationInit onScriptInit | onFilterInit onFilterValidate | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onValidate onValidateSuccess | onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit

sc_reset_apl_conf("Aplicación", "Propiedad")
Ver un video tutorial Esta macro tiene el objetivo de eliminar todas las modificaciones efectuadas por la macro sc_apl_conf. El parámetro de propiedad es opcional, si se pasa solo borrará la modificación de esa aplicación específica. Ej. 1: Eliminar las modificaciones de la aplicación "my_application", propiedad "start". sc_reset_apl_conf ("my_application", "start"); Ej. 2: Eliminar las modificaciones de la aplicación "my_application". sc_reset_apl_conf ("my_application"); Ej. 3: Eliminar las modificaciones de todas las aplicaciones. sc_reset_apl_conf ();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onCalendarApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_reset_apl_default
Esta macro se debe utilizar cuando es necesario quitar el control de la macro sc_apl_default() en las aplicaciones. Ej: sc_reset_apl_default();
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onScriptInit | onScriptInit | onScriptInit | onScriptInit | onScriptInit | onScriptInit

sc_reset_apl_status
Esta macro tiene el objetivo de limpiar todas las variables de seguridad, establecidas a través de la macro sc_apl_status. Ej.: sc_reset_apl_status();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_reset_change_connection
Ver un video tutorial Esta macro tiene el objetivo de borrar los cambios realizados utilizando la macro "sc_change_connection". Ej. 1: sc_reset_change_connection();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onLoad | onScriptInit

sc_reset_connection_edit
Ver un video tutorial Esta macro deshace las ediciones de conexión realizadas por la macro "sc_connection_edit".. Ej. 1: sc_reset_connection_edit();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_reset_connection_new
Ver un video tutorial Esta macro deshace las conexiones hechas por la macro "sc_connection_new". sc_reset_connection_new ();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_reset_global([Global_Variable1], [Global_Variable2] ...)
Esta macro tiene el objetivo de eliminar variables globales, almacenadas en la sesión de PHP. Ej. 1: sc_reset_global ([Login], [Pass]);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onGroupBy onHeader onScriptInit onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onLoad | onApplicationInit onFooter onHeader onRecord

sc_reset_menu_delete
Esta macro se usa para restaurar un elemento de menú, eliminado por la macro "sc_menu_delete". Ej. 1: sc_reset_menu_delete();
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_reset_menu_disable
Esta macro tiene el objetivo de habilitar un elemento del menú, deshabilitado por la macro "sc_menu_disable". Ej. 1: sc_reset_menu_disable();
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_rollback_trans
Ver un vídeo tutorial Esta macro se usa para cancelar un conjunto de transacciones en la base de datos. El parámetro "Conexión" es opcional, solo se usa si el comando se ejecuta en una base de datos diferente desde la especificada a la aplicación.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onHeader onRecord

sc_script_name
Esta macro está disponible para las aplicaciones MENÚ para acceder al nombre de la aplicación que se seleccionó en el menú. Permite al usuario tomar decisiones antes de ejecutar la aplicación si se requiere un proceso previo para esa aplicación. Ej. 1: Para limpiar variables globales. if ({sc_script_name} == "apl1") { sc_reset_global([global1], [global2]); }
Macro Scope
Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | onExecute | onExecute

sc_select(conjunto de datos, "Comando SQL", "Conexión")
Ver un video tutorial Esta macro ejecuta los comandos SQL pasados como parámetro y accede al "conjunto de datos" en el comando. A diferencia de la macro sc_lookup, esta macro no manipula el conjunto de datos (el usuario es responsable de toda la manipulación). Si se produce un error en la ejecución del comando sql, la variable atribuida a la base de datos vuelve como "falsa" y el mensaje de error está disponible en la variable "dataset_error". El parámetro de conexión es opcional, use solo si el comando se ejecuta en una base de datos diferente de la especificada en la aplicación. En este parámetro no es posible utilizar variables. Ej. 1: sc_select(my_data, "select clientId, clientName, limitecred from costumers"); if ({my_data} === false) { echo "Access error. Message =". {my_data_erro}; } else { while (!{my_data}->EOF) { {clientName} = {my_data}->fields[1]; {my_data}->MoveNext(); } {my_data}->Close(); } Ej. 2: El comando SQL se puede pasar como campos de aplicación (variables locales) o de variables globales. sc_select(dataset,"select price order from order where clientId = '{clientId}' and cod_Seller = [var_glo_seller]"); Nota: El comando siempre debe terminar con punto y coma ";".
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onFooter onHeader onRecord

sc_select_field({Campo})
Ver un vídeo tutorial Esta macro modifica dinámicamente el SELECT: Es posible modificar dinámicamente los campos de la cuadrícula a través de la modificación dinámica de la selección original. Ej. 1: Se usa una tabla con las columnas año y los meses de enero a diciembre para crear una grid usando un parámetro, muestra los años y solo un mes específico. Al pasar el parámetro como una variable global llamada "show_month", en la aplicación se encuentra la siguiente estructura: Seleccionar cláusula: seleccionar año, par_mes de la tabla sc_select_field(pair_month) = [show_month]; sc_label(pair_month) = [show_month]; Modifique la selección y la etiqueta de la columna del Grid. Es posible, durante el tiempo de ejecución de la cuadrícula, modificar la cláusula ORDER BY de la cuadrícula. Se requiere al menos un ORDER BY en el comando SQL de la cuadrícula original para permitir la ejecución de sustitución durante el tiempo de la cuadrícula. Ej. 2: Seleccionar cláusula: seleccione el código, el nombre, el valor del orden de la tabla por código. Para cambiar el orden, de código a nombre, use: sc_select_order ("code") = "name"; Nota: Este comando debe estar en el contexto del evento "onInit";
Macro Scope
Aplicación Gráfica | Aplicación Grid
onScriptInit | onScriptInit

sc_select_order("Campo")
Ver un video tutorial Es posible, durante el tiempo de ejecución de la cuadrícula, modificar la cláusula ORDER BY de la cuadrícula. Se requiere al menos un ORDER BY en el comando SQL de cuadrícula original para permitir la sustitución durante el tiempo de ejecución de la cuadrícula. Ej. 1: Select Clause: SELECT code, name, price FROM table ORDER BY code To change the order from code to name, we will have: `sc_select_order("code") = "name";` Ej. 2: Select Clause: SELECT code, name, price, date FROM table ORDER BY code, name, price To change the order from name to date, we will have: `sc_select_order("name") = "date";` Nota: Este comando debe estar en el contexto de "proceso antes de la selección".
Macro Scope
Aplicación Gráfica | Aplicación Grid
onScriptInit | onHeader onScriptInit

sc_select_where(add)
Ver un video tutorial Es posible, durante el tiempo de ejecución de la cuadrícula, agregar un campo / condición a la cláusula WHERE de búsqueda. Ej. 1: Agrega el contenido entre las comillas (") en la selección de cuadrículas. if (empty({sc_where_current})) { sc_select_where(add) = "where campoX > [global]"; } else { sc_select_where(add) = "AND campoX > [global_variable]"; } Nota: Este comando debe estar en el contexto de "proceso antes de la selección".
Macro Scope
Aplicación Gráfica | Aplicación Grid
onScriptInit | onHeader onScriptInit

sc_send_mail_api($arr_settings)
Ver un video tutorial Esta macro permite el envío dinámico de correos electrónicos incrustados con las API Mandrill y Amazon SES APIs. También es posible enviar correos electrónicos usando el protocolo SMTP.Esta macro utiliza los mismos parámetros de Mandril para el envío de correo, independientemente de la puerta de enlace (Mandril, Amazon SES o SMTP) seleccionada click aqui y vea la lista de parametros que pueden ser usadas. Esta macro contiene un solo parámetro" $arr_settings", que recibe un array con un email enviando información. Para obtener más información sobre los parámetros de mandril click aqui .
Parametro | Descripción
$arr_settings | Array con informacion para el uso de APIs.
Array indices | Descripción
profile | Nombre de algunas API que ya esten configuradas en "Herramientas> API", Pueden ser vistas en el Ejemplo 1. Cuando se informa un perfil las settings index no deben de ser informadas.
settings | Confirguración del servidor de envio de E-mail. La información debe confirmar a la API usada. Nota: Cuando se informa la configuración, el perfil index no es configurado.
message | Mensaje a ser enviando por email, Asunto, cuerpo y destinatario.
Ej. 1: Enviando un ejemplo pre configurado en perfil en "herramientas > API".
    if({api_type} == 'smtp' ){
    	$var_config = array(
    		'profile' => 'yahoo_example',

    		'message' => [
    			'html'          => {email_body},
    			'text'          => '',
    			'to'            => $arr_merge,
    			'subject'       => {subject}
    		]
    	);
    }

    sc_send_mail_api($var_config);
E. 2: Enviando e-mail via SMTP
    $smtp_server = "smtp.mail.yahoo.com";
    $smtp_port = "465";
    $smtp_user = "scriptcase.export";
    $smtp_password = "scriptcase.export";
    $from_email = "scriptcase.export@yahoo.com";
    $from_name = "Scriptcase Export";

    if ( {api_type} == 'smtp' ){
    	$var_config = array(

    		'profile' => '',

    		'settings' => [
    				'gateway'       => 'smtp',
    				'smtp_server'   => $smtp_server,
    				'smtp_port'     => $smtp_port,
    				'smtp_user'     => $smtp_user,
    				'smtp_password' => $smtp_password,
    				'from_email'    => $from_email,
    				'from_name'     => $from_name
    		],

    		'message' => [
    				   'html'          => {email_body},
    				   'text'          => '',
    				   'to'            => $arr_merge,
    				   'subject'       => {subject}
    		]
    	);
    }

    sc_send_mail_api($var_config);
E. 3: Enviando email using Mandrill API
    if({api_type} == 'mandrill' ){
    	$var_config = array(
    		'settings' => [
    				   'gateway'       => 'mandrill',
    				   'api_key'   	   => {api_key},
    				   'from_email'    => {from_email},
    				   'from_name'     => {from_name}
    		],

    		'message' => [
    				   'html'          => {email_body},
    				   'text'          => '',
    				   'to'            => array($arr_merge),
    				   'subject'       => {subject}
    		]
    	);
    }

    sc_send_mail_api($var_config);
Ej. 4: Enviando email usando Amazon SES API
    if({api_type} == 'ses' ){
    	$var_config = array(
    		'settings' =>  [
    	        'gateway' => 'ses',
    	        'region' => {ses_region},
    	        'api_key' => {api_key},
    	        'api_secret' => {ses_secret},
    	        'from_email'    => {from_email}
    	    ],
    	    'message' => [
    	        'html'          => {email_body},
    	        'text'          => '',
    	        'to'            => array($arr_merge),
    	        'subject'       => {subject}
    	    ]
    	);
    }

    sc_send_mail_api($var_config);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onHeader onScriptInit onRecord | onFilterInit onFilterSave onFilterValidate | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_send_notification('title', 'message', 'destiny_type', 'to', 'from', 'link', 'dtexpire', 'profile')
La macro `sc_send_notification` permite enviar notificaciones a los usuarios del sistema de forma dinámica. ### Descripción de los Parámetros
Parámetro | Descripción | Ejemplo
`title =>` | Parámetro obligatorio que recibe el título de la notificación que será enviada. El texto puede ser proporcionado entre comillas, utilizando variables o langs. | Usando variable $title_not = "título del mensaje"; `'title' => $title_not` Texto directo en la macro o con lang `'title' => 'título del mensaje'` o `'title' => '{lang_titulo_notificacion}'`
`message =>` | Parámetro obligatorio que recibe el cuerpo del mensaje de notificación que será enviado. Este parámetro permite el uso de textos con o sin formato HTML y puede ser proporcionado entre comillas, variables o lang. | Usando variable `$msg_not = "Cuerpo del mensaje de notificación";` `'message' => $msg_not` Texto directo en la macro `'message' => 'Cuerpo del mensaje de notificación'`
`destiny_type =>` | Parámetro obligatorio que define qué datos deben ser proporcionados en el parámetro to para el envío de la notificación. Los valores que deben ser proporcionados son: 'user' - Define que el parámetro to deberá recibir el login de los usuarios que deben recibir el mensaje de notificación. 'group' - Define que el parámetro to deberá recibir los nombres de los grupos, del módulo de seguridad, que deben recibir el mensaje de notificación. Esta opción está disponible solo en sistemas que utilizan el módulo de seguridad por grupo. 'all' - Define que todos los usuarios del sistema deben recibir el mensaje de notificación. En este caso, el parámetro to debe ser pasado como vacío. 'profile' - Define que el parámetro to deberá recibir el nombre de los perfiles creados en el sistema de notificación, en la aplicación Enviar notificación, que deben recibir el mensaje. | Ejemplo de cómo el parámetro debe ser informado `'destiny_type' => 'user'` Los valores aceptados son: user, group, all y profile
`to =>` | Define los usuarios del sistema que deben recibir la notificación, dentro del universo informado en el parámetro `destiny_type`. Al informar destiny_type =>'user' - El desarrollador debe proporcionar una lista del login de los usuarios que deben recibir la notificación. Los valores informados deben estar separados por punto y coma (;). Al informar destiny_type => 'group' - El desarrollador debe proporcionar la lista de grupos de usuarios, del módulo de seguridad, que deben recibir la notificación. Al informar destiny_type => 'all' - En este caso, todos los usuarios del sistema deben recibir la notificación y el parámetro to debe recibir valor vacío. destiny_type => 'profile' - El desarrollador debe informar el nombre de los perfiles creados en el sistema de notificación, en la aplicación Enviar notificación, que deben recibir el mensaje. En todos los casos, los valores informados deben estar separados por punto y coma (;) | Ejemplo al utilizar destiny_type =>'user' `'to' => 'joao;pedro;carlos'` Ejemplo al utilizar destiny_type =>'group' `'to' => 'empleados;administradores'` Ejemplo al utilizar destiny_type =>'all' `'to' => ''` Ejemplo al utilizar destiny_type =>'profile' `'to' => 'nombre_grupo_de_envío1;nombre_grupo_de_envío2'`
`from =>` | Parámetro obligatorio que define el usuario del sistema que está enviando la notificación. Este parámetro acepta solo un valor a la vez y puede ser definido proporcionando directamente el nombre de un usuario o a través de una variable. | `'from' => 'admin'`
`link =>` | Parámetro opcional que recibe un enlace para acceder a una aplicación del sistema o una URL externa. El texto puede ser proporcionado entre comillas, utilizando variables. | Proporcionando una URL externa `'link' => 'https://scriptcase.com.br/'` Proporcionando una aplicación del sistema `'link' => 'app_name'`
`dtexpire =>` | Parámetro opcional que define el día y hora en que la notificación expirará y dejará de ser exhibida en el ícono de acceso rápido del menú. Al alcanzar la fecha, el usuario podrá acceder al mensaje solo a través de la aplicación de inbox. El formato de la fecha y hora debe ser: YYYY-MM-DD HH:MM:SS | `'dtexpire' => '2024-10-02 23:59:59'`
`profile =>` | Parámetro obligatorio que debe recibir el nombre del perfil que el desarrollador informó al crear el módulo de notificación en la interfaz de Scriptcase. | `'profile' => 'samples_notification'`
### Ejemplo
    $title = 'Nuevo usuario';
    $msg = 'Usuario: ' . $struser . ' registrado en el sistema';

    sc_send_notification([
        'title' => $title,
        'message' => $msg,
        'destiny_type' => 'user',
        'to' => 'admin',
        'from' => 'admin',
        'link' => '',
        'dtexpire' => '2024-10-02 23:59:59',
        'profile' => 'samples_profile_name',
    ]);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_send_sms($arr_settings)
Ver un video tutorial Esta macro realiza el envío de mensajes SMS utilizando las APIs disponibles en la herramienta. clickatell plivo twilio Los números deben incluir el código del país. ### Parámetros
Parámetro | Descripción
$arr_settings | La macro tiene solo un parámetro, que debe recibir un array que contenga dos arrays: uno para configuraciones y otro para el mensaje.
Índice del Array | Descripción
from | Número de origen del mensaje
to | Destinatario del SMS
message: | El contenido del mensaje de texto
gateway: | API que se utilizará (clickatell, plivo o twilio)
auth_token: | Token de autenticación de la API
### Ejemplos Ejemplo 1 - Estructura básica para el envío utilizando clickatell:
    $arr_settings = array(
      'message' =>
      [
        'from' => '+55999999999', //número de origen (Obligatorio)
        'to' => '+55999999999', //número de destino (Obligatorio)
        'message' => 'Scriptcase SMS' //Mensaje que será enviado (Obligatorio)
      ],
      'settings' =>
      [
        'gateway' => 'clickatell', //gateway de envío (Obligatorio)
        'auth_token' => '54Cik1-gQ4GqtuN70d4y4w==' //Token de la API (Obligatorio)
      ]
    );
    sc_send_sms($arr_settings);
Ejemplo 2 - Estructura básica para el envío utilizando Plivo:
    $arr_settings = array(
      'message' =>
      [
          'from' => '+55999999999', //número de origen (Obligatorio)
          'to' => '+5581984796338', //número de destino (Obligatorio)
          'message' => 'Scriptcase SMS' //Mensaje que será enviado (Obligatorio)
      ],
      'settings' =>
      [
          'gateway' => 'plivo', //gateway de envío (Obligatorio)
          'auth_id' => 'MAMDHIYZM0YJCZYTJLNJ', //Token de autenticación (Obligatorio)
          'auth_token' => 'ZGExOTgzZjNiOTE4YjBiN2ExMzdlZGYxYzQ4Yjc1' //Token de la API (Obligatorio)
      ]
    );

    sc_send_sms($arr_settings);
Ejemplo 3 - Estructura básica para el envío utilizando Twilio:
    $arr_settings = array(
      'message' =>
      [
          'from' => '+55999999999', //número de origen (Obligatorio)
          'to' => '+55999999999', //número de destino (Obligatorio)
          'message' => 'Scriptcase SMS' //Mensaje que será enviado (Obligatorio)
          //'mediaURL' => 'http://royalsalutre.netmake.com.br/tools/nm/sc_helpv9/gerado/dev/pt_br/manual_mp/assets/images/scriptcase-logo.svg', //Permite el envío de una imagen
      ],
      'settings' =>
      [
          'gateway' => 'twilio', //gateway de envío (Obligatorio)
          'auth_id' => 'MAMDHIYZM0YJCZYTJLNJ', //Token de autenticación (Obligatorio)
          'auth_token' => 'ZGExOTgzZjNiOTE4YjBiN2ExMzdlZGYxYzQ4Yjc1' //Token de la API (Obligatorio)
      ]
    );

    sc_send_sms($arr_settings);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_seq_register
Ver un video tutorial Esta macro proporciona el número secuencial de la cuadrícula de registro (en proceso). Se puede usar, solo en el evento onRecord. Ej. 1: if({sc_seq_register} == 10) { // last line of the page {total} = {sum_total}; }
Macro Scope
Aplicación Grid
onRecord

sc_set_export_name
Los archivos resultantes de las exportaciones realizadas en la consulta se almacenan en el directorio tmp (temporal) especificado en la configuración de la herramienta. Tanto en desarrollo como en producción, los archivos se almacenan con el prefijo sc_ y una clave única. Después de un tiempo,archivos con el prefijo sc_ se eliminarán los. Para evitar que se eliminen los archivos exportados, es posible utilizar esta macro para cambiarles el nombre. ### Lista de
parámetrosparámetro | Valor de | Descripción
"export_type" | Cadena que contiene el tipo de exportación, que debe estar protegido por comillas. Ejemplo de uso en la macro. "csv" Lista de valores admitidos: csv json pdf rtf xml xls word | Parámetro obligatorio, donde debemos informar el tipo de archivo que queremos renombrar. Este parámetro no acepta variables.
"nombre de archivo" | Cadena que contiene el nombre que recibirá el archivo. Ejemplo de uso en la macro: "Nuevo nombre de archivo" Valores admitidos Cadena con el nombre Variable global | Parámetro obligatorio, donde debemos informar el nombre que recibirá el archivo.
### Vea a continuación algunos ejemplos de uso de la macro: Ejemplo 1 - Definición de un nombre para un archivo PDF `sc_set_export_name ("pdf", "meu_arquivo_pdf.pdf");` Ejemplo 2: definición de un nombre de archivo pasando el valor a través de una variable global. `sc_set_export_name ("json", [glo_nome_json]);`
Macro Scope
Aplicación Gráfica | Aplicación Grid
onScriptInit | onApplicationInit onScriptInit

sc_set_fetchmode(parm);
Ver un video tutorial Esta macro permite cambiar el tipo de retorno del conjunto de datos de los comandos de selección. La macro se procesará antes de ejecutar el comando SQL. Al informar el parámetro, el conjunto de datos devolverá el índice o el nombre de la columna. parm = 0 : Devuelve una matriz con el índice y el nombre de las columnas (valor predeterminado de Scriptcase) parm = 1 : Devuelve una matriz solo con índices de las columnas Ej. 1: Retornando una matriz con el nombre de las columnas. sc_set_fetchmode(0); sc_select(my_data, "SELECT customerid, stateid, birthdate, creditlimit FROM customers where customerid = 'ALFKI'"); while (!$my_data->EOF){ $meus_dados->fields['customerid']; $customer = $my_data->fields['stateid']; $customer = $my_data->fields['birthdate']; $my_data->MoveNext(); } $my_data->Close(); -------------------------------------------------------------------------------------- Ej. 2: Retornando una matriz con el índice de las columnas. sc_set_fetchmode(1); sc_select(my_data, "SELECT customerid, stateid, birthdate, creditlimit FROM customers where customerid = 'ALFKI'"); while (!$my_data->EOF){ $my_data->fields[1]; $customer = $my_data->fields[2]; $customer = $my_data->fields[3]; $my_data->MoveNext(); } $my_data->Close();
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onExecute onLoad | onExecute onLoad | onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_set_focus('Campo')
Ver un video tutorial Esta macro se usa para establecer el foco en un campo de formulario. Ej. 1: sc_set_focus ('nombre');
Macro Scope
Aplicación Calendario | Aplicación Formulário | Aplicación Controle
OnClick onLoad onRefresh onValidateSuccess | OnClick onLoad onRefresh onValidateSuccess | onApplicationInit onScriptInit onLoadAll onRefresh

sc_set_global($variavel_01) ou ({Mi_Campo})
Esta macro se usa para registrar variables globales. Cree una variable de sesión con el mismo nombre y contenido de la variable local. Nota: Esta macro se descontinuará pronto. Debe usar el método de creación de variables globales mediante corchetes. Ej: [var_glo_user] = "prueba"; Ej. 1: Registrar una variable de usuario. $my_var = "mary"; sc_set_global($my_var); Crea una variable de sesión con el nombre "my_var" con el contenido "mary". Ej. 2: Para registrar un valor de campo como variable de sesión. sc_set_global({fieldname}); Nota: Esta macro no atribuye valores. Solo registre las variables de sesión de PHP.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_set_groupby_rule
Ver un vídeo tutorial Esta macro se usa para seleccionar una regla de agrupación en el tiempo de ejecución en el evento onApplicationInit.
Macro Scope
Aplicación Grid
onApplicationInit

sc_set_language('String Language')
Ver un video tutorial Esta macro permite definir el lenguaje de la aplicación dinámicamente. Ej. 1: Cambia el idioma al inglés. sc_set_language('en_us'); Ex. 2: Cambia el idioma al español. sc_set_language('es'); Todavía permite definir el idioma y la configuración regional de las aplicaciones utilizando un delimitador ";" entre los parámetros Ex. 1: Cambiar el idioma al inglés y la configuración regional a Canadá. sc_set_language('en_us;en_ca'); Ex. 2: Cambiar el idioma a español y configuraciones regionales a México. sc_set_language('es;es_mx'); Ex. 3: Cambiar el idioma a español y configuraciones regionales a México. Cambiar el idioma a alemán y configuraciones regionales a Luxemburgo. sc_set_language('de;de_lu'); Ex. 4: Cambiar el idioma a la configuración eslovaca y regional a la República Eslovaca. sc_set_language('sk;sk_sk');
Idioma | Valor
Árabe | ar
Alemán | de
Bahasa Melayu | ms
Bielorruso | be
Bengalí | bn
Bosnio | bs
Búlgaro | bg
Catalán | ca
Chinês simplificado | zh_cn
Chinês tradicional | zh_hk
Croata | hr
Checo | cz
Coreano | ko
Cirílico serbio | sr
Cingaleses | si
Danés | da
Eslovaco | sk
Esloveno | sl
Español | es
Estonio | et
Finlandês | fi
Francês | fr
Galego | gl
Grego | el
Gujarati | gu
Holandés | nl
Hebraico | he
Hindi | hi
Húngaro | hu_hu
Inglês | en_us
Indonésio | id
Italiano | it
Japonês | ja
Letón | lv
Lituano | lt
Macedonio | mk
Marathi | mr
Noruego | no
Polaco | pl
Português (Brasil) | pt_br
Portugal (Português) | pt_pt
Punjabi | pa
Rumano | ro
Ruso | ru
Shuar | jiv
Sueco | sv
Telugu | te
Tailandés | thai
Turco | tr
Ucraniano | uk
Urdu | ur
Kannada | kn
Configuración regional
Afrikaans (Sudáfrica) | af_za
Albanés (Albania) | sq_al
Alemán (Alemania) | de_de
Alemán (Austria) | de_at
Alemán (Lichtenstein) | de_li
Alemán (Luxemburgo) | de_lu
Alemán (Suiza) | de_ch
Amárico (Etiopía) | am_et
Armenio (Armenia) | hy_am
Azerbaiyán (Azerbaijan) | az_az
Bahasa Melayu (Malasia) | ms_my
Belarús (Bielorrusia) | be_by
Bengali (Bangladesh) | bn_bd
Bengali (India) | bn_in
Bokmal noruego (Noruega) | nb_no
Bosnia (Bosnia-Herzegovina) | bs_ba
Breton (Francia) | br_fr
Búlgaro (Bulgaria) | bg_bg
Catalán (España) | ca_es
Checa (República Checa) | cs_cz
Chino (República de China) | zh_cn
Chino (simplificado, Singapur) | zh_sg
Chino (tradicional, Hong Kong) | zh_hk
Chino (tradicional, Macau) | zh_mo
Chino (tradicional, Taiwan) | zh_tw
Coreano (Corea) | ko_kr
Croata (Bosnia y Herzegovina) | hr_ba
Croata (Croacia) | hr_hr
Danés (Dinamarca) | da_dk
Eslovaquia (República Eslovaca) | sk_sk
Esloveno (Eslovenia) | sl_si
Español (Argentina) | es_ar
Español (Bolivia) | es_bo
Español (Chile) | es_cl
Español (Colombia) | es_co
Español (Costa Rica) | es_cr
Español (Ecuador) | es_ec
Español (El Salvador) | es_sv
Español (España) | es_es
Español (Estados Unidos) | es_us
Español (Guatemala) | es_gt
Español (Honduras) | es_hn
Español (México) | es_mx
Español (Nicaragua) | es_ni
Español (Panama) | es_pa
Español (Paraguay) | es_py
Español (Peru) | es_pe
Español (Puerto Rico) | es_pr
Español (República Dominicana) | es_do
Español (Uruguay) | es_uy
Español (Venezuela) | es_ve
Estonio (Estonia) | et_ee
Finlandés (Finlandia) | fi_fi
Francés (Bélgica) | fr_be
Francés (Camerún) | fr_cm
Francés (Canadá) | fr_ca
Francés (Costa de Marfil) | fr_ci
Francés (Francia) | fr_fr
Francés (Luxemburgo) | fr_lu
Francés (Mónaco) | fr_mc
Francés (Suiza) | fr_ch
Frisón, Western (Países Bajos) | fy_nl
Gallego (España) | gl_es
Georgia (Georgia) | ka_ge
Griego (Grecia) | el_gr
Groenlandés (Kalaallit Nunaat) | kl_gl
Gujarati (India) | gu_in
Hausa (Ghana) | ha_gh
Hebreo (Israel) | he_il
Hindi (India) | hi_in
Holandés (Bélgica) | nl_be
Holandés (Países Bajos) | nl_nl
Húngaro (Hungría) | hu_hu
Indonesia (Indonesia) | id_id
Inglés (Australia) | en_au
Inglés (Belice) | en_bz
Inglés (Botswana) | en_bw
Inglés (Camerún) | en_cm
Inglés (Canadá) | en_ca
Inglés (Caribe) | en_cb
Inglés (Estados Unidos) | en_us
Inglés (Filipinas) | en_ph
Inglés (India) | en_in
Inglés (Irlanda) | en_ie
Inglés (Jamaica) | en_jm
Inglés (Malasia) | en_my
Inglés (Namibia) | en_na
Inglés (Nigeria) | en_ng
Inglés (Nueva Zelanda) | en_nz
Inglés (Reino Unido) | en_gb
Inglés (Singapur) | en_sg
Inglés (Trinidad y Tobago) | en_tt
Inglés (Uganda) | en_ug
Inglés (Zambia) | en_zm
Inglés (Zimbabwe) | en_zw
Inglés (África del Sur) | en_za
Irlandés (Irlanda) | ga_ie
Islandés (Islandia) | is_is
Islas Feroe (Islas Feroe) | fo_fo
Italiano (Italia) | it_it
Italiano (Suiza) | it_ch
Japonés (Japón) | ja_jp
Kannada (India) | kn_in
Kazajo (Kazajstán) | kk_kz
Khmer (Camboya) | km_kh
Kirghiz (Kirguistán) | ky_kg
Laos (Laos) | lo_la
Letonia (Letonia) | lv_lv
Lituano (Lituania) | lt_lt
Luxemburgo (Luxemburgo) | lb_lu
Macedonio (República de Macedonia) | mk_mk
Malayalam (India) | ml_in
Marathi (India) | mr_in
Mongol (Mongolia) | mn_mn
Nepal (Nepal) | ne_np
Northern Sotho (Sudáfrica) | nso_z
Noruego (Noruega) | no_no
Noruego Nynorsk (Noruega) | nn_no
Occitano (Francia) | oc_fr
Oriya (India) | or_in
Persa (Irán) | fa_ir
Polaco (Polonia) | pl_pl
Portugués (Angola) | pt_ao
Portugués (Brasil) | pt_br
Portugués (Portugal) | pt_pt
Punjabi (India) | pa_in
Rumano (Moldavia) | ro_md
Rumano (Rumania) | ro_ro
Rusa (Bielorrusia) | ru_by
Ruso (Kazajstán) | ru_kz
Ruso (Rusia) | ru_ru
Serbio Cirílico (Serbia y Montenegro) | sr_yu
Serbio Latino (Serbia y Montenegro) | sh_yu
Setswana (Sudáfrica) | tn_za
Sotho (Sudáfrica) | st_za
Sri Lanka (Cingalés) | si_si
Sueco (Finlandia) | sv_fi
Sueco (Suecia) | sv_se
Swahili (Tanzania) | sw_tz
Tamil (India) | ta_in
Tayiko (Tayikistán) | tg_tj
Telugu (India) | te_in
Thai (Tailandia) | th_th
Turco (Turquía) | tr_tr
Ucrania (Ucrania) | uk_ua
Urdú (Pakistán) | ur_pk
Uzbeko (Uzbekistán) | uz_uz
co | eu -
Vietnamita (Vietnam) | vi_vn
Welsh (Reino Unido) | cy_gb
Xhosa (Sudáfrica) | xh_za
Zulú (Sudáfrica) | zu_za
Árabe (Arabia Saudita) | ar_sa
Árabe (Argelia) | ar_dz
Árabe (Bahrein) | ar_bh
Árabe (Egipto) | ar_eg
Árabe (Emiratos Árabes Unidos) | ar_ae
Árabe (Iraq) | ar_iq
Árabe (Jordania) | ar_jo
Árabe (Kuwait) | ar_kw
Árabe (Libia) | ar_ly
Árabe (Líbano) | ar_lb
Árabe (Marruecos) | ar_ma
Árabe (Omán) | ar_om
Árabe (Qatar) | ar_qa
Árabe (Siria) | ar_sy
Árabe (Túnez) | ar_tn
Árabe (Yemen) | ar_ye
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit onFilterValidate | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_set_regional('String Regional')
Ver un vídeo tutorial Esta macro permite cambiar dinámicamente la configuración regional de la aplicación. Ej. 1: sc_set_regional('en_us');
Idioma | Valor
Afrikaans (Sudáfrica) | af_za
Albanés (Albania) | sq_al
Alemán (Alemania) | de_de
Alemán (Austria) | de_at
Alemán (Lichtenstein) | de_li
Alemán (Luxemburgo) | de_lu
Alemán (Suiza) | de_ch
Amárico (Etiopía) | am_et
Armenio (Armenia) | hy_am
Azerbaiyán (Azerbaijan) | az_az
Bahasa Melayu (Malasia) | ms_my
Belarús (Bielorrusia) | be_by
Bengali (Bangladesh) | bn_bd
Bengali (India) | bn_in
Bokmal noruego (Noruega) | nb_no
Bosnia (Bosnia-Herzegovina) | bs_ba
Breton (Francia) | br_fr
Búlgaro (Bulgaria) | bg_bg
Catalán (España) | ca_es
Checa (República Checa) | cs_cz
Chino (República de China) | zh_cn
Chino (simplificado, Singapur) | zh_sg
Chino (tradicional, Hong Kong) | zh_hk
Chino (tradicional, Macau) | zh_mo
Chino (tradicional, Taiwan) | zh_tw
Coreano (Corea) | ko_kr
Croata (Bosnia y Herzegovina) | hr_ba
Croata (Croacia) | hr_hr
Danés (Dinamarca) | da_dk
Eslovaquia (República Eslovaca) | sk_sk
Esloveno (Eslovenia) | sl_si
Español (Argentina) | es_ar
Español (Bolivia) | es_bo
Español (Chile) | es_cl
Español (Colombia) | es_co
Español (Costa Rica) | es_cr
Español (Ecuador) | es_ec
Español (El Salvador) | es_sv
Español (España) | es_es
Español (Estados Unidos) | es_us
Español (Guatemala) | es_gt
Español (Honduras) | es_hn
Español (México) | es_mx
Español (Nicaragua) | es_ni
Español (Panama) | es_pa
Español (Paraguay) | es_py
Español (Peru) | es_pe
Español (Puerto Rico) | es_pr
Español (República Dominicana) | es_do
Español (Uruguay) | es_uy
Español (Venezuela) | es_ve
Estonio (Estonia) | et_ee
Finlandés (Finlandia) | fi_fi
Francés (Bélgica) | fr_be
Francés (Camerún) | fr_cm
Francés (Canadá) | fr_ca
Francés (Costa de Marfil) | fr_ci
Francés (Francia) | fr_fr
Francés (Luxemburgo) | fr_lu
Francés (Mónaco) | fr_mc
Francés (Suiza) | fr_ch
Frisón, Western (Países Bajos) | fy_nl
Gallego (España) | gl_es
Georgia (Georgia) | ka_ge
Griego (Grecia) | el_gr
Groenlandés (Kalaallit Nunaat) | kl_gl
Gujarati (India) | gu_in
Hausa (Ghana) | ha_gh
Hebreo (Israel) | he_il
Hindi (India) | hi_in
Holandés (Bélgica) | nl_be
Holandés (Países Bajos) | nl_nl
Húngaro (Hungría) | hu_hu
Indonesia (Indonesia) | id_id
Inglés (Australia) | en_au
Inglés (Belice) | en_bz
Inglés (Botswana) | en_bw
Inglés (Camerún) | en_cm
Inglés (Canadá) | en_ca
Inglés (Caribe) | en_cb
Inglés (Estados Unidos) | en_us
Inglés (Filipinas) | en_ph
Inglés (India) | en_in
Inglés (Irlanda) | en_ie
Inglés (Jamaica) | en_jm
Inglés (Malasia) | en_my
Inglés (Namibia) | en_na
Inglés (Nigeria) | en_ng
Inglés (Nueva Zelanda) | en_nz
Inglés (Reino Unido) | en_gb
Inglés (Singapur) | en_sg
Inglés (Trinidad y Tobago) | en_tt
Inglés (Uganda) | en_ug
Inglés (Zambia) | en_zm
Inglés (Zimbabwe) | en_zw
Inglés (África del Sur) | en_za
Irlandés (Irlanda) | ga_ie
Islandés (Islandia) | is_is
Islas Feroe (Islas Feroe) | fo_fo
Italiano (Italia) | it_it
Italiano (Suiza) | it_ch
Japonés (Japón) | ja_jp
Kannada (India) | kn_in
Kazajo (Kazajstán) | kk_kz
Khmer (Camboya) | km_kh
Kirghiz (Kirguistán) | ky_kg
Laos (Laos) | lo_la
Letonia (Letonia) | lv_lv
Lituano (Lituania) | lt_lt
Luxemburgo (Luxemburgo) | lb_lu
Macedonio (República de Macedonia) | mk_mk
Malayalam (India) | ml_in
Marathi (India) | mr_in
Mongol (Mongolia) | mn_mn
Nepal (Nepal) | ne_np
Northern Sotho (Sudáfrica) | nso_z
Noruego (Noruega) | no_no
Noruego Nynorsk (Noruega) | nn_no
Occitano (Francia) | oc_fr
Oriya (India) | or_in
Persa (Irán) | fa_ir
Polaco (Polonia) | pl_pl
Portugués (Angola) | pt_ao
Portugués (Brasil) | pt_br
Portugués (Portugal) | pt_pt
Punjabi (India) | pa_in
Rumano (Moldavia) | ro_md
Rumano (Rumania) | ro_ro
Rusa (Bielorrusia) | ru_by
Ruso (Kazajstán) | ru_kz
Ruso (Rusia) | ru_ru
Serbio Cirílico (Serbia y Montenegro) | sr_yu
Serbio Latino (Serbia y Montenegro) | sh_yu
Setswana (Sudáfrica) | tn_za
Sotho (Sudáfrica) | st_za
Sri Lanka (Cingalés) | si_si
Sueco (Finlandia) | sv_fi
Sueco (Suecia) | sv_se
Swahili (Tanzania) | sw_tz
Tamil (India) | ta_in
Tayiko (Tayikistán) | tg_tj
Telugu (India) | te_in
Thai (Tailandia) | th_th
Turco (Turquía) | tr_tr
Ucrania (Ucrania) | uk_ua
Urdú (Pakistán) | ur_pk
Uzbeko (Uzbekistán) | uz_uz
Vasco | eu
Vietnamita (Vietnam) | vi_vn
Welsh (Reino Unido) | cy_gb
Xhosa (Sudáfrica) | xh_za
Zulú (Sudáfrica) | zu_za
Árabe (Arabia Saudita) | ar_sa
Árabe (Argelia) | ar_dz
Árabe (Bahrein) | ar_bh
Árabe (Egipto) | ar_eg
Árabe (Emiratos Árabes Unidos) | ar_ae
Árabe (Iraq) | ar_iq
Árabe (Jordania) | ar_jo
Árabe (Kuwait) | ar_kw
Árabe (Libia) | ar_ly
Árabe (Líbano) | ar_lb
Árabe (Marruecos) | ar_ma
Árabe (Omán) | ar_om
Árabe (Qatar) | ar_qa
Árabe (Siria) | ar_sy
Árabe (Túnez) | ar_tn
Árabe (Yemen) | ar_ye
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit onFilterValidate | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_set_theme('String Theme')
Ver un video tutorial Esta macro permite cambiar dinámicamente el tema que se utilizará en las aplicaciones. Cuando se usa, el tema cambia en la sesión, lo que hace que todas las aplicaciones a las que se acceda más tarde reciban el tema informado. ### Parámetro Esta macro tiene un solo parámetro, que debe llevar el nombre del tema que se aplicará. Este parámetro se puede pasar de dos formas. Ejemplo 1 - Cadena con el nombre del tema. `sc_set_theme('BlueBerry');` Ejemplo 2 - Variable local que recibe el valor de un campo o una variable global. `$set_theme = {field_name};` `sc_set_theme($set_theme);` Enlaces relacionados Vea cómo cambiar dinámicamente el tema de un proyecto usando la macro.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit onFilterValidate | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_site_ssl
Ver un video tutorial Esta macro se usa para verificar si un sitio usado es un sitio seguro. (protocolo https) Ej. 1: Usando una afirmativa. if (sc_site_ssl) { echo "ok - Safe site"; } Ej. 2: Usando un negativo if (!sc_site_ssl) { echo "Warning - Unsafe site"; } Ej. 3: Redireccionar si el sitio no es seguro. if (!sc_site_ssl) { sc_redir("http://www.erro_page.com/") ; } Nota: Esta macro solo funciona para el servidor web llS.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onScriptInit | onScriptInit | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onClick onScriptInit onLoadAll onValidate onValidateFailure onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onLoad | onApplicationInit onScriptInit

sc_sql_injection({Mi_Campo}) o ($Mi_Variable)
Esta macro se utiliza para proteger el campo / variable contra la "inyección sql". Macro utilizada para la protección contra la "inyección sql" en los comandos generados por el desarrollador al usar las macros: sc_lookup, sc_select o sc_exec_sql. Ej. 1: Protección de una variable local: $ field_protect = sc_sql_injection ({my_field}); Ej. 2: Protección de una variable de usuario: $ field_protect = sc_sql_injection ($ my_var); Nota: que todos los accesos a la base de datos, generados para el Scriptcase, tienen protección contra la "inyección sql".
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onScriptInit onWidgetLoad | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onExecute onLoad | onExecute onLoad | onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_sql_protect(Valor, "Tipo", "Conexión")
Ver un video tutorial Esta macro protegerá el valor pasado como parámetro de acuerdo con la base de datos especificados, el parámetro "Conexión" es opcional, si no está informado, el script usará la conexión predeterminada. El parámetro "Tipo" hasta ahora solo puede usar el valor "Fecha". Ej.: en este ejemplo protegeremos las fechas pasadas como parámetro para que de esta manera se pueda interpretar correctamente en la base de datos ACCESS. sc_select_where(add) = " AND news_noticias.noticia_data_pub BETWEEN ".sc_sql_protect($data_inicial, "date")." AND ".sc_sql_protect($data_final, "date")."";
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onExecute | onValidate | onClick onFooter onGroupBy onScriptInit onNavigate onRecord | onFilterValidate | onAfterDeleteAll onAfterInsertAll onAfterUpdateAll onBeforeDeleteAll onBeforeInsertAll onBeforeUpdateAll onValidate | onLoadAll onValidate | onRecord

sc_statistic (arr_val, tp_var)
Esta macro calcula y devuelve una matriz con los valores estadísticos informados de una matriz de valores numéricos. Se requieren dos parámetros para usar la macro.
Parámetro | Valor | Descripción
--- | --- | ---
arr_val | Este parámetro acepta solo variables Ejemplo de uso `$arr_val = array (5230.01,8374,625.45,8926.34,7000,523.78); sc_statistic($arr_val, $tipo);` | Variable que contiene una matriz con los valores de entrada numéricos. Parámetros obligatorios.
tp_var | Este parámetro acepta el valor o una variable. Ejemplo que indica el valor: `sc_statistic($arr_val, 'P');` Ejemplo usando una variable `$type = 'P'; sc_statistic($arr_val, $ tipo);` Lista de valores aceptados en el parámetro. P A | Este parámetro define el tipo de cálculo de la varianza(índice 2) y la desviación estándar(índice 3) de la matriz. Los valores aceptados son P y A P = Población A = Muestra Parámetros obligatorios.
Esta macro devuelve el cálculo en una matriz con 10 posiciones, donde cada posición está relacionada con un dato estadístico. Compruebe a continuación lo que devolverá cada índice. Valores devueltos en cada índice de la matriz:
Index | Value
--- | ---
[0] | Media aritmética
[1] | Mediana
[2] | Varianza
[3] | Desviación estándar
[4] | Amplitud
[5] | Número de valores diferentes
[6] | Número de valores de la matriz
[7] | Número de valores nulos
[8] | Valor más bajo
[9] | Valor más alto
Example of using the macro
    $arr_val = array (5230.01.8374,625.45.8926.34,7000,523.78,523.78,6897.21,987.56,987.56,8729,63);

    $arr_stat = sc_statistic ($arr_val, 'P');
Macro return:
    Array
    (
        [0] => 4072.3075
        [1] => 3108.785
        [2] => 12817792.489302
        [3] => 3580.1944764638
        [4] => 8863.34
        [5] => 10
        [6] => 12
        [7] => 12
        [8] => 63
        [9] => 8926.34
    );
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_text_style({My_Field}, "Color de fondo", "Tamaño", "Color", "Familia", "Peso")
Esta macro permite modificar el estilo de texto desde el campo de la cuadrícula dinámicamente..
Parameter | Description
Field | Nombre
Background-Color (optional) | Color de fondo de la celda de texto
Size (optional) | Fuente del texto
Color (optional) | Color del texto
Family (optional) | Familia de texto
Weight (optional) | Peso del texto
Ej. 1: sc_text_style({my_field}, '#33FF99', '15px', '#000000', 'Arial, sans-serif', 'bold');
Macro Scope
Aplicación Grid
onRecord

sc_time_diff({datetime_01}, "Date_01 Format", {datetime_02}, "Date_02 Format")
Ver un video tutorial sc_time_diff({datetime_01}, "Date_01 Format", {datetime_02}, "Date_02 Format"); Esta macro calcula la diferencia entre hora, minutos y segundos para dos valores de fecha / hora. El resultado se devolverá en una matriz, con las dimensiones [0], [1] y [2] que contienen horas, minutos y segundos, respectivamente.
Parametro | Descripción
datetime_01 | Valor o variable para datetime_01
Date_01 Format | Valor de variable para especificar el formato de datetime_01
datetime_02 | Valor o variable para datetime_02
Date_02 Format | Valor o variable para especificar el formato de datetime_02
Ej. 1: Formato general `{differences} = sc_time_diff({datetime_01}, "Date_01 Format", {datetime_02}, "Date_02 Format");` `{diff_hours} = {differences[0]};` `{diff_minutes} = {differences[1]};` `{diff_seconds} = {differences[2]};` Ej. 2: Retornando valores positivos `{differences} = sc_time_diff("2012-07-25 05:33:45", "yyyy-mm-dd hh:ii:ss", "2012-07-21 15:22:57", "yyyy-mm-dd hh:ii:ss"); {differences[0]} would be equal to 86 (hours); {differences[1]} would be equal to 10 (minutes); {differences[2]} would be equal to 48 (seconds);` Ej. 3: Retornando valores negativos `{differences} = sc_time_diff("2012-07-21 15:22:57", "yyyy-mm-dd hh:ii:ss", "2012-07-25 05:33:45", "yyyy-mm-dd hh:ii:ss"); {differences[0]} would be equal to -86 (hours); {differences[1]} would be equal to -10 (minutes); {differences[2]} would be equal to -48 (seconds);` Ej. 4: Considerando solo el formato de horas - Retorno positivo `{differences} = sc_time_diff("18:14:55", "hh:ii:ss", "10:55:22", "hh:ii:ss");` `{differences[0]} would be equal to 7 (hours);` `{differences[1]} would be equal to 19 (minutes);` `{differences[2]} would be equal to 33 (seconds);` Ej. 5: Considerando solo el formato de horas - Retorno negativo `{differences} = sc_time_diff ("10:55:22", "hh:ii:ss", "18:14:55", "hh:ii:ss");` `{differences[0]} would be equal to -7 (hours);` `{differences[1]} would be equal to -19 (minutes);` `{differences[2]} would be equal to -33 (seconds);`
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_trunc_num({Mi_Campo}, Cantidad_Decimal)
Ver un video tutorial Esta macro se usa para truncar valores numéricos que exceden la cantidad de decimales especificada.
Parametro | Descripción
Mi_Campo | Variable con valor para formatear (retorno en la misma variable).
Numero_Decimal | Cantidad de decimales para mostrar.
Ej. 1: sc_trunc_num({my_value}, 2); Valor Entrada = 1250.235 Valor Salida = 1250.23 Valor Entrada = 1250.2 Valor Salida = 1250.20 Valor Entrada = 1250 Valor Salida = 1250.00
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onClick onApplicationInit onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_url_exit(URL)
Ver un video tutorial Esta macro modifica la URL de salida de la aplicación. Ej. 1: sc_url_exit(http://www.scriptcase.net); Ej. 2: sc_url_exit(aplx.php);
Macro Scope
Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onScriptInit | onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onClick onScriptInit onLoadAll onValidate onValidateFailure onValidateSuccess | onRecord

sc_url_library("Destino", "Nombre de la biblioteca", "Archivo")
Ver un vídeo tutorial Esta macro devolverá la ruta del archivo, dentro de una biblioteca, para ser utilizada en las aplicaciones de script. Es necesario tener una biblioteca creada en Scriptcase para usar esta Macro. Para crear una biblioteca, vaya al menú "Herramientas> Biblioteca".
Parámetros | Descripción
Target | Informa cuál es el alcance de la biblioteca. Puede ser "sys" para bibliotecas de ámbito público o "prj" para bibliotecas de ámbito de proyecto.
Library Name | Nombre dado a la biblioteca en el momento de la creación.
File | Ruta absoluta dentro de la biblioteca.
Ej. 1 - Importar archivos CSS desde una biblioteca: <*link rel="stylesheet" type="text/css" href="<*?php echo sc_url_library('prj', 'bootstrap-3.3.2-dist', 'css/style1.css'); ?>" /> Ej. 2 - Importar un archivo JS desde una biblioteca: <*script type="text/javascript" src="<*?php echo sc_url_library('prj', 'bootstrap-3.3.2-dist', 'js/bootstrap,js'); ?>"> NOTA: Tenga en cuenta que debe eliminar el asterisco (*) de los ejemplos anteriores para usarlo.
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit onScriptInit onWidgetLoad | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad

sc_user_logout('nombre de variable', 'contenido de variable', 'apl_redir.php', 'target')
Esta macro se utiliza para cerrar sesión en el usuario del sistema informado. Si no se ingresa el objetivo, asume "_top" (Fuerza a que el enlace sea mostrado usando todo el espacio de la ventana del navegador destruyendo toda estructura de frames). Ej: sc_user_logout ('usr_login', 'admin', 'ctrl_login.php', '_self');
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Formulário | Aplicación Controle | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onValidate onValidateSuccess | onHeader onScriptInit | onScriptInit | onScriptInit | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onScriptInit onLoad onNavigate onLoadRecord onValidate onValidateSuccess | onScriptInit onLoadAll onValidate onValidateSuccess | onHeader onScriptInit onRecord

sc_warning'on' o 'off'
Ver un video tutorial Esta macro activa o desactiva dinámicamente la visualización de mensajes de advertencia. Los mensajes de advertencia se generan en situaciones como la referencia a una variable inexistente, un elemento de array indefinido o condiciones similares. Esto no resuelve el problema subyacente, solo oculta o muestra las advertencias. Ej. 1: para desactivar el mensaje (no mostrar). sc_warning = 'off';
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

sc_webservice("Método", "URL", "Puerto", "Método de envío", "Matriz de parámetros", "Matriz de ajustes", "Tiempo de espera", "Retorno
Ver un video tutorial Esta macro se usa para comunicarse con un web service.
Parámetro | Descripción
Method | Informa qué método se utilizará para acceder al web service.Ej: file_get_contents o curl.
URL | URL usada para acceder al web service.
Port | Port usado para acceder al web service.
Send Method | Define el método de solicitud de web service. Can be GET ou POST.
Parameters Array | Array de parámetros utilizada para acceder al web service, que varía según el servicio al que se accede.
Settings's Array(optional) | Matriz de parámetros para la configuración del método de acceso utilizado.
Timeout(optional) | Acceso a servicios de tiempo de espera.
Return(optional) | Método de devolución de servicios web. Cuando se establece como "True", el retorno del servicio web se presenta como una array, si se establece como "False", se devolverá como el formato del web service. Valor predeterminado: true
$parms = array( 'METHOD' => 'GetBalance', 'RETURNALLCURRENCIES' => 1, 'VERSION' => urlencode(51.0), 'USER' => urlencode({paypal_api_login}), 'PWD' => urlencode({paypal_api_password}), 'SIGNATURE' => urlencode({paypal_api_key}) ); $parms = http_build_query($parms); Ej1 - Usando la macro file_get_contents: sc_webservice('file_get_contents', $webservice_url, $_SERVER["SERVER_PORT"], "POST", $parms, array(), 30); Ej2 - Usando la macro CURL: $response = sc_webservice("curl", {paypal_type}, 80, "POST", $parms, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER=>false), 30);
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit onScriptInit | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onBlur onChange onClick onFocus onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad

sc_where_current
Ver un vídeo tutorial Esta variable pone a disposición el contenido generado por el "filtro" de acuerdo con las selecciones realizadas en el formulario de filtro. Esta información es la que se agregará a la cláusula where del select original de la aplicación. Ej. 1: $save_current_where = {sc_where_current};
Macro Scope
Aplicación Gráfica | Aplicación Grid | Aplicación ReportPDF
onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onFooter onHeader onScriptInit onRecord

sc_where_filter
Esta variable pone a disposición el contenido generado por el "filtro" de acuerdo con las selecciones realizadas en el formulario de filtro. Esta información es la que se agregará a la cláusula where del select original de la aplicación. Ej. 1: $save_current_filter = {sc_where_filter};
Macro Scope
Aplicación Gráfica | Aplicación Grid | Aplicación ReportPDF
onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onFooter onHeader onScriptInit onRecord

sc_where_orig
Ver un video tutorial Esta macro guarda la cláusula where original de la aplicación. Se puede usar dentro de los eventos de ScriptCase, para manipular los datos o mostrarlos en cualquier lugar de la consulta. Ej. 1: $save_where = {sc_where_orig};
Macro Scope
Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación ReportPDF
onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | onFooter onHeader onScriptInit onRecord

sc_widget_config($arrayOptions)
La macro `sc_widget_config()` permite modificar dinámicamente las propiedades visuales del widget en ejecución. Debe utilizarse en el evento `onWidgetLoad` y aplica las configuraciones solo al widget actual. El parámetro recibido es un array asociativo que contiene las opciones de configuración del widget. Ejemplo de estructura del array:
    sc_widget_config([
      'title' => 'Mi título',
      'border-color' => '#FF0000'
    ]);
### Parámetros por tipo de widget Las opciones disponibles para configuración dependen del tipo de widget que se va a modificar. Consulta a continuación las opciones separadas por tipo. #### Widget de Enlace
Parámetro | Valor | Descripción
--- | --- | ---
`title` | `'title' => 'Título del widget'` | Define el título mostrado en la parte superior del widget.
`border-color` | `'border-color' => '#FF0000'` | Color del borde del widget, en formato hexadecimal.
#### Widget de División
Parámetro | Valor | Descripción
--- | --- | ---
`title` | `'title' => 'Sección Principal'` | Título de la sección creada por el widget de división.
`subtitle` | `'subtitle' => 'Descripción complementaria'` | Texto mostrado debajo del título del divisor.
`background-color` | `'background-color' => '#F1F1F1'` | Color de fondo del widget, en formato hexadecimal.
`border-color` | `'border-color' => '#CCCCCC'` | Color del borde del widget, en formato hexadecimal.
#### Widget de Índice
Parámetro | Valor | Descripción
--- | --- | ---
`title` | `'title' => 'Indicador de Ventas'` | Título mostrado en la parte superior del widget de índice.
`legend` | `'legend' => 'Comparado con el mes anterior'` | Texto mostrado debajo del valor principal del índice.
`background-color` | `'background-color' => '#E0FFE0'` | Color de fondo del widget, en formato hexadecimal.
`border-color` | `'border-color' => '#00CC00'` | Color del borde del widget, en formato hexadecimal.
### Ejemplo completo
    $widgetName = sc_widget_name();

    if ($widgetName == 'indice_ventas') {
      sc_widget_config([
        'title' => 'Ventas del Mes',
        'legend' => 'Comparado con el mes anterior',
        'background-color' => '#f0f0f0',
        'border-color' => '#999999',
      ]);
    }
En el ejemplo anterior, la macro `sc_widget_config()` se utiliza para aplicar configuraciones visuales al widget identificado como `indice_ventas`.
Macro Scope
Dashboard
onWidgetLoad

sc_widget_data('dataName')
La macro `sc_widget_data()` devuelve datos de un widget de tipo Índice, permitiendo acceder a los valores comparativos y estadísticos definidos en la configuración del widget. Puede utilizarse para personalizar el contenido y la apariencia del widget según los datos calculados en tiempo de ejecución, como la variación porcentual o la diferencia entre períodos. #### Parámetro La macro recibe un único parámetro, que debe ser el nombre del dato que se desea recuperar. Ejemplo de uso:
    sc_widget_data('value')
#### Parámetros disponibles
Parámetro | Descripción
--- | ---
`value` | Valor principal del período actual.
`period` | Período actual configurado en el widget (por ejemplo: mes actual, semana, etc.).
`last_value` | Valor correspondiente al período anterior.
`last_period` | Etiqueta del período anterior (por ejemplo: mes anterior, semana pasada, etc.).
`difference` | Diferencia entre los valores de ambos períodos (`value - last_value`).
`variation` | Variación porcentual entre los períodos (comparación entre `value` y `last_value`).
#### Ejemplo
    $dif = sc_widget_data('difference');

    if ($dif < 0) {
      sc_widget_config([
        'background-color' => '#ffdddd',
        'border-color' => '#cc0000',
        'legend' => 'Rendimiento inferior al período anterior',
      ]);
    } else {
      sc_widget_config([
        'background-color' => '#ddffdd',
        'border-color' => '#00cc00',
        'legend' => 'Mejora en relación al período anterior',
      ]);
    }
En el ejemplo anterior, la macro `sc_widget_data()` recupera la diferencia entre los períodos. Según ese valor, la apariencia del widget se adapta dinámicamente.
Macro Scope
Dashboard
onWidgetLoad

sc_widget_name
La macro `sc_widget_name()` devuelve el nombre del widget que se está ejecutando, lo que permite identificar cuál widget está siendo procesado y aplicar configuraciones específicas de forma dinámica. Esta macro no recibe parámetros. #### Ejemplo
    // Obtener el nombre del widget para cambiar el título
    $widgetName = sc_widget_name();

    // Validar el nombre del widget
    if ($widgetName == 'widget1') {
        sc_widget_config([
            'title' => 'Widget de Ventas',
        ]);
    }
En el ejemplo anterior, la macro `sc_widget_name()` se utiliza para identificar el widget en ejecución. Si el nombre es `widget1`, el título se actualiza dinámicamente usando la macro `sc_widget_config()`. #### Ver también Para más personalizaciones en los widgets, consulte las macros: sc_widget_config() y sc_widget_data().
Macro Scope
Dashboard
onWidgetLoad

sc_zip_file("Archivo", "Zip")
Ver un video tutorial Esta macro se utiliza para generar archivos ZIP a partir de una lista de archivos y / o directorios. El parámetro del archivo debe ser uno de los siguientes: - Nombre de archivo - Nombre del directorio - Una variable que contiene una matriz, que contiene una lista de archivos y / o directorios. - Una variable un archivo o un nombre de directorio. - Una variable que contiene una matriz, que contiene una lista de archivos y / o directorios. El parámetro zip debe contener el nombre del archivo zip generado o la ruta al archivo. Ej. 1: Compresión de un solo archivo. sc_zip_file ("/ test / sample.htm", "/tmp/test.zip"); Ej. 2: Compresión de directorio único. sc_zip_file ("/ test", "/tmp/test.zip"); Ej. 3: Múltiples archivos y directorios en una matriz. $ prep = array (); $ prep [] = "/test/sample.htm"; $ prep [] = "/ test"; sc_zip_file ($ prep, "/tmp/test.zip");
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Dashboard | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | onApplicationInit | onApplicationInit onFilterInit onFilterSave onFilterValidate | onAfterDelete onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onApplicationInit onBeforeDelete onBeforeDeleteAll onBeforeInsert onBeforeInsertAll onBeforeUpdate onBeforeUpdateAll onClick onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onClick onScriptInit onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onLoad | onApplicationInit onExecute onLoad | onApplicationInit onFooter onHeader onScriptInit onRecord

Variables de autenticación
Estas variables deben definirse en aplicaciones con exportación de PDF en entornos con autenticación integrada.
Variables | Descripción
[sc_pdf_usr] | Autenticación de usuario.
[sc_pdf_pw] | Contraseña de autenticación
Ej. 1: en una aplicación de inicio de sesión, es posible establecer estas variables a partir de la información proporcionada por el usuario: [sc_pdf_usr] = {inicio_usr}; [sc_pdf_pw] = {contraseña_usr};
Macro Scope
Aplicación Grid | Aplicación Formulário
onApplicationInit onFooter onGroupBy onScriptInit | onScriptInit

Variables de base de datos
Ver un video tutorial Variables globales que contienen valores de acceso a la base de datos utilizadas por la conexión principal.
Variables | Descripción
sc_glo_server | Nombre del servidor.
sc_glo_db | Nombre de la base de datos.
sc_glo_db_type | Tipo de base de datos (mssql, oracle, mysql, etc).
sc_glo_user | Nombre de usuario conectado
sc_glo_pass | Password de la base de datos
sc_glo_cript_pass | Contraseña encriptada (S/N).
sc_glo_decimal_db | Contiene el separador decimal utilizado (punto y coma o coma).
Ej. 1: $my_database = [sc_glo_db]; Estas variables solo hacen referencia a los valores sin actualizarlo (no es posible atribuir / modificar los valores). Para definir el usuario y la contraseña para conectarse a la base de datos, use las siguientes variables:
Variables | Descripción
sc_db_master_usr | Inicio de sesión de usuario para ser utilizado.
sc_db_master_pass | Contraseña para ser utilizada
sc_db_master_cript | Contraseña cifrada (S / N) (ver macro sc_encode).
Importante: Estas variables solo entran en vigencia durante la próxima ejecución de la aplicación, siendo válidas durante toda la sesión (a menos que se modifiquen). Ej. 2: Un tipo de aplicación "control" con un formulario creado con información "inicio de sesión" y "contraseña cifrada". Estos datos deben usarse para conectarse a la base de datos, durante la ejecución de las aplicaciones del sistema. $ temp_pass = sc_encode ({password}); [sc_db_master_usr] = {login}; [sc_db_master_pass] = $ temp_pass; [sc_db_master_cript] = "S";
Macro Scope
Aplicación Blank | Aplicación Calendario | Aplicación Gráfica | Aplicación Grid | Aplicación Búsqueda | Aplicación Formulário | Aplicación Controle | Aplicación Menu | Menú Responsivo | Aplicación Menú Arból | Aplicación ReportPDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus | onFooter onHeader onScriptInit | onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onFilterInit onFilterRefresh onFilterSave onFilterValidate | ajaxFieldonBlur Onchange OnClick OnFocus | onBlur onChange onClick onLoadAll onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onExecute onLoad | onApplicationInit onExecute onLoad | onExecute onLoad | onFooter onHeader onScriptInit onRecord

Totalización de variables
Durante el procesamiento de grupo por y resumen, Scriptcase genera variables totales para cada nivel de grupo. Las rutinas se definen en el evento "onGroupBy" que determina los niveles de agrupamiento y se puede evaluar para cada registro. Luego se hace referencia a las variables especiales de totales sustituyendo el nombre del grupo por la palabra clave "groupby", como en:
Variables | Descripción
{count_ger} | Número general de registros.
{sum_parcel} | Devuelve la suma del campo "parcela"
{sum_balance} | Devuelve la suma del campo de saldo
{count_groupby} | Número de registros de la agrupación.
{sum_groupby_parcel} | Contiene la suma del campo "parcela" de la agrupación que se está procesando.
{sum_groupby_balance} | Contiene la suma del campo "balance" de la agrupación que se está procesando.
Ej. 1: En una aplicación con un grupo por estado y ciudad que utiliza un campo de saldo, en los totales de grupo, es posible mostrar el promedio (promedio) en lugar del saldo de la siguiente manera. {sum_groupby_balance} = {sum_groupby_balance} / {count_groupby};
Macro Scope
Aplicación Gráfica | Aplicación Grid | Aplicación ReportPDF
onFooter onHeader | onFooter onGroupBy onRecord | onFooter onHeader onRecord

Totalización de variables (agrupación)
Durante el proceso agrupación, Scriptcase genera variables totales para cada nivel de grupo. Las rutinas se definen en el evento "onGroupBy" que determina los niveles del grupo. A continuación, se hace referencia a las variables especiales de los totales sustituyendo el nombre del grupo por la palabra clave "quebra", como en:
Variable | Descripción
{count_ger} | Cantidad total de registros.
{sum_parcel} | Contiene la suma total del campo "parcela".
{sum_balance} | Contiene la suma general del campo "balance".
{count_quebra} | Contiene el número total de registros del la agrupación que se está procesando..
{sum_quebra_parcel} | Contiene la suma del campo "parcela" de la agrupación que se está procesando.
{sum_quebra_balance} | Contiene la suma del campo "balance" de la agrupación que se está procesando.
Ej. 1: En una aplicación que tiene saltos por estado y ciudad y suma un campo de saldo, y en los totales de saltos, queremos mostrar el promedio en lugar del saldo. {sum_break_break} = {sum_break_break} / {count_break};
Macro Scope
Aplicación Grid
onFooter onGroupBy