# MACROS SCRIPTCASE

O ScriptCase dispõe de macros e variáveis especiais que permitem ao usuário manipular eventos, botões das aplicações, controle de segurança, efetuar operações com datas, etc.
A seguir temos uma tabela na qual são apresentadas as macros e variáveis especiais do Scriptcase, bem como os tipos de aplicações nas quais atuam.

TABELA DE MACROS E VARIÁVEIS ESPECIAIS
SQL
sc_begin_trans ("Conexão") | Esta macro inicializa um conjunto de transações na base de dados.
sc_change_connection ("Conexao_Antiga", "Conexao_Nova") | Esta macro troca dinamicamente as conexões das aplicações.
sc_commit_trans ("Conexão") | Faz com que todas as modificações de dados realizadas desde o inicio da transação sejam parte permanente do banco de dados.
sc_concat () | Esta macro é usada para combinar duas ou mais strings e/ou campos da tabela.
sc_connection_edit ("Nome_da_Conexão", $arr_conn) | Esta macro edita uma conexão existente em tempo de execução.
sc_connection_new ("Nome_da_Conexão", $arr_conn) | Esta macro permite a criação de novas conexões dinamicamente.
sc_error_continue ("Evento") | Esta macro desativa o tratamento de erros de banco de dados, padrão do Scriptcase.
sc_error_delete | Esta macro configura a variável que contem a mensagem de erro do banco de dados que pode ocorrer durante a exclusão de um registro.
sc_error_insert | Esta macro configura a variável que contem a mensagem de erro do banco de dados que pode ocorrer durante a inclusão de um registro.
sc_error_update | Esta macro configura a variável que contem a mensagem de erro do banco de dados que pode ocorrer durante a atualização de um registro.
sc_exec_sql ("Comando SQL", "Conexão") | Esta macro executa o comando SQL passado como parâmetro ou o comando SQL contido no campo tipo ação SQL informado.
sc_lookup (Dataset, "Comando SQL", "Conexão") | Esta macro executa o comando SELECT informado no segundo parâmetro e retorna os dados em uma variável.
sc_lookup_field (dataset, "comando SQL", "nome_conexão") | Esta macro executa o comando SELECT informado retornando os dados em um array onde a índice é o nome da coluna.
sc_reset_change_connection | Esta macro apaga as trocas feitas usando "sc_change_connection".
sc_reset_connection_edit | Esta macro desfaz as edições de conexão feitas pela macro "sc_connection_edit".
sc_reset_connection_new | Esta macro desfaz as conexões feitas pela macro "sc_connection_new".
sc_rollback_trans ("Conexão") | Esta macro descarta um set de transações na base de dados.
sc_select (dataset, "Comando SQL", "Conexão") | Esta macro executa o comando SELECT informado no segundo parâmetro e retorna o dataset em uma variável.
sc_select_field ({Campo}) | Esta macro altera dinamicamente o campo que será recuperado pela consulta.
sc_select_order ("Campo") | Esta macro altera dinamicamente o campo da cláusula "ORDER BY" da consulta.
sc_select_where (add) | Esta macro adiciona dinamicamente uma condição à cláusula WHERE da consulta.
sc_set_fetchmode (parm); | Esta macro permite modificar o tipo de retorno do dataset dos comandos select.
sc_sql_injection ({Meu_Campo}) ou ($Minha_Variável) | Esta macro protege o campo/variável contra "SQL injection"
sc_sql_protect (Valor, "Tipo", "Conexão") | Essa macro protege valor digitado de acordo com o banco de dados utilizado.
sc_where_current | Esta macro disponibiliza o conteúdo do select original mais o filtro.
sc_where_orig | Recupera a cláusula where do select original da aplicação.
Variables - Database Variáveis de Database | Variáveis especiais que contêm os dados para acesso à base de dados.
Data
sc_date (Data, "Formato", "Operador", D, M, A) | Esta macro calcula e retorna incrementos e decrementos em datas.
sc_date_conv ({Campo_Data}, "Formato_Entrada", "Formato_Saída") | Esta macro converte o conteúdo do campo passado como parâmetro do formato de entrada para o formato de saída.
sc_date_dif ({Data1}, "Formato Data1", {Data2}, "Formato Data2") | Esta macro calcula a diferença entre datas em quantidade de dias.
sc_date_dif_2 ({Data1}, "Formato Data1", {Data2}, "Formato Data2", Opção) | Esta macro calcula diferença entre datas, retornando a quantidade de dias, meses e anos.
sc_date_empty ({Campo_Data}) | Esta macro checa se um campo do tipo data está vazio, retornando um boleano.
sc_time_diff ({datetime_01}, "Formato datetime_01", {datetime_02}, "Formato datetime_02") | Calcula diferença em horas, retornando a quantidade de horas, minutos e segundos.
Controle
sc_actionbar_clicked_state () | Recupera o estado atual (ID) do botão do tipo ajax da barra de ações no momento do clique.
sc_actionbar_disable ("nome_do_botao") | Permite desabilitar, dinamicamente, os botões criados pelo usuário na barra de ação.
sc_actionbar_enable ("nome_do_botao") | Permite habilitar, dinamicamente, os botões criados pelo usuário na barra de ação que foram desabilitados pela macro sc_actionbar_disable.
sc_actionbar_hide ("nome_do_botao") | Possibilita que o desenvolvedor esconda dinamicamente o botão da barra de ação.
sc_actionbar_show ("nome_do_botao") | Esta macro possibilita a exibição dos botões da barra de ação que foram escondidos utilizando a macro sc_actionbar_hide
sc_actionbar_state ("nome_do_botao", "nome_do_estado") | Define, dinamicamente, um novo estado para o botão do tipo ajax criado na barra de ações.
sc_ajax_javascript ('NomeMetodoJavascript', array("parâmetro")) | Permite que sejam executados métodos JavaScript em eventos de aplicações dos tipos: Formulário, Controle e Calendário.
sc_alert ("Mensagem", $array) | Esta macro exibe uma tela de mensagem no estilo Javascript.
sc_api_download (profile, settings, file, destination) | Essa macro é utilizada para fazer o download de arquivos utilizando as APIs de armazenamento.
sc_api_gc_get_obj ($app_name , $json_oauth, $auth_code) | A macro sc_api_gc_get_obj gera o token_code
sc_api_gc_get_url ($app_name, $json_oauth) | Essa macro gera uma URL para a autenticação do usuário da conta google utilizada para configuração da API
sc_api_upload (profile, settings, file, parents) | Essa macro é utilizada para fazer o upload de arquivos utilizando as APIs de Storage.
sc_apl_conf ("Aplicação", "Propriedade", "Valor") | Esta macro altera as propriedades de execução das aplicações.
sc_apl_default ("aplicacao", "tipo"); | Essa macro permite que o usuário defina na sua aplicação inicial o que irá ocorrer quando a aplicação perder a sessão.
sc_calc_dv (Dígito, Resto, Valor, Módulo, Pesos, Tipo) | Esta macro executa o cálculo de dígitos verificadores.
sc_call_api ($profile, $arr_settings) | Permite utilizar as APIs integradas ao Scriptcase.
sc_captcha_display ("on/off") | Controla dinamicamente a exibição do captcha na aplicação.
sc_changed ({Nome_Campo}) | Esta macro retorna "true" se o valor do campo tiver sido modificado.
sc_confirm ("Mensagem") | Esta macro exibe uma tela de confirmação Javascript.
sc_decode ({Meu_Campo}) | Esta macro retorna, o campo ou variável criptografada, à sua forma original.
sc_encode ({Meu_Campo}) | Esta macro retorna, o campo ou variável, de forma criptografada.
sc_error_exit ("nome_app/URL", "Target") | Interrompe a execução do código utilizando um return e deve ser sempre utilizada em conjunto com a macro "sc_error_message".
sc_error_message ("Texto") | Esta macro gera uma mensagem de erro.
sc_exit (Opção) | Esta macro força a saida da aplicação.
sc_field_no_validate ('nome_do_campo') | Ignora as validações definidas na tela de configuração dos campos, tais como: Validação do CPF, campos obrigatórios, entre outras.
sc_getfield ("meuCampo") | Esta macro atribui as propiedades de um campo para uma variável javascript.
sc_get_language | Esta macro retorna a sigla do idioma em uso.
sc_get_regional | Esta macro retorna a sigla da configuração regional em uso.
sc_get_theme | Esta macro retorna o nome do tema do layout em uso.
sc_get_wizard_step | Recupera o id da página atual, na transição entre os passos de um formulário wizard.
sc_groupby_label ("Meu_Campo") | Esta macro altera dinamicamente o label dos campos que são apresentados nas linhas de quebra.
sc_image (Imagem01.jpg) | Esta macro carrega, para serem usadas na aplicação, as imagens passadas como parâmentro.
sc_include ("Arquivo", "Origem") | Esta macro é usada para efetuar "include" de rotinas PHP.
sc_include_lib ("Lib1", "Lib2", ...) | Esta macro é usada para selecionar dinamicamente as bibliotecas da aplicação.
sc_include_library ("Escopo", "Nome da Biblioteca", "Arquivo", "include_once", "Require") | Inclue na aplicação um arquivo PHP de uma biblioteca criada no Scriptcase.
sc_label ("nome_do_campo") | Esta macro altera dinamicamente o label do campo.
sc_language | Esta macro retorna o idioma da aplicação.
sc_link (Coluna, Aplicação, Parâmetros, "Hint", "Target", Altura, Largura) | Esta macro cria dinamicamente um link para outra aplicação.
sc_log_add ("Ação", "Mensagem") | Esta macro adiciona um registro a tabela de log.
sc_log_split ({descricao}) | Esta macro retorna o que foi inserido no campo descrição na tabela de log em forma de array.
sc_mail_send (SMTP, Usr, Pw, De, Para, Assunto, Mensagem, Tipo_Mens, Cópias, Tp_Cópias, Porta, Tp_Conexao, Anexo, SSL, reply_to) | Esta macro é usada pra o envio de e-mails.
sc_make_link (Aplicação, Parâmetros) | Esta macro cria uma string contendo os dados de um link para outra aplicação.
sc_master_value ("Objeto", "Valor") | Esta macro atualiza um objeto da aplicação Mestre em uma aplicação Detalhe.
sc_redir (Aplicação, Parâmetro01; Parâmetro02, Target, Error, alt_modal, larg_modal) | Esta macro tem por objetivo redirecionar para outra aplicação.
sc_reset_apl_default | Essa macro tem como finalidade resetar as configurações da macro sc_apl_default.
sc_reset_global ([Variável_Global1], [Variável_Global2] ...) | Esta macro elimina as váriaveis de sessão recebidas como parâmetro.
sc_send_mail_api ($arr_settings) | Permite o envio dinâmico de e-mails integrados com Mandrill e Amazon SES
sc_send_sms ($arr_settings) | Esta macro permite o envio dinâmico de mensagem de texto SMS
sc_seq_register | Esta macro disponibiliza o número sequencial do registro que está sendo processado.
sc_set_global ($variavel_01) ou ({Meu_Campo}) | Esta macro registra variáveis de sessão.
sc_set_groupby_rule | Macro usada para selecionar a regra das quebra
sc_set_language ('String Language') | Esta macro altera o idioma das aplicações.
sc_set_regional ('String Regional') | Esta macro altera a configuração regional das aplicações.
sc_set_theme ('String Tema') | Esta macro define, dinamicamente, o tema nas aplicações.
sc_site_ssl | Esta macro verifica se está sendo utilizado um site seguro. (protocolo https).
sc_statistic (arr_val, tp_var) | Calcula e retorna um array com os valores estatísticos, a partir de uma array com valores numéricos
sc_trunc_num ({Meu_Campo}, Quantidade_Decimal) | Esta macro tem como finalidade setar o numero de casas decimais.
sc_url_exit (URL) | Esta macro altera a URL de saída da aplicação.
sc_url_library ("Escopo", "Nome da Biblioteca", "Arquivo") | Retorna o caminho de um arquivo, dentro de uma biblioteca, para ser usado nas aplicações.
sc_vl_extenso (valor, tam_linha, tipo) | Gera valor por extenso.
sc_warning 'on' ou 'off' | Esta macro ativa ou desativa o controle de mensagens de advertência
sc_webservice ("Método", "URL", "Porta", "Método de Envio", "Array de Parâmetros", "Array de Configuração", "Timeout", "Retorno") | Esta macro é usada para comunicação com um serviço web.
sc_zip_file ("Arquivo", "Zip") | Esta macro é usada para gerar arquivo tipo ZIP, à partir de uma lista de arquivos e/ou diretórios.
Variables - Totalling Variáveis de Totalização | Variáveis especiais que contêm todos os totais (gerais e por quebra).
Variables - Totalling (group by) Variáveis de Totalizacao (quebras) | Variáveis especiais que contêm todos os totais por quebra.
Código de Barra
sc_lin_cod_barra_arrecadacao ({Código_Barra}, Código_Seguimento, Código_Moeda, {Valor}, {Livre}) | Esta macro gera os valores que compõem o código de barras no padrão Febraban arrecadação.
sc_lin_cod_barra_banco ({Código_Barra}, Código_Banco, Código_Moeda, {Valor}, {Livre}, {Data_Vencimento}) | Esta macro gera a linha digitável para bloquetos de cobrança, a partir da linha do código de barras, padrão bancário.
sc_lin_digitavel_arrecadacao ({Linha_Digitavel}, {Código_Barras}) | Esta macro gera a linha digitável para boletos de cobrança a partir da linha do código de barras, padrão arrecadação.
sc_lin_digitavel_banco ({Linha_Digitavel}, {Código_Barras}) | Esta macro gera a linha digitável para boletos de cobrança, a partir da linha do código de barras, padrão bancário.
Filtro
sc_where_filter | Esta macro disponibiliza o conteúdo da cláusula where gerada pelo formulário de filtro.
Segurança
sc_apl_status ("Aplicação", "Status") | Esta macro tem por objetivo proteger ou liberar a utilização das aplicações em geral.
sc_ldap_login | Esta macro estabelece a conexão pelas credenciais do usuário.
sc_ldap_logout () | Macro usada para liberar a conexão após a utilização da macro sc_ldap_login.
sc_ldap_search ($filter = 'all', $attributes = array() ) | Macro utilizada para realizar buscas no LDAP.
sc_reset_apl_conf ("Aplicação", "Propriedade") | Esta macro apaga todas as alterações efetuadas pela macro "sc_apl_conf".
sc_reset_apl_status | Esta macro deleta todas as variáveis de status de segurança das aplicações.
sc_reset_menu_delete | Esta macro restaura ítens da estrutura do menu. (retirados pela macro "sc_menu_delete").
sc_reset_menu_disable | Esta macro habilita ítens da estrutura do menu (desabilitados pela macro "sc_menu_disable").
sc_user_logout ('nome da variável', 'conteúdo da variável', 'apl_redir.php', 'target') | Macro utilizada para deslogar o usuario informado do sistema.
Exibição
sc_ajax_message ("Mensagem", "Título", "Parâmetro", "Parâmetros_Redir", "String_toast"); | Esta macro permite que a aplicação exiba mensagens customizáveis.
sc_ajax_refresh | Macro para dar um refresh na consulta
sc_block_display (Nome do bloco, on/off) | Esta macro permite, dinamicamente, exibir ou não os campos de um determinado bloco.
sc_change_css ("nome_atributo", "valor", "nome_campo") | Permite manipular propriedades CSS dos campos e linhas da consulta.
sc_field_color ("Campo", "Cor") | Esta macro altera a cor do texto de um determinado campo.
sc_field_disabled ("Nome_Campo = True/False", "Parâmetro") | Esta macro tem por objetivo bloquear a digitação em determinados campos do formulário.
sc_field_disabled_record ("Nome_Campo = True/False", "Parâmetro") | Esta macro tem por objetivo bloquear a digitação em determinados campos de cada linha nos formulários.
sc_field_display ({Meu_Campo}, on/off) | Esta macro permite, dinamicamente, exibir ou não um determinado campo.
sc_field_init_off (campo1, campo2,...) | Esta macro tem por objetivo inibir campos da consulta na carga inicial.
sc_field_readonly ({Campo}, on/off) | Esta macro permite, dinamicamente, transformar em readonly um determinado campo do formulário.
sc_field_style ({Meu_Campo}, "Background-Color", "Size", "Color", "Family", "Weight") | Esta macro altera a visualização do campo.
sc_foot_hide () | Essa macro inibe a exibição do rodapé.
sc_format_num ({Meu_Campo}, "Simb_Grp", "Simb_Dec", "Qtde_Dec", "Enche_Zeros", "Lado_Neg", "Simb_Monetário", "Lado_Simb_Monetario") | Esta macro e usada para formatar valores numéricos.
sc_format_num_region ({Meu_Campo}, "Qtde_Dec", "Enche_Zeros", "Simb_Monetário") | Esta macro tem por objetivo a formatação de valores numéricos, utilizando as configurações regionais.
sc_form_show 'on' ou 'off' | Esta macro permite, dinamicamente, exibir ou não o formulário.
sc_get_groupby_rule () | Esta macro disponibiliza a regra da quebra que está em execução.
sc_head_hide () | Esta macro inibe a exibição de cabeçalho.
sc_hide_groupby_rule ('group1', 'grop2', 'group3') | Macro usada para desativar Regras de Quebras.
sc_set_focus ('Campo') | Esta macro setá o focus para um determinado campo do formulário.
sc_text_style ({Meu_Campo}, "Background-Color", "Size", "Color", "Family", "Weight") | Esta macro altera a visualização do texto do campo.
Botões
sc_btn_copy | Esta macro retorna "true" quando o botão "Copiar" é selecionado em um formulário.
sc_btn_delete | Esta macro retorna "true" quando o botão "Excluir" é selecionado em um formulário.
sc_btn_disabled ("nome_botao", "status") | Tem o objetivo de habilitar ou desabilitar dinamicamente um botão da barra ferramenta.
sc_btn_display ("Nome_Botao", "on/off") | Esta macro torna visível, ou não, um botão da barra de ferramentas em tempo de execução da aplicação.
sc_btn_insert | Esta macro retorna "true" quando o botão "Inserir" é selecionado em um formulário.
sc_btn_label ("nome_botao", "nova_label") | Esta macro serve para alterar dinamicamente a label dos botões.
sc_btn_new | Esta macro retorna "true" quando o botão "Novo" é selecionado em um formulário.
sc_btn_update | Esta macro retorna "true" quando o botão "Alterar" é selecionado em um formulário.
PDF
sc_set_export_name ("tipo_exportacao", "nome_do_arquivo") | Altera o nome dos arquivos exportados pela consulta
Variables - Authentication Variaveis de Autenticação | Usuário e senha de segurança do servidor WEB.
Menu
sc_appmenu_add_item ("Menu_Nome", "Id_Item", "Id_Pai", "Label", "Aplicação", "Parâmetro", "Icone", "Hint", "Target") | Esta macro adiciona um item ao menu dinamicamente.
sc_appmenu_create ("Menu_Nome") | Esta macro cria um menu de forma dinâmica.
sc_appmenu_exist_item ("Menu_Nome", "Id_Item") | Esta Macro verifica se existe um item do menu.
sc_appmenu_remove_item ("Menu_Nome", "Id_Item") | Esta macro remove dinamicamente um item do menu.
sc_appmenu_reset ("Menu_Nome") | Esta macro limpa o array para montagem dinâmica de um menu.
sc_appmenu_update_item ("Menu_Nome", "Id_Item", "Id_Pai", "Label", "Aplicação", "Parâmetro", "Icone", "Hint", "Target") | Esta macro atualiza um item do menu.
sc_btn_disable ('id do botão', 'on/off') | Desabilita botões do Menu.
sc_menu_delete (Id_Item1) | Esta macro remove ítens da estrutura do menu.
sc_menu_disable (Id_Item1) | Esta macro desabilita ítens da estrutura do menu.
sc_menu_force_mobile (boolean) | Macro utilizada para forçar a criação do menu para dispositivos móveis.
sc_menu_item | Esta macro Identifica qual item do menu foi clicado.
sc_script_name | Esta macro Identifica o nome da aplicação que foi selecionada nos itens do menu.

sc_actionbar_clicked_state()
A macro `sc_actionbar_clicked_state()` possibilita que o desenvolvedor recupere o estado atual do botão no momento do clique no botão ajax da barra de ação. Desta forma é possível validar o estado atual do botão e alterá-lo de acordo com sua regra de negócio. Esta macro é exclusiva para utilização do evento ajax do botão da barra de ação. ## Exemplos Exemplo: Identificação do estado atual do botão no evento ajax, para alteração do estado ao clicar.
    // Recupera o estado do botão clicado.
    // No código abaixo estamos validando se o estado atual do campo é pendente

    if (sc_actionbar_clicked_state() == 'pendente') {

        sc_actionbar_state('ajax_btn', 'enviado');

    } else {

        sc_actionbar_state('ajax_btn', 'pendente');

    }
Exemplo: Recuperando o estado do botão ajax criado na barra de ação e exibindo o resultado.
    echo sc_actionbar_clicked_state();
Escopo da Macro
Aplicação Consulta
onClick

sc_actionbar_disable("nome_do_botao")
Desabilita o botão da barra de ação, tornando indisponível para o click. Esta macro pode ser utilizada para qualquer tipo de botão (link ou ajax) da barra de ações. ## Definição do parâmetro
Parâmetro | Sintaxe | Descrição
nome_do_botao | Não é possível utilizar variáveis, o nome do botão deve ser informado utilizando aspas duplas ou aspas simples. Exemplo `sc_actionbar_disable("ajax_btn");` | Este parâmetro é obrigatório. Devemos informar o nome do botão da barra de ação que será desabilitado.
## Exemplos Exemplo 1: Utilização básica da macro
    sc_actionbar_disable("link_detalhe");
Exemplo 2: Desabilitando o botão de link para o detalhe do pedido caso não haja itens no pedido.
    // Exemplo criado no evento onRecord da consulta utilizando a tabela order e orderdetail
    // Caso não exista itens no pedido o botão será desabilitado

    $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_disable
        sc_actionbar_disable("nome_do_botao");

    } else {

        sc_actionbar_enable("nome_do_botao");

    }
Escopo da Macro
Aplicação Consulta
onClick onRecord

sc_actionbar_enable("nome_do_botao")
Habilita o botão da barra de ação, tornando disponível para o click. Esta macro pode ser utilizada para qualquer tipo de botão (link ou ajax) da barra de ações. ## Definição do parâmetro
Parâmetro | Sintaxe | Descrição
nome_do_botao | Não é possível utilizar variáveis, o nome do botão deve ser informado utilizando aspas duplas ou aspas simples. Exemplo `sc_actionbar_enable("ajax_btn");` | Este parâmetro é obrigatório. Devemos informar o nome do botão da barra de ação que será habilitado.
## Exemplos Exemplo 1: Utilização básica da macro
    sc_actionbar_enable("link_detalhe");
Exemplo 2: Habilitando o botão de link para o detalhe do pedido caso haja algum registro para ser exibido.
    // Exemplo criado no evento onRecord da consulta utilizando a tabela order e orderdetail
    // Caso não exista pedidos itens no medido, o botão será desabilitado

    $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_enable
        sc_actionbar_enable("link_detalhe");

    } else {

        sc_actionbar_disable("link_detalhe");

    }
Escopo da Macro
Aplicação Consulta
onClick onRecord

sc_actionbar_hide("nome_do_botao")
Esta macro esconde o botão criado na barra de ação, podendo ser exibido novamente com a macro `sc_actionbar_show`. Esta macro pode ser utilizada com qualquer tipo de botão (link ou ajax) criado na barra de ações. ## Definição do parâmetro
Parâmetro | Sintaxe | Descrição
nome_do_botao | Não é possível utilizar variáveis. O nome do botão deve ser informado utilizando aspas duplas ou aspas simples. Exemplo `sc_actionbar_hide("ajax_btn");` | Este parâmetro é obrigatório. Devemos informar o nome do botão da barra de ação que deve ser escondido.
## Exemplos Exemplo 1: Utilização básica da macro
    sc_actionbar_hide("nome_do_botao");
Exemplo 2: Exibindo o botão de link para o detalhe do pedido caso haja algum registro para ser exibido.
    // Exemplo criado no evento onRecord da consulta utilizando a tabela order e orderdetail
    // Caso não exista itens no pedido o botão de link para o detalhe será escondido.

    $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_hide
        sc_actionbar_hide("nome_do_botao");

    } else {

        sc_actionbar_show("nome_do_botao");

    }
Escopo da Macro
Aplicação Consulta
onClick onRecord

sc_actionbar_show("nome_do_botao")
Esta macro exibe o botão da barra de ação, escondido utilizando a macro `sc_actionbar_hide` Esta macro pode ser utilizada para qualquer tipo de botão (link ou ajax) da barra de ações. ## Definição do parâmetro
Parâmetro | Sintaxe | Descrição
nome_do_botao | Não é possível utilizar variáveis. O nome do botão deve ser informado utilizando aspas duplas ou aspas simples. Exemplo `sc_actionbar_show("ajax_btn");` | Este parâmetro é obrigatório. Devemos informar o nome do botão da barra de ação que será exibido.
## Exemplos Exemplo 1: Utilização básica da macro
    sc_actionbar_show("nome_do_botao");
Exemplo 2: Exibindo o botão de link para o detalhe do pedido caso haja algum registro para ser exibido.
    // Exemplo criado no evento onRecord da consulta utilizando a tabela order e orderdetail
    // Caso não exista itens no pedido o botão não será exibido

    $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("nome_do_botao");

    } else {

        sc_actionbar_hide("nome_do_botao");

    }
Escopo da Macro
Aplicação Consulta
onClick onRecord

sc_actionbar_state("nome_do_botao", "nome_do_estado")
Esta macro permite alterar o estado atual do botão da barra de ação através. Para utilização do evento ajax do botão, recomendamos a utilização desta macro em conjunto com a `sc_actionbar_clicked_state();` que possibilita recuperar o estado atual do botão. ## Definição dos Parâmetros
Parâmetro | Valor | Descrição
`nome_do_botao` | O nome do botão deve ser informado utilizando aspas duplas ou aspas simples. Exemplo Em negrito, segue o exemplo de como o parâmetro deve ser informado: `sc_actionbar_state("btn_ajax", "enviado");` | Este parâmetro é obrigatório e recebe o nome do botão criado na barra de ação.
`nome_do_estado` | O nome do estado deve ser informado utilizando aspas duplas ou aspas simples. Exemplo Em negrito, segue o exemplo de como o parâmetro deve ser informado: `sc_actionbar_state("btn_ajax", "enviado");` | Este parâmetro é obrigatório e recebe o nome do proximo estado que o botão assumirá.
## Exemplos Exemplo 1 - Alterando o estado do botão ajax_btn entre pendente e enviado no evento onclick do botão.
    if (sc_actionbar_clicked_state() == 'pendente') {

            sc_actionbar_state('ajax_btn', 'enviado');

    } else {

            sc_actionbar_state('ajax_btn', 'pendente');

    }
Exemplo 2 - Alterando estado do botão ajax_btn entre pendente e enviado, e armazenada alteração na base no campo status_envio
    if (sc_actionbar_clicked_state() == 'pendente') {

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

    } else {

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

    }
Exemplo 3 - Exibição do estado do botão de acordo com o valor armazenado no botão status_envio no evento onRecord da consulta
    if ({status_envio} == 'S') {

    	sc_actionbar_state('ajax_btn', 'enviado');

    } else {

        sc_actionbar_state('ajax_btn', 'pendente');

    }
Escopo da Macro
Aplicação Consulta
onClick onRecord

sc_ajax_javascript('NomeMetodoJavascript', array("parâmetro"))
Assista um video Esta macro permite que métodos javascript chamados em determinados eventos sejam executados nas aplicações de formulário, controle e calendário Para utilizar esta macro é necessário criar o método javascript na aplicação na opção de Programação. A macro recebe dois parâmetros: O primeiro (parâmetro obrigatório) é uma string contendo o nome do método javascript. O segundo (parâmetro opcional) um array com os parâmetros desse método. #### Exemplos de chamadas de métodos javascript: Ex. 1: Método javascript sem parâmetros: `sc_ajax_javascript('nome_do_metodo');` `sc_ajax_javascript('soma');` Ex. 2: Método javascript que contem um parâmetro: `sc_ajax_javascript('nome_do_metodo', array("parâmetro"));` Ex. 3: Método javascript que contém dois paramentros: `sc_ajax_javascript('nome_do_metodo', array("param1","param2"));` Exemplo com variáveis globais como parâmetros: `sc_ajax_javascript('soma', array([num1],[num2]));`
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação 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("Mensagem", "Título", "Parâmetro", "Parâmetros_Redir", "String_toast");
Esta macro permite que a aplicação exiba mensagens customizáveis, com seu uso restrito aos eventos do formulário/controle quando se faz uso no eventos AJAX. Esta macro só é valida em aplicações com suporte a AJAX.
Parâmetros | Descrição
--- | ---
Mensagem | Texto que será exibido no corpo da mensagem. Este parametro é de preenchimento obrigatório.
Título | Texto que será exibido no título da mensagem. Se não preenchido o título da mensagem não será exibido.
String de parâmetros da mensagem | Parâmetro de formatação da mensagem. Ex.: modal=Y&button=Y&button_label=Ok&redir=form_employees.php&redir_target=_blank Os detalhes deste parâmetro estão detalhados na tabela2.
String de parâmetros do Redirecionamento | Nesta propriedade podem ser definidos os valores para a aplicação de redirecionamento.Esta propriedade funciona apenas se a propriedade redir for informada. Os parametros devem ser informados no seguinte formato: parametro=valor;parametro=valor. Ex.: customer_id=ALFKI;customer_name=ALBERT FRANCINET
String de parâmetros do toast | Parâmetro de formatação da mensagem utilizando Toast. - toast: Y ou N - toast_pos: 'top', 'top-start', 'top-end', 'center', 'center-start', 'center-end', 'bottom', 'bottom-start', 'bottom-end' - type: 'warning', 'error', 'success', 'info', 'question'
Tabela2: String de Parâmetros da mensagem
Propriedade | Descrição | Valores | Exemplo
--- | --- | --- | ---
modal | Flag para exibição da mensagem em modal | Y ou N | modal=Y
timeout | Tempo em segundos para esconder mensagem. Se não informado mensagem será exibida indefinidamente. Esta propriedade só funciona se a propriedade button não estiver habilitada. | Segundos | timeout=5
button | Exibe botão dentro da mensagem. O seu funcionamento padrão é fechar a mensagem. Caso seja habilitado o redirecionamento, após fechar a mensagem a aplicação será redirecionada. | Y ou N | button=Y
button_label | Label do botão. Esta opção só funciona caso a propriedade button habilidata | String | button=Y&button_label=OK
top | Valor para posicionamento da mensagem em pixels | Apenas numeros | top=300
left | Valor para posicionamento da mensagem em pixels | Apenas numeros | left=200
width | Valor para largura da mensagem em pixels | Apenas numeros | width=320
height | Valor da altura da mensagem em pixels | Apenas numeros | height=30
redir | Nome da aplicações ou URL para redirecionamento. Esta propriedade funciona apenas caso a propriedade button esteja habilitada. | String | button=Y&redir=form_employees.php
redir_target | Target para url de redicionamento. Esta propriedade funciona apenas quando a propriedade redir está habilitada. | String | redir=form_employees.php&redir_target=_blank
show_close | Flag para exibição do botão de fechar mensagem localizado na barra de titulo. Esta propriedade quando ativa força a exibição da barra de titulo mesmo que o parametro titulo esteja vazio. | Y ou N | show_close=Y
body_icon | Flag para exibição do icone do corpo da mensagem. Mesmo quando esta propriedade está ativa a exibição do icone depende da configuração do Tema (Esquema de exibição) usado na aplicação. | Y ou N | body_icon=N
Exemplo 01 `sc_ajax_message ("Message", "Title", "timeout=0");` Exemplo 02: Utilizando o Toast `sc_ajax_message ("Cliente", "Title", "toast=Y&toasto_pos=center-start&type=success");` Obs Para a exibição da mensagem utilizando o Toast é necessário que esta opção esteja habilitada na interface da aplicação.
Escopo da Macro
Aplicação Calendário | Aplicação Consulta | Aplicação Formulário | Aplicação Controle
ajaxFieldonBlur Onchange OnClick OnFocus | onClick | ajaxFieldonBlur Onchange OnClick OnFocus | onBlur onChange onClick onFocus

sc_ajax_refresh
Esta macro é especialmente utilizada em eventos Ajax da Consulta com o objetivo de recarregar os dados da Grid (refresh). Ex: sc_ajax_refresh();
Escopo da Macro
Aplicação Consulta
onClick

sc_alert("Mensagem", $array)
Assista um video Esta macro envia uma mensagem no estilo de alerta de Javascript (Sweetalert) ou Sweetalert2. Obs Para a exibição da mensagem utilizando a biblioteca sweetalert2, é necessário que a opção Usar SweetAlert esteja ativada na aplicação onde a macro será utilizada. Esta opção pode ser habilitada no menu Aplicação > Configuração no bloco Configurações de notificações Confira abaixo os parâmetros suportados pela macro: Mensagem: Parâmetro obrigatório que contém a mensagem que será exibida. $array: Este parâmetro é opcional na utilização da macro, mas obrigatório quando desejamos utilizar o Sweetalert2. Quando utilizado, espera receber um array com as configurações do Sweetalert2. Confira a lista de configurações aceitas pelo Sweetalert2 nesta macro:
Parâmetro | Valor | Descrição
title | Exemplo de como deve ser informada dentro do array: 'title' => 'Título' | Texto que será exibido no título do card, caso a opção toast esteja marcada como false. 'toast' => false
type | Exemplo de como deve ser informada dentro do array: 'type' => 'warning' Lista das opções aceitas: success error warning info | Define o tipo da mensagem que será exibida.
timer | Exemplo de como deve ser informada dentro do array: 'timer' => '2000' | Define o tempo em milissegundos que a mensagem será exibida.
showConfirmButton | Exemplo de como deve ser informada dentro do array: 'showConfirmButton' => false Lista das opções aceitas: True: Exibe o botão de confirmação. false: Não exibe o botão de confirmação. | Define se um botão de confirmação será exibido.
position | Exemplo de como deve ser informada dentro do array: 'position' => 'bottom-end', Lista das opções aceitas: top top-start top-end center center-start center-end bottom bottom-start bottom-end | Define a posição onde o pop-up será exibido.
toast | Exemplo de como deve ser informada dentro do array: 'toast' => true | Define se iremos ou não utilizar o toast para a exibição das mensagens. Quando ativada, esta opção não exibe o botão de confirmação.
Confira abaixo os exemplos de utilização da macro: Exemplo: Mensagem utilizando o Sweetalert `sc_alert("Esta é uma mensagem de alerta!!");` `` Exemplo: Message using Sweetalert2 `$params = array( 'title' => 'Título', 'type' => 'success', 'timer' => '2000', 'showConfirmButton' => false, 'position' => 'bottom-end', 'toast' => true ); sc_alert("Inserido com sucesso!", $params);`
Escopo da Macro
Aplicação Blank | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
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)
Essa macro é utilizada para fazer o download dos arquivos armazenados nos serviços de Storage disponíveis no Scriptcase, são eles: Google Drive, DropBox e Amazon S3. Antes de mais nada, é necessário a criação das chaves de utilização destas APIs, seja para utilização com a macro ou através da interface da ferramenta. Veja abaixo como obter as credenciais de cada uma delas. Clique aqui para saber como obter as credenciais do Google Drive Clique aqui para saber como obter as credenciais do DropBox Clique aqui para saber como obter as credenciais do Amazon S3 Veja a baixo os parâmetros em detalhes.
Parâmetro | Valor | Descrição
--- | --- | ---
profile | Exemplo de como o parâmetro deve ser informado. `'profile' => 'minha_api',` Este parâmetro aceita apenas o nome do perfil criado. Clique aqui, para ver como criar um perfil. | Devemos informar o nome do perfil criando na opção APIs no menu Ferramentas. Quando utilizado, este parâmetro carrega as configurações informadas na criação do perfil. Quando utilizado, o parâmetro settings não precisar ser informado. Veja o exemplo: Utilizando a macro com profile
settings | Exemplo de como o parâmetro deve ser informado. `'settings' => [ 'app_name' => 'scriptcase', 'gateway' => 'dropbox', 'api_key' => '', 'api_secret' => '', 'access_token' => '', ],` Obs: Para mais informações sobre o parâmetro, veja a tabela exclusive do settings abaixo, para cada uma das APIs | Recebe um array com as credenciais de acesso referentes API que será utilizada. Quando utilizado, o parâmetro profile não precisar ser informado.
file | Exemplo de como o parâmetro deve ser informado. `'file' => 'nome_do_arquivo.pdf',` Lista das opções aceitas: `{nome_do_campo}` `[variável_global]` `‘nome_do_arquivo.doc’` | Este parâmetro recebe o nome do arquivo que será baixando do servidor. O nome do arquivo deve está acompanhado de sua extensão.
destination | Exemplo de como o parâmetro deve ser informado. Utilizando um campo `'destination' => {nome_do_campo},` Informando uma String `'destination' => ‘caminho_do_arquivo/novo_nome.pdf’,` Lista das opções aceitas: `{nome_campo}` `[variável_global]` `‘String’` | Caminho local onde o arquivo será salvo após o download. Devemos informar também um nome, com o qual o arquivo será salvo e sua extensão. Obs: O nome do arquivo não precisa ser o mesmo do arquivo original.
Como visto acima, o parâmetro settings recebe um o array com as credenciais de acesso referentes API utilizada. Este parâmetro deve ser utilizado apenas quando não definimos um perfil no menu Ferramentas > API Cada API possui suas próprias configurações para o parâmetro settings, veja abaixo como cada uma deve ser configurada. ## Utilizando a macro com profile A utilização da macro com um perfil, pede a criação prévia do mesmo. Clique aqui, para ver como criar um perfil em cada uma das APIs de armazenamento disponíveis. O perfil ou profile, contém os dados para utilização da API desejada, desta forma, ao utilizar um perfil na macro não se faz necessário utilizar o parâmetro settings. O parâmetro profile aceita apenas o nome do perfil criado, para a utilização dinâmica da macro, será necessário utilizar o parâmetros settings. Exemplo de uso da macro com o profile.
    sc_api_download([
     'profile' => 'minha_api'
     'file' => {arquivo},
     'destination' => {destination},
    ]);
## Utilizando a macro com parâmetro settings O array com as credenciais de acesso que deve ser passado na parâmetro settings varia de acordo com a API utilizada. Veja abaixo como utilizar este parâmetro de acordo com cada uma das APIs disponíveis. Ao utilizar o parâmetro settings na configuração na macro, não é necessário informar um profile. ### Exemplo utilizando o parâmetro settings - API Google Drive Primeiramente, devemos ter em mãos as credenciais para a utilização da API do Google Drive, clique aqui para saber como obtê-las. Após a configuração das credenciais, veja abaixo todos os valores do array que devem ser passados no parâmetro settings utilizando a API do Google Drive. Todos os valores abaixo são obrigatórios ao utilizarmos o parâmetro settings
Índice | Valor | Descrição
--- | --- | ---
app_name | Exemplo de como o parâmetro deve ser informado. `'app_name' => 'scriptcase',` Este índice aceita apenas string | Nome da app informado na criação das credenciais de acesso.
gateway | Exemplo de como o parâmetro deve ser informado. `'gateway' => 'google_driver',` Este índice aceita apenas string | Nome do gateway para identificar a API utilizada.
json_oauth | Exemplo de como o parâmetro deve ser informado. `'json_oauth' => 'JSON',` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o conteúdo do arquivo (JSON) de autenticação gerado pelo usuário. Este arquivo deve ser baixado após a criação das credenciais no site do google.
auth_code | Exemplo de como o parâmetro deve ser informado. `'auth_code' => '5/4wHt7TBTY4MtvQ',` Lista das opções aceitas: {nome_campo} $variavel | Recebe o código auth_code, gerado após a configuração da API seguindo os passos descritos no tutorial: Como gerar o auth_code para utilização da API do Google Driver
token_code | Exemplo de como o parâmetro deve ser informado. `'token_code' => '4/4wHt7TBTY4MtvQ',` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | É possível gerar o token_code utilizando nossa macro sc_api_gc_get_obj
Exemplos de utilização da macro com o Google Drive, utilizando o parâmetro settings
    sc_api_download([
      'settings' => [
        'app_name' => {appname},
        'gateway' => 'google_drive',
        'json_oauth' => {jsonoauth},
        'auth_code' => {authcode},
        'token_code' => {tokencode},
      ],
    'file' => {arquivo},
    'destination' => {destination},
    ]);
### Utilizando A Macro Com Settings - Dropbox Primeiramente, devemos ter em mãos as credenciais para a utilização da API do Dropbox, clique aqui para saber como obtê-las. Após a configuração das credenciais, veja abaixo todos os valores do array que devem ser passados no parâmetro settings utilizando a API do Dropbox. Todos os valores abaixo são obrigatórios ao utilizarmos o parâmetro settings
Índice | Valor | Descrição
--- | --- | ---
app_name | Exemplo de como o parâmetro deve ser informado. `'app_name' => 'scriptcase',` Este índice aceita apenas string | Nome da app informado na criação das credenciais de acesso.
gateway | Exemplo de como o parâmetro deve ser informado. `'gateway' => 'google_driver',` Este índice aceita apenas string | Nome do gateway para identificar a API utilizada.
api_key | Exemplo de como o parâmetro deve ser informado. `'api_key’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app key, disponibilizado ao configurar as credenciais da API.
api_secret | Exemplo de como o parâmetro deve ser informado. `'api_secret’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app secret, disponibilizado ao configurar as credenciais da API.
Exemplos de utilização da macro com o Dropbox, utilizando o parâmetro settings
    sc_api_download([
      'settings' => [
        'gateway' => 'dropbox',
        'api_key' => {apikey},
        'api_secret' => {apisecret},
        'access_token' => {accesstoken},
      ],
    'file' => {arquivo},
    'destination' => {destination},
    ]);
### Utilizando A Macro Com Settings - Amazon S3 Devemos ter em mãos as credenciais para a utilização da API de armazenamento do Amazon S3, clique aqui para saber como obtê-las. Após a configuração das credenciais, veja abaixo todos os valores do array que devem ser passados no parâmetro settings utilizando a API da Amazon S3. Todos os valores abaixo são obrigatórios ao utilizarmos o parâmetro settings
Índice | Valor | Descrição
--- | --- | ---
app_name | Exemplo de como o parâmetro deve ser informado. `'app_name' => 'scriptcase',` Este índice aceita apenas string | Nome da app informado na criação das credenciais de acesso.
gateway | Exemplo de como o parâmetro deve ser informado. `'gateway' => 'google_driver',` Este índice aceita apenas string | Nome do gateway para identificar a API utilizada.
api_key | Exemplo de como o parâmetro deve ser informado. `'api_key’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app key, disponibilizado ao configurar as credenciais da API.
api_secret | Exemplo de como o parâmetro deve ser informado. `'api_secret’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app secret, disponibilizado ao configurar as credenciais da API.
region | Exemplo de como o parâmetro deve ser informado. `'region' => 'us-east-1',` O parâmetro region da macro aceita apenas o código da região. Para facilitar, segue link para verificação do código de cada região. https://docs.aws.amazon.com/general/latest/gr/rande.html | Recebe o código da região, o mesmo utilizado na criação das credenciais.
bucket | Exemplo de como o parâmetro deve ser informado. `'bucket' => 'bucket_name',` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o nome do bucket criado ao configurar as credenciais da API.
Exemplos de utilização da macro com o Amazon S3, utilizando o parâmetro settings
    sc_api_download([
      'settings' => [
        'app_name' => 'scriptcase',
        'gateway' => 'S3',
        'api_key' => {apikey},
        'api_secret' => {apisecret},
        'region' => {api_region},
        'bucket' => {api_bucket},
      ],
    'file' => {arquivo},
    'destination' => {destination},
    ]);
``
Escopo da Macro
Aplicação Consulta | Aplicação Formulário
onRecord | onLoad onLoadRecord

sc_api_gc_get_obj($app_name , $json_oauth, $auth_code)
A macro sc_api_gc_get_obj gera o token_code. Ela possui três parâmetros: app_name - Recebe o app_name, disponível na configuração da sua api. Este parâmetro aceita strings ou variável. json_oauth - Recebe o conteúdo do arquivo json, este arquivo está disponível para download nas configurações da sua API. Este parâmetro aceita strings ou variável auth_code - Recebe o auth_code gerado no passo anterior ou outro auth_code válido que você já tenha gerado., Para mais informações de utilização e exemplo acesse o nosso artigo na base de conhecimento: Como gerar o auth code e o token code
Escopo da Macro
Aplicação Calendário | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu
onApplicationInit onScriptInit | onScriptInit | onFilterInit | onScriptInit | onApplicationInit onScriptInit | onApplicationInit

sc_api_gc_get_url($app_name, $json_oauth)
A macro sc_api_gc_get_url gera uma URL para a autenticação do usuário da conta google utilizada para configuração da API. Ela possui dois parâmetros: app_name - Recebe o app_name, disponível na configuração da sua api. Este parâmetro aceita strings ou variável. json_oauth - Recebe o conteúdo do arquivo json, este arquivo está disponível para download nas configurações da sua api. Este parâmetro aceita strings ou variável Para mais informações de utilização e exemplo acesse o nosso artigo na base de conhecimento: Como gerar o auth code e o token code
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Aplicação Report PDF
onApplicationInit onScriptInit | onScriptInit | onScriptInit | onApplicationInit | onApplicationInit

sc_api_upload(profile, settings, file, parents)
Essa macro é utilizada para fazer o upload de arquivos na nuvem utilizando as APIs de Storage do Google, Amazon e DropBox. Antes de mais nada, é necessário a criação das chaves de utilização da API, seja com a macro ou na interface dos campos. Clique aqui para saber como obter as credenciais do Google Drive Clique aqui para saber como obter as credenciais do DropBox Clique aqui para saber como obter as credenciais do Amazon S3 Após obter as credenciais, siga com a configuração da macro. Veja abaixo a lista de parâmetros.
Paramêtros | Valor | Descrição
profile | Exemplo de como o parâmetro deve ser informado. `'profile' => 'minha_api',` Este parâmetro aceita apenas o nome do perfil criado. Clique aqui, para ver como criar um perfil. | Devemos informar o nome do perfil criando na opção APIs no menu Ferramentas. Quando utilizado, este parâmetro carrega as configurações informadas na criação do perfil. Quando utilizado, o parâmetro settings não precisar ser informado. Para mais detalhes veja Utilizando a macro com profile
settings | Exemplo de como o parâmetro deve ser informado. `'settings' => [ 'app_name' => 'scriptcase', 'gateway' => 'dropbox', 'api_key' => '', 'api_secret' => '', 'access_token' => '', ],` Obs: Para mais informações sobre o parâmetro, veja a tabela exclusive do settings abaixo, para cada uma das APIs | Recebe um array com as credenciais de acesso referentes API que será utilizada. Quando utilizado, o parâmetro profile não precisar ser informado.
file | Exemplo de como o parâmetro deve ser informado. `'file' => {upload_nome_do_arquivo},` Lista das opções aceitas: `{upload_nome_do_arquivo}` `[variável_global]` `‘String do path do arquivo’` | Este parâmetro recebe o caminho completo até o arquivo está localizado. Ao utilizar um campo, deve ser do tipo upload nome do arquivo.
parents | Exemplo de como o parâmetro deve ser informado. Utilizando um campo `'parents' => {nome_campo_texto},` Informando uma String `'parents' => ‘nome_da_pasta’,` Lista das opções aceitas: `{nome_campo_texto}` `[variável_global]` `‘Nome da pasta ou caminho local de armazenamento na nuvem’` | Diretório onde o arquivo será armazenado Quando não informado, o arquivo será armazenado na raiz do servidor de armazenamento.
Como visto acima, o parâmetro settings recebe um o array com as credenciais de acesso referentes API utilizada. Este parâmetro deve ser utilizado apenas quando não definimos um perfil no menu Ferramentas > API Cada API possui suas próprias configurações para o parâmetro settings, veja abaixo como cada uma deve ser configurada. ## Utilizando a macro com profile A utilização da macro com um perfil, pede a criação prévia do mesmo. Clique aqui, para ver como criar um perfil em cada uma das APIs de armazenamento disponíveis. O perfil ou profile, contém os dados para utilização da API desejada, desta forma, ao utilizar um perfil na macro não se faz necessário utilizar o parâmetro settings. O parâmetro profile aceita apenas o nome do perfil criado, para a utilização dinâmica da macro, será necessário utilizar o parâmetros settings. Exemplo de uso da macro com o profile.
    sc_api_upload([
        'profile' => 'minha_api',
        'file' => {arquivo},
        'parents' => 'pasta_no_drive',
    ]);
## Utilizando a macro com parâmetro settings O array com as credenciais de acesso que deve ser passado na parâmetro settings varia de acordo com a API utilizada. Veja abaixo como utilizar este parâmetro de acordo com cada uma das APIs disponíveis. Ao utilizar o parâmetro settings na configuração na macro, não é necessário informar um profile. ### ### Utilizando a macro com settings - API Google Drive Primeiramente, devemos ter em mãos as credenciais para a utilização da API do Google Drive, clique aqui para saber como obtê-las. Após a configuração das credenciais, veja abaixo todos os valores do array que devem ser passados no parâmetro settings utilizando a API do Google Drive. Todos os valores abaixo são obrigatórios ao utilizarmos o parâmetro settings
Índice | Valor | Descrição
app_name | Exemplo de como o parâmetro deve ser informado. `'app_name' => 'scriptcase',` Este índice aceita apenas string | Nome da app informado na criação das credenciais de acesso.
gateway | Exemplo de como o parâmetro deve ser informado. `'gateway' => 'google_driver',` Este índice aceita apenas string | Nome do gateway para identificar a API utilizada.
json_oauth | Exemplo de como o parâmetro deve ser informado. `'json_oauth' => 'JSON',` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o conteúdo do arquivo (JSON) de autenticação gerado pelo usuário. Este arquivo deve ser baixado após a criação das credenciais no site do google.
auth_code | Exemplo de como o parâmetro deve ser informado. `'auth_code' => '5/4wHt7TBTY4MtvQ',` Lista das opções aceitas: {nome_campo} $variavel | Recebe o código auth_code, gerado após a configuração da API seguindo os passos descritos no tutorial Como gerar o auth_code para utilização da API do Google Driver
token_code | Exemplo de como o parâmetro deve ser informado. `'token_code' => '4/4wHt7TBTY4MtvQ',` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | É possível gerar o token_code utilizando nossa macro sc_api_gc_get_obj
Exemplos de utilização da macro com o Google Drive, utilizando o parâmetro settings
    sc_api_upload([
        'settings' => [
            'app_name' => 'scriptcase',
            'gateway' => 'google_drive',
            'json_oauth' => '',
            'auth_code' => '',
            'token_code' => '',
        ],
        'file' => {arquivo},
        'parents' => '',
    ]);
### Utilizando a macro com settings - Dropbox Primeiramente, devemos ter em mãos as credenciais para a utilização da API do Dropbox, clique aqui para saber como obtê-las. Após a configuração das credenciais, veja abaixo todos os valores do array que devem ser passados no parâmetro settings utilizando a API do Dropbox. Todos os valores abaixo são obrigatórios ao utilizarmos o parâmetro settings
Índice | Valor | Descrição
app_name | Exemplo de como o parâmetro deve ser informado. `'app_name' => 'scriptcase',` Este índice aceita apenas string | Nome da app informado na criação das credenciais de acesso.
gateway | Exemplo de como o parâmetro deve ser informado. `'gateway' => 'google_driver',` Este índice aceita apenas string | Nome do gateway para identificar a API utilizada.
api_key | Exemplo de como o parâmetro deve ser informado. `'api_key’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app key, disponibilizado ao configurar as credenciais da API.
api_secret | Exemplo de como o parâmetro deve ser informado. `'api_secret’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app secret, disponibilizado ao configurar as credenciais da API.
Exemplos de utilização da macro com o Dropbox, utilizando o parâmetro settings
    sc_api_upload([
        'settings' => [
            'app_name' => 'scriptcase',
            'gateway' => 'dropbox',
            'api_key' => '',
            'api_secret' => '',
            'access_token' => '',
        ],
        'file' => {arquivo},
        'parents' => '',
    ]);
### Utilizando a macro com settings - Amazon S3 Devemos ter em mãos as credenciais para a utilização da API de armazenamento do Amazon S3, clique aqui para saber como obtê-las. Após a configuração das credenciais, veja abaixo todos os valores do array que devem ser passados no parâmetro settings utilizando a API da Amazon S3. Todos os valores abaixo são obrigatórios ao utilizarmos o parâmetro settings
Índice | Valor | Descrição
app_name | Exemplo de como o parâmetro deve ser informado. `'app_name' => 'scriptcase',` Este índice aceita apenas string | Nome da app informado na criação das credenciais de acesso.
gateway | Exemplo de como o parâmetro deve ser informado. `'gateway' => 'google_driver',` Este índice aceita apenas string | Nome do gateway para identificar a API utilizada.
api_key | Exemplo de como o parâmetro deve ser informado. `'api_key’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app key, disponibilizado ao configurar as credenciais da API.
api_secret | Exemplo de como o parâmetro deve ser informado. `'api_secret’ => {nome_campo},` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o app secret, disponibilizado ao configurar as credenciais da API.
region | Exemplo de como o parâmetro deve ser informado. `'region' => 'us-east-1',` O parâmetro region da macro aceita apenas o código da região. Para facilitar, segue link para verificação do código de cada região. https://docs.aws.amazon.com/general/latest/gr/rande.html | Recebe o código da região, o mesmo utilizado na criação das credenciais.
bucket | Exemplo de como o parâmetro deve ser informado. `'bucket' => 'bucket_name',` Lista das opções aceitas: ‘string’ {nome_campo} $variavel | Recebe o nome do bucket criado ao configurar as credenciais da API.
Exemplos de utilização da macro com o Amazon S3, utilizando o parâmetro settings
    sc_api_upload([
        'settings' => [
            'app_name' => 'scriptcase',
            'gateway'  => 'S3',
            'api_key' => '',
            'api_secret' => '',
            'region' => '',
            'bucket' => '',
        ],
        'file' => {arquivo},
        'parents' => '',
    ]);
Escopo da Macro
Aplicação Formulário | Aplicação Controle
onAfterDelete onAfterUpdateAll onBeforeInsertAll onValidate | onValidate

sc_apl_conf("Aplicação", "Propriedade", "Valor")
Assista um video Esta macro permite alterar as propriedades de execução das aplicações, mudando sua forma de execução em relação ao inicialmente previsto. Desta forma, podemos forçar que um formulário inicie no modo de inclusão, ou uma consulta inicie pelo filtro, etc. Esta macro deve ser utilizada, por uma aplicação, para modificar as propriedades de uma outra aplicação. Propriedades para aplicações de Formulário
Propriedade | Valor | Descricao
start | new | Força o formulário a iniciar no modo de inclusão de novo registro.
insert | on/off | Habilita (on) ou desabilita (off) o botão para a inclusão de novos registros.
update | on/off | Habilita (on) ou desabilita (off) o botão para a alteração de registros.
delete | on/off | Habilita (on) ou desabilita (off) o botão para a exclusão de registros.
field_display_off | campo | Desabilita a exibição de um campo.
field_display_on | campo | Habilita a exibição de um campo.
field_readonly | campo | Força um campo para ser exibido como "readonly".
rows |  | Força a quantidade de linhas por página. (apenas para formulários de múltiplas linhas)
rows_ins |  | Força a quantidade de linhas de inclusão. (apenas para formulários de múltiplas linhas)
Propriedades para aplicações de Consulta
Propriedade | Valor | Descricao
start | filter | Força a consulta a iniciar pelo filtro.
cols |  | Força a quantidade de colunas (consultas tipo vertical e slide)
rows |  | Força a quantidade de linhas por página
lig_edit | on/off | Habilita (on) ou desabilita (off) o botão de edição do registro (lapis)
Propriedades para todas as aplicações
Propriedade | Valor | Descricao
exit | apl/url | Força a saida da aplicação para a "aplicação" ou "url" informada.
Ex. 1: Forçar a aplicação "meu_formulario" a iniciar no modo de inclusão. sc_apl_conf("meu_formulario", "start", "new"); Ex. 2: Não permite que a aplicação "meu_formulario" faça inclusão de novos registros. sc_apl_conf("meu_formulario", "insert", "off"); Ex. 3: Exibe "meu_campo", da aplicação "meu_formulario", dinamicamente. sc_apl_conf("meu_formulario", "field_display_off", "meu_campo"); Ex. 4: Forçar a aplicação "minha_consulta" a iniciar pelo filtro. sc_apl_conf("minha_consulta", "start", "filter"); Ex. 5: Forçar a aplicação "minha_consulta" a exibir 20 linhas. sc_apl_conf("minha_consulta", "rows", "20"); Ex. 6: Forçar a saida da aplicação "minha_consulta" para a aplicação "outra_consulta". sc_apl_conf("minha_consulta", "exit", "outra_consulta"); Ex. 7: Uso do botão da barra de ferramentas do menu. if ({sc_menu_item} == "btn_1") { sc_apl_conf("form_customer", "start", "new"); }
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | 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("aplicacao", "tipo");
Essa macro tem como objetivo permitir que o desenvolvedor defina o que ocorrerá quando a aplicação perder a sessão. A macro possui os seguintes parâmetros: Apl: Aqui é necessário informar para qual aplicação a macro irá redirecionar após perder a sessão. Tipo: Aqui iremos informar o tipo de redirecionamento que irá ocorrer, há dois tipos: R: A aplicação irá apenas redirecionar para a aplicação inicial. M: Será mostrada uma mensagem antes do redirecionamento. Ex: Em uma aplicação de login, definida como aplicação inicial, podemos definir que essa aplicação será para a qual iremos redirecionar. sc_apl_default("app_login","R")
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onCalendarScriptInit onScriptInit | onScriptInit | onScriptInit | onFilterInit | onScriptInit | onScriptInit | onScriptInit

sc_apl_status("Aplicação", "Status")
Esta macro tem por objetivo proteger ou liberar a utilização das aplicações, quando utilizado o modulo de segurança. Assim, em função do "Login" do usuário, podem ser determinadas as aplicações que o mesmo pode ou não acessar. Aplicação: É o nome ou a variável que contenha o nome da aplicação a ser ativada/desativada. Status: É o valor ou a variável que contenha o valor a ser atribuído à aplicação. Os valores são: "on" para ativar e "off" para desativar. Ex. 1: sc_apl_status ('atu_cad', 'off'); Ex. 2: sc_apl_status ({var_nome_apl}, {var_status});
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit 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_Nome", "Id_Item", "Id_Pai", "Label", "Aplicação", "Parâmetro", "Icone", "Hint", "Target")
Adiciona um item dinamicamente a uma aplicação de menu. Só é possível utilizar esta macro quando já existe um array gerado com a macro sc_appmenu_create antes.
Parametro | Descrição
Menu_Nome | Nome da aplicação de menu
Id_Item | Código identificador do item do menu
Id_Pai | Código identificador do pai do item do menu. Se o item for raiz o valor para esse parametro deve ser passado em branco.
Label | Descrição para o item do menu
Aplicação | Nome da aplicação ou URL para o item do menu
Parâmetro | String de parametros a serem passado a aplicação do item do menu. Ex.: param1=valor;param2=valor
Icone | Caminho para icone usado no item do menu
Hint | Hint descritivo para o item do menu.
Target | Target para o link do item do menu. ("_self" para a mesma janela, "_blank" para outra janela e "_parent" para sair da janela)
Ex. 1: Cria um menu com nome de menu_main. sc_appmenu_create('menu_main'); Ex. 2: Adiciona ao menu 'menu_main' no lugar do item 1, o submenu Categoria. sc_appmenu_add_item('menu_main','item_1','','Categoria',''); Ex. 3: Addiciona ao menu_main de ID item_1, o form_categoria com o nome de Catergoria passando alguns parâmetros sc_appmenu_add_item('menu_main','item_2','item_1','Categoria','form_categoria','param1=valor;param2=valor');
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_create("Menu_Nome")
Esta macro inicia o array para montagem dinâmica de uma aplicação de menu. Deve ser informado o nome da aplicação de menu como parâmetro. Esta macro deve ser usada em eventos do controle ou no evento onload do menu. Ex. 1: sc_appmenu_create('menu_main');
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_exist_item("Menu_Nome", "Id_Item")
Verifica se um item do menu existe e retorna um valor true ou false.
Parâmetro | Descrição
Menu_Nome | Nome da aplicação de menu
Id_Item | Código identificador do item do menu
Ex. 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'); }
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_remove_item("Menu_Nome", "Id_Item")
Remove dinamicamente um item do menu. Para utilizar esta macro é necessário que a macro sc_appmenu_create seja executa antes da mesma.
Parâmetro | Descrição
Menu_Nome | Nome da aplicação de menu
Id_Item | Código identificador do item do menu
Ex. 1: sc_appmenu_remove_item('menu_main','item_2');
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_reset("Menu_Nome")
Esta macro limpa o array para montagem dinâmica de uma aplicação menu. Deve ser informado o nome da aplicação de menu como parâmetro. Ex. 1: sc_appmenu_reset('menu_main');
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_appmenu_update_item("Menu_Nome", "Id_Item", "Id_Pai", "Label", "Aplicação", "Parâmetro", "Icone", "Hint", "Target")
Atualiza um item dinâmicamente a uma aplicação de menu. Só é possível utilizar esta macro quando já existe um array gerado com a macro sc_appmenu_create antes. Só é possível utilizar esta macro nos itens que tenham sido criados com a macro sc_appmenu_add_item antes.
Parâmetro | Descrição
Menu_Nome | Nome da aplicação de menu.
Id_Item | Código identificador do item do menu.
Id_Pai | Código identificador do pai do item do menu. Se o item for raiz o valor para esse parametro deve ser passado em branco.
Label | Descrição para o item do menu.
Aplicação | Nome da aplicação ou URL para o item do menu.
Parâmetro | String de parametros a serem passado a aplicação do item do menu. Ex.: param1=valor;param2=valor
Icone | Caminho para icone usado no item do menu.
Hint | Hint descritivo para o item do menu.
Target | Target para o link do item do menu.
Ex. 1: sc_appmenu_update_item('menu_main','item_2','item_1','Category Form','form_category');
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_begin_trans("Conexão")
Assista um video Essa macro inicia um conjunto de transações no banco de dados. Para a utilização dessa macro é necessário o uso de um banco de dados transacional. Nas aplicações de fomulário, os eventos (onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate or onBeforeDelete) são automaticamente protegidos por um controle de transação, desde que a conexão seja a mesma da aplicação. Em outros casos, caso o usuário deseja fazer um controle de transação, ele precisa iniciar o código com a macro e após a finalização utilizar a macro sc_commit_trans() para confirmar a atualização ou o sc_rollback_trans() para cancelar a transação. O parâmetro "conexão" é opcional, necessário apenas se o comando é executado em uma base diferente da utilizada na aplicação.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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(Nome do bloco, on/off)
Permite, dinamicamente, exibir ou não os campos de um determinado bloco. Em princípio, todos os blocos são exibidos (condição "on"). Ex 1: if ({tipo_cliente} == "fisica") { sc_block_display(juridica, off); } else { sc_block_display(fisica, off); } Ex 2: Utilizando variável local como segundo parâmetro $var = "off"; sc_block_display(juridica, $var); Obs: No caso de consultas, esta macro só funciona para a orientação "slide".
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle
onAfterInsert onAfterUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onScriptInit | onScriptInit onRecord | onAfterDeleteAll onAfterInsert onAfterInsertAll onAfterUpdate onAfterUpdateAll onScriptInit onLoad onNavigate onLoadRecord onRefresh onValidate onValidateFailure onValidateSuccess | onClick onScriptInit onLoadAll onRefresh

sc_btn_copy
Assista um video Quando o botão "Copiar" é clicado, esta macro é disponibilizada, podendo ser testado e utilizado dentro dos eventos, permitindo a tomada de decisões em tempo real de execução. Ex. 1: if (sc_btn_copy) { sc_error_message("Registro foi copiado com sucesso"); }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onScriptInit onLoad | onScriptInit onLoad

sc_btn_delete
Quando um dos botões da barra de ferramentas de um formulário (novo, atualizar, excluir ou incluir) são clicados, esta macro é disponibilizada, podendo ser testado e utilizado dentro dos eventos, permitindo a tomada de decisões em tempo real de execução. Ex. 1: if (sc_btn_delete) { sc_error_message("Impossivel excluir este registro"); }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onValidate onValidateFailure onValidateSuccess | onValidate onValidateFailure onValidateSuccess

sc_btn_disable('id do botão', 'on/off')
Esta macro é utilizada para desabilitar ou habilitar botões da aplicação de Menu. Ex: sc_btn_disable('btn_2', 'off');
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onLoad

sc_btn_disabled("nome_botao", "status")
Assista um video Esta macro tem o objetivo de habilitar ou desabilitar, dinamicamente, um botão da barra de ferramentas. Ela possui dois parâmetro obrigatórios:
Parâmetro | Valor | Descrição
--- | --- | ---
nome_botao | O valor deve ser informado utilizando variáveis ou em formato de string, com aspas duplas ou simples. Em negrito, segue o exemplo de como o parâmetro deve ser informado: sc_btn_disabled('update', 'off'); Obs: O nome dos botões devem está todo em minúsculo. | Este parâmetro define o botão que terá sua exibição alterada. Os nomes dos botões estão disponíveis na tabela abaixo, separado por aplicação. Consulta/Gráfico Formulário/Calendário Controle
status | Assim como o nome do campo, o parâmetro aceita apenas string, protegido com aspas simples ou duplas. Em negrito, segue o exemplo de como o parâmetro deve ser informado: sc_btn_disabled('update', 'off'); | Este parâmetro define se o botão está habilitado, quando definido como on, ou desabilitado se definido como off Valores aceitos no parâmetro: on - O botão aparece desabilitado; off - O botão aparece habilitado;
Clique aqui e veja exemplos de utilização da macro. #### Nome dos botões da consulta
Nome do Botão | Descrição
--- | ---
first | Navega para o início da consulta.
back | Navega para a página anterior.
forward | Navega para a página seguinte.
last | Navega para a última página.
filter | Controla a exbição do botão "Filtro" na grid.
pdf | Gera o PDF colorido da consulta.
det_pdf | Gera o PDF no detalhe.
pdfbw | Gera o PDF preto e branco da consulta.
xls | Gera o XLS.
xml | Gera o XML.
csv | Gera o CSV.
rtf | Gera o RTF.
word | Gera o Word.
json | Gera o JSON.
print | Abre a consulta no formato de impressão.
det_print | Abre o detalhe no formato de impressão.
summary | Controla a exibição do botão "Resumo" na grid.
new | Controla a exibição do botão "Novo" possibilitando a inclusão de novos registros. (se a aplicação tiver link para tal, ou se o formulário estiver rodando em iframe da consulta)
insert | Controla a exibição do botão "Inserir". (apenas em casos de formulário rodando em iframe da consulta)
update | Controla a exibição do botão "Atualizar". (apenas em casos de formulário rodando em iframe da consulta)
delete | Controla a exibição do botão "Delete". (apenas em casos de formulário rodando em iframe da consulta)
groupby | Controla a exibição do botão "Quebras".
dynsearch | Controla a exibição do botão "Filtro dinâmico".
gridsave | Controla a exibição do botão "Salvar Grid".
sel_col | Botão de selecionar colunas
sort_col | Botão de Ordenação
#### Nome dos botões das aplicações de Calendário e Formulário
Nome do Botão | Descrição
first | Navega para o primeiro registro do formulário.
back | Navega para o registro anterior.
forward | Navega para o registro seguinte.
last | Navega para o último registro formulário.
new | Controla a exibição do botão "Novo" em um formulário, usado em off o formulário é iniciado em modo de inclusão.
insert | Controla a exibição do botão "Incluir".
update | Controla a exibição do botão "Atualizar".
delete | Controla a exibição do botão "Excluir".
copy | Controla a exibição do botão "Copiar".
dynsearch | Controla a exibição do botão "Filtro dinâmico".
pdf | Gera documento PDF a partir do formulário.
print | Abre o formulário no modo de impressão.
#### Nome dos botões do Controle
Nome do Botão | Descrição
ok | Controla a exibição do botão "Ok" em um controle.
exit | Controla a exibição do botão "Sair".
facebook | Controla a exibição do botão "Facebook".
twitter | Controla a exibição do botão "Twitter"
google | Controla a exibição do botão "Google+"
paypal | Controla a exibição do botão "PayPal"
Exemplo: Habilitando botão delete apenas para o usuário admin com aspas. if ( [user_login] == 'admin' ) { sc_btn_disabled('delete', 'on'); } else { sc_btn_disabled('delete', 'off'); } Exemplo: Utilizando variáveis. Obs: Podem ser utilizadas variáveis globais ou locais. if ( [user_login] == 'admin' ) { sc_btn_disabled([btn_name], [status]); } else { sc_btn_disabled([btn_name], [status]); }
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação 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("Nome_Botao", "on/off")
Usado dentro dos eventos, podem ser ativados ou desativados os botões da barra de ferramentas. Nome_botao: É o nome ou a variável que contenha o nome do botão a ser ativado/desativado. Nome dos botões (consulta):
Nome do Botão | Descrição
first | Navega para o início da consulta.
back | Navega para a página anterior.
forward | Navega para a página seguinte.
last | Navega para a última página.
filter | Controla a exibição do botão "Filtro" na grid.
pdf | Gera o PDF colorido da consulta.
det_pdf | Gera o PDF no detalhe.
pdfbw | Gera o PDF preto e branco da consulta.
xls | Gera o XLS.
xml | Gera o XML.
csv | Gera o CSV.
rtf | Gera o RTF.
word | Gera o Word.
json | Gera o JSON.
print | Abre a consulta no formato de impressão.
det_print | Abre o detalhe no formato deimpressão.
summary | Controla a exibição do botão "Resumo" na grid.
new | Controla a exibição do botão "Novo" possibilitando a inclusão de novos registros. (se a aplicação tiver link para tal, ou se o formulário estiver rodando em iframe da consulta)
insert | Controla a exibição do botão "Inserir". (apenas em casos de formulário rodando em iframe da consulta)
update | Controla a exibição do botão "Atualizar". (apenas em casos de formulário rodando em iframe da consulta)
delete | Controla a exibição do botão "Delete". (apenas em casos de formulário rodando em iframe da consulta)
groupby | Controla a exibição do botão "Quebras".
dynsearch | Controla a exibição do botão "Filtro dinâmico".
gridsave | Controla a exibição do botão "Salvar Grid".
sel_col | Botão de selecionar colunas
sort_col | Botão de Ordenação
Nome dos botões (Formulário):
Nome do Botão | Descrição
first | Navega para o primeiro registro do formulário.
back | Navega para o registro anterior.
forward | Navega para o registro seguinte.
last | Navega para o último registro formulário.
new | Controla a exibição do botão "Novo" em um formulário, usado em off o formulário é iniciado em modo de inclusão.
insert | Controla a exibição do botão "Incluir".
update | Controla a exibição do botão "Atualizar".
delete | Controla a exibição do botão "Excluir".
copy | Controla a exibição do botão "Copiar".
qsearch | Controla a exibição do botão "Quick Search".
dynsearch | Controla a exibição do botão "Filtro dinâmico".
pdf | Gera documento PDF a partir do formulário.
print | Abre o formulário no modo de impressão.
Nome dos botões (Controle):
Nome do Botão | Descrição
ok | Controla a exibição do botão "Ok" em um controle.
exit | Controla a exibição do botão "Sair".
facebook | Controla a exibição do botão "Facebook".
twitter | Controla a exibição do botão "Twitter"
google | Controla a exibição do botão "Google+"
paypal | Controla a exibição do botão "PayPal"
OBS. Os nomes dos botões devem estar todo em minusculo. Ex. 1: sc_btn_display ('new', 'off'); Ex. 2: Usando variável local como segundo parâmetro $var = "off"; sc_btn_display ('new', $var); Ex. 3: Ao passarmos variáveis ou campos ({campo} ou [variavel_global]) como parâmetros não se faz necessário o uso de aspas duplas ou simples antes e depois da variável. sc_btn_display ({variavel_botao}, 'off');
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação 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
Quando o botão "Inserir" é clicado, esta macro é disponibilizada, podendo ser testado e utilizado dentro dos eventos, permitindo a tomada de decisões em tempo real de execução. Ex. 1: if (sc_btn_insert) { sc_error_message("Registro incluido com sucesso"); }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onValidate onValidateFailure onValidateSuccess | onValidate onValidateFailure onValidateSuccess

sc_btn_label("nome_botao", "nova_label")
Assista um video Esta macro serve para alterar dinamicamente a label dos botões, sejam eles criados pelo desenvolvedor ou próprios do Scriptcase. Para isso, é necessário informar dois parâmetros obrigatórios, `'btn_name'` e `'new_label'`.
Parâmetro | Valor | Descrição
--- | --- | ---
btn_name | O parâmetro pode ser informado utilizando variáveis(Global ou Local) ou string(Utilizando Aspas Duplas ou simples) Em negrito, segue o exemplo de como o parâmetro deve ser informado: `sc_btn_label('update', 'Atualizar Registro');` Valores aceitos no parâmetro: String - Protegida por aspas simples ou duplas. Ex.: `'update'` Variáveis - Locais ou globais. Ex.: `$btn_update` | Recebe o nome do botões que terá a label alterada. Os nomes dos botões, que são automaticamente criados pelo Scriptcase, estão disponíveis abaixo, separado por aplicação. Consulta/Gráfico Formulário/Calendário Controle
new_label | O parâmetro pode ser informado utilizando variáveis(Global ou Local) ou string(Utilizando Aspas Duplas ou simples) `sc_btn_label('update', 'Atualizar Registro');` Valores aceitos no parâmetro: String - Protegida por aspas simples ou duplas. Ex.: `'Atualizar Registro'` Variáveis - Locais ou globais. Ex.: `$new_label` Lang - variável lang. Ex.: `{lang_btn_label}` | Este parâmetro recebe a nova label do botão informado no parâmetro anterior. Além de string e variável é possível utilizar também uma lang para a definição da label, possibilitando a tradução internacionalização da sua aplicação.
Clique aqui e veja exemplos de utilização da macro. Nome dos botões da Consulta e do Gráfico
Nome do Botão | Descrição
--- | ---
first | Navega para o início da consulta.
back | Navega para a página anterior.
forward | Navega para a página seguinte.
last | Navega para a última página.
filter | Controla a exibição do botão "Filtro" na grid.
pdf | Gera o PDF colorido da consulta.
det_pdf | Gera o PDF no detalhe.
pdfbw | Gera o PDF preto e branco da consulta.
xls | Gera o XLS.
xml | Gera o XML.
csv | Gera o CSV.
rtf | Gera o RTF.
word | Gera o Word.
json | Gera o JSON.
print | Abre a consulta no formato de impressão.
det_print | Abre o detalhe no formato de impressão.
summary | Controla a exibição do botão "Resumo" na grid.
new | Controla a exibição do botão "Novo" possibilitando a inclusão de novos registros. Obs: Se a aplicação tiver link para tal, ou se o formulário estiver rodando em iframe da consulta
insert | Controla a exibição do botão "Inserir". Obs: Apenas em casos de formulário rodando em iframe da consulta
update | Controla a exibição do botão "Atualizar". Obs: Apenas em casos de formulário rodando em iframe da consulta
delete | Controla a exibição do botão "Delete". Obs: Apenas em casos de formulário rodando em iframe da consulta
groupby | Controla a exibição do botão "Quebras".
dynsearch | Controla a exibição do botão "Filtro dinâmico".
gridsave | Controla a exibição do botão "Salvar Grid".
sel_col | Botão de selecionar colunas
sort_col | Botão de Ordenação
Nome dos botões do Formulário e do Calendário
Nome do Botão | Descrição
--- | ---
first | Navega para o primeiro registro do formulário.
back | Navega para o registro anterior.
forward | Navega para o registro seguinte.
last | Navega para o último registro formulário.
new | Controla a exibição do botão "Novo" em um formulário, usado em off o formulário é iniciado em modo de inclusão.
insert | Controla a exibição do botão "Incluir".
update | Controla a exibição do botão "Atualizar".
delete | Controla a exibição do botão "Excluir".
copy | Controla a exibição do botão "Copiar".
dynsearch | Controla a exibição do botão "Filtro dinâmico".
pdf | Gera documento PDF a partir do formulário.
print | Abre o formulário no modo de impressão.
Nome dos botões da Controle
Nome do Botão | Descrição
ok | Controla a exibição do botão "Ok" em um controle.
exit | Controla a exibição do botão "Sair".
facebook | Controla a exibição do botão "Facebook".
twitter | Controla a exibição do botão "Twitter"
paypal | Controla a exibição do botão "PayPal"
Exemplo: Parâmetro com string
    sc_btn_label('update', 'Atualizar Registro');
Exemplo: Parâmetro com lang
    sc_btn_label("update", {lang_btn_label});
Exemplo: Parâmetro com variável Global
    [btn_name] = "update";
    [label] = "update";
    sc_btn_label([btn_name], [label]);
Exemplo: Parâmetro com variável local
    $btn_name = "update";
    $label= "update";
    sc_btn_label($btn_name, $label);
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação 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
Quando o botão "Novo" é clicados, esta macro é disponibilizada, podendo ser testado e utilizado dentro dos eventos, permitindo a tomada de decisões em tempo real de execução. Ex. 1: if (sc_btn_new) { {Minha_Data} = date('Y/m/d'); }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onLoad | onLoad

sc_btn_update
Quando o botão "Alterar" é clicado, esta macro é disponibilizada, podendo ser testada e utilizada dentro dos eventos, permitindo a tomada de decisões em tempo real de execução. Ex. 1: if (sc_btn_update) { sc_error_message("Registro alterado com sucesso!"); }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onValidate onValidateFailure onValidateSuccess | onValidate onValidateFailure onValidateSuccess

sc_calc_dv(Dígito, Resto, Valor, Módulo, Pesos, Tipo)
Assista um video Esta macro tem por objetivo o cálculo de dígitos verificadores.
Parâmetro | Descrição
Dígito | Variável na qual será retornado o dígito calculado.
Resto | Variável na qual será retornado o "resto" da divisão do cálculo do dígito.
Valor | Valor ou Variável sobre o qual será calculado o dígito.
Módulo | Valor ou Variável contendo o módulo a ser utilizado. Se omitido será assumido o módulo "11".
Pesos | Valor ou Variável contendo os pesos a serem utilizados. Se omitido serão assumidos os valores "98765432".
Tipo | Valor ou Variável contendo o tipo de cálculo das parcelas a ser utilizado, sendo: 1 para soma normal dos valores das parcelas e 2 para soma de cada algarismo das parcelas. Se omitido será assumido o tipo "1".
Ex. 1: sc_calc_dv({meu_dig}, {meu_resto}, 1234567, 11, 98765432, 1); Calculo parcelas: 7x2= 14 ; 6x3=18 ; 5x4=20 ; 4x5=20 ; 3x6=18 ; 2x7=14 ; 1x8=8 Soma parcelas : 14+18+20+20+18+14+8 = 112 Resto da divisao de 112 / 11 = 2 Dígito : 11 - 2 = 9 Ex. 2: sc_calc_dv({meu_dig}, {meu_resto}, 1234567, 10, 12, 2); Calculo parcelas: 7x2= 14 ; 6x1=6 ; 5x2=10 ; 4x1=4 ; 3x2=6 ; 2x1=2 ; 1x2=2 Soma parcelas : 1+ 4+6+1+0+4+6+2+2 = 26 Resto da divisao de 26 / 10 = 6 Dígito : 10 - 6 = 4
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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)
Esta macro possibilita a utilização das APIs integradas ao Scriptcase nos eventos das aplicações. Ela pode ser utilizada com um Perfil de API criado na interface ou informando as credenciais da API no evento. Confira abaixo os parâmetros da macro: ## Detalhe dos Parâmetros
Parâmetros | Sintaxe | Descrição
`profile` | O nome do botão do perfil pode ser informado utilizando aspas duplas, aspas simples ou variável. Exemplo: Utilização da macro com um nome de perfil. `sc_call_api('nome_do_perfil');` Exemplo: Utilização da macro com o valor vazio // Neste caso o parâmetro `$array_settings` torna-se obrigatório. `sc_call_api("", $array_settings);` | Este parâmetro é obrigatório. Ele recebe o nome do perfil configurado no menu "ferramentas > API" É possível também passar o valor vazio, neste caso, o parâmetro `$array_settings` torna-se obrigatório.
`settings` | Este parâmetro recebe um array com as credenciais da API utilizada, caso o parâmetro `profile` esteja vazio. Exemplo: Utilização da macro com o parâmetro settings `$arr_settings = array( 'settings' => ['gateway' => 'mandrill', 'api_key'=> {api_key}] );` `sc_call_api("", $arr_settings);` | Este parâmetro é opcional, e deve ser utilizado apenas se o parâmetro `profile` receber um valor vazio. Neste caso o parâmetro `settings` torna-se obrigatório já que contém os dados de acesso e credenciais da API utilizada.
## APIs Esta macro pode ser utilizada com todas as APIs disponíveis no Scriptcase. Confira abaixo a lista de APIs disponíveis.
Categorias | Gateways
--- | ---
Email | SMTP | Mandrill | Amazon SES |  |
SMS | Twilio | Plivo | Clickatell |  |
Pagamento | Paypal | Pagseguro | MercadPago | Braintree | Stripe
WhatsApp | Chatapi |  |  |  |
Armazenamento | Google Drive | Dropbox | Amazon S3 |  |
Autenticação | Google Authenticador |  |  |  |
Relatórios | Google Sheets |  |  |  |
## Exemplos Confira abaixo alguns exemplos de utilização da macro com o parâmetro `settings`. Exemplo de utilização básica da macro com o Mandrill
    $settings = array( 'settings' => ['gateway' => 'mandrill', 'api_key'=> {api_key}]);
    $mandrill = sc_call_api('', $settings);
Exemplo 2 - Envio de e-mail utilizando o mandrill.
    $txt_no_tags = strip_tags({msg});

    $arr_merge = array(
                     'name'  => '',
                     'type'  => 'to',
                     'email' => 'exemplo@exemplo.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'                          => {msg},
                    '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;
    $retorno = $mandrill->messages->send($var_msg, $async);
Exemplo 3 - Enviando SMS utilizando clickatell.
    $var_config     = array(
      'message'     => [
        'to'      => {sms_to},
        'message'     => {sms_txt},
        ],
        'settings'    => [
        'gateway'   => {gateway},
        'auth_token'  => {auth_token},
        ]
    );

    sc_send_sms($var_config);
Exemplo 4 - Usando a macro com PagSeguro
      $arr_settings = [
                'gateway' => 'pagseguro',
                'environment' => 'sandbox',
                'auth_email' => 'exemplo@gmail.com',
                'auth_token' => '72AE21503DDA4840BE1DC7945F6D1CE1'
                     ];
    sc_call_api('',$arr_settings);
Exemplo 5 - Usando a macro com PayPal
      $arr_settings = [
                'gateway' => 'paypal',
                'environment' => 'sandbox',
                'auth_email' => 'exemplo@gmail.com',
                'auth_token' => '72AE21503DDA4840BE1DC7945F6D1CE1'
                     ];
    sc_call_api('',$arr_settings);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Aplicação Menu árvore | Aplicação Report PDF
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 dinamicamente a exibição ou não do captcha/recaptcha configurado na aplicação. Para o uso da macro é necessário que a aplicação esteja previamente configurada com o recurso. #### Exemplo
    if ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) {

        sc_captcha_display("on");

    } else {

        sc_captcha_display("off");

    }
Escopo da Macro
Aplicação Formulário | Aplicação Controle
onScriptInit onLoad | onScriptInit onLoadAll

sc_changed({Nome_Campo})
Assista um video Esta macro tem por objetivo verificar se houve alteração em determinado campo do formulário. Ex. 1: if (sc_changed({Nome_Campo})) { Echo "O campo foi modificado"; }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onBeforeUpdate onValidate onValidateFailure onValidateSuccess | onBeforeUpdate onValidate onValidateFailure onValidateSuccess | onRefresh

sc_change_connection("Conexao_Antiga", "Conexao_Nova")
Assista um video Esta macro troca dinamicamente as conexões das aplicações Ex. 1: Trocar as conexões : `sc_change_connection("Conexão_Antiga01", "Conexão_Nova01" ; "Conexão_Antiga02", "Conexão_Nova02");` É possível alterar mais de uma conexão com o mesmo comando, usando o separador ";". Ex. 2: Utilizando variáveis: `sc_change_connection([Conexão_Global], [Nova_Conexão]);` As trocas só têm efeito nas aplicações seguintes. Ex. 3: Alterando a conexão principal da aplicação: `sc_change_connection({Senha}, [Teste] ; "Minha_Conexão", [Global_Conexão]);` As trocas só têm efeito nas aplicações seguintes. Ex. 4: Para apagar as trocas feitas: Para retornar as configurações realizadas com a macro utilize sc_reset_change_connection();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onExecute | onScriptInit onLoad | onHeader onScriptInit | onApplicationInit onScriptInit | onScriptInit onLoad onLoadRecord | onScriptInit onLoadAll | onHeader onScriptInit onRecord

sc_change_css("nome_atributo", "valor", "nome_campo")
Esta macro permite manipular propriedades CSS dos campos e linhas da consulta. Desta forma é possível alterar o visual da aplicação dinamicamente e com muito mais opções de alteração. ## Lista de Parâmetros
parâmetros | valores dos parâmetros | Descrição
`nome_atributo` | Este parâmetro recebe o nome do atributo css que será alterado, que deve ser informado utilizando aspas duplas, aspas simples. Neste parámetro é possível utilizar o atributo `sc_badge` que aplica um css pre-defindo ao texto. Exemplo com atributo color `sc_change_css('color', '#dcfce7');` Exemplo com sc_badge `sc_change_css('sc_badge', '#dcfce7', 'field_name');` | Este parâmetro é obrigatório e define o atributo CSS que será alterado.
`valor` | Este parâmetro define o valor do atributo informado no parâmetro anterior e deve ser informado utilizando aspas duplas ou aspas simples. Ao utilizar o atributo `sc_badge` no paramentro o valor do atributo deve ser umas das cores listadas abaixo: blue, brown, cyan, gray, green, orange, pink, purple, red, yellow e string vazia Caso nenhum valor seja informando, passando a string vazia, o badge será removido do campo. Exemplo definido a cor do atributo color `sc_change_css('color', '#dcfce7');` Exemplo com sc_badge `sc_change_css('sc_badge', 'green', 'field_name');` | Parâmetro obrigatório que define o valor do atributo informando anteriormente.
`nome_campo` | O nome do botão deve ser informado utilizando aspas duplas, aspas simples ou variáveis. Exemplo Neste exemplo estamos definindo a mudança na cor da fonte do campo `fld_status` `sc_change_css('color', '#dcfce7', 'fld_status');` | Atributo Opcional. Define o campo onde o CSS será aplicado, caso nenhum valor seja informado a alteração será realizada em todos os campos da linha. Para utilização do atributo `sc_badge` é obrigatório informarmos o nome do campo, caso contrário o css não será aplicado a nenhum campo.
## Exemplos Exemplo de alteração da cor da fonte e utilização do atributo `sc_badge`
    switch({taskstatus}) {
    	case 'COMPLETED':
    		sc_change_css('sc_badge', 'green', 'taskstatus');
    		break;

    	case 'IN-PROGRESS':
    		sc_change_css('sc_badge', 'blue', 'taskstatus');
    		break;

    	case 'NOT-STARTED':
    		sc_change_css('sc_badge', 'red', 'taskstatus');
    		break;
    }
Exemplo de utilização da macro com 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;
    }
Escopo da Macro
Aplicação Consulta
onClick onRecord

sc_commit_trans ("Conexão")
Assista um video O objetivo da macro é efetivar uma série de transações na base de dados. Nas aplicações de formulário, existem eventos que realizam transações com a base de dados (Ex: onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate, onBeforeDelete, etc...). O controle de transações desses eventos é feito pelo próprio Scriptcase, desde que a conexão seja a mesma da aplicação. Contudo, caso o usuário precise realizar qualquer tipo de redirecionamento nesses eventos, é necessário o uso da macro sc_commit_trans antes da realização do mesmo, para garantir as transações efetuadas anteriormente. Ex: onAfterUpdate - Usando redirecionamento após atualização de registro:
    sc_commit_trans();

    sc_redir('grid_main');
O parâmetro "conexão" é opcional, sendo necessário apenas se o comando for executado em uma base de dados diferente da especificada para a aplicação.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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()
Assista um video Esta macro retorna um cadeia de caracteres resultante de uma junção de dois ou mais valores. Podendo ser utilizada no lookup dos campos ou em eventos junto das macros sc_lookup() e sc_select() Faz a formatação do concat de acordo com seu banco de dados. Exemplo de utilização no lookup dos campos
    SELECT campo1, sc_concat(campo2,' - ',campo3) FROM tabela
Exemplo de utilização em eventos na macro sc_lookup O comando contendo a macro sc_concat deve ser inserido diretamente na macro sc_lookup para que funcione.
    sc_lookup(Dataset,"SELECT campo1,sc_concat(campo2, ' - ' ,campo3) FROM tabela");
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | 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("Mensagem")
Esta macro tem o objetivo de confirmar se uma ação deverá ser realmente executada. Esta macro atua apenas em códigos PHP, que são executados através de botões na barra de ferramentas. ### Parâmetro Esta macro possui apenas um parâmetro, que é a mensagem de confirmação que será exibida. Exemplo sc_confirm("Deseja realmente executar a ação ??"); Links Relacionados Veja um exemplo prático de como utilizar a macro sc_confirm
Escopo da Macro
Aplicação Formulário | Aplicação Controle
onClick | onClick

sc_connection_edit("Nome_da_Conexão", $arr_conn)
Assista um video A conexão editada só estará disponível na próxima aplicação. Esta macro edita uma conexão existente em tempo de execução. ("Nome_da_Conexão", $arr_conn) 1º Parâmetro: Nome da conexão à ser editada. 2º Parâmetro: Array contendo as informações da conexão que serão editadas. Veja cada indice abaixo:
Indice | Descrição | Exemplo
['server'] | Servidor do banco de dados | $arr_conn['server'] = "127.0.0.1"
['user'] | Usuário do banco de dados | $arr_conn['user'] = "root"
['password'] | Senha do banco de dados | $arr_conn['password'] = "secretpass123"
['database'] | Base de dados utilizada pela conexão | $arr_conn['database'] = "sc_samples"
['persistent'] | Define se a conexão será persistente ou não | $arr_conn['persistent'] = "Y" / "N"
['encoding'] | Configura o encoding da conexão | $arr_conn['encoding'] = "utf8"
Obs:Não é obrigatória a edição de todos os indices do array, podendo ser passado apenas o indice que desejar. Exemplo de uso da macro: $arr_conn = array(); $arr_conn['user'] = "admin2"; $arr_conn['password'] = "admin2pass"; $arr_conn['database'] = "sc_samples2"; sc_connection_edit("sc_conexao", $arr_conn);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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("Nome_da_Conexão", $arr_conn)
Assista um video Quando usada, a macro cria uma nova conexão com as informações inseridas em seus parâmetros. Esta conexão fica disponível em toda a sessão atual do Scriptcase, deixando de existir somente quando a sessão for fechada. A nova conexão só estará disponível na próxima aplicação. 1º Parâmetro: Nome da conexão à ser criada. Obs: Se existir uma conexão criada dentro do Scriptcase com o mesmo nome, essa macro não terá nenhum efeito. Conexões criadas dentro do Scriptcase prevalecem. Caso deseje editar uma conexão já existente, veja a documentação da macro sc_connection_edit. 2º Parâmetro: Array de itens contendo as informações da conexão. Confira abaixo os indices do array:
Indice | Descrição | Exemplo
['drive'] | Driver do banco de dados utilizado na conexão (ver tabela abaixo) | $arr_conn['drive'] = "oci8"
['server'] | Servidor do banco de dados | $arr_conn['server'] = "127.0.0.1"
['user'] | Usuário do banco de dados | $arr_conn['user'] = "root"
['password'] | Senha do banco de dados | $arr_conn['password'] = "secretpass123"
['database'] | Base de dados utilizada pela conexão | $arr_conn['database'] = "sc_samples"
['persistent'] | Define se a conexão será persistente ou não | $arr_conn['persistent'] = "Y" / "N"
['encoding'] | Configura o encoding da conexão | $arr_conn['encoding'] = "utf8"
Obs: É obrigatório que todos os itens estejam preenchidos, com exceção dos itens ['persistent'] e ['encoding']. Veja abaixo a lista de drivers das conexões:
Driver | Descrição
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
Exemplo de uso da macro: $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);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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(Data, "Formato", "Operador", D, M, A)
Assista um video Esta macro tem por objetivo o cálculo do incremento ou decremento de datas. Para sua utilização são necessários alguns parâmetros, conforme a seguir:
Parâmetro | Descrição
Data | Campo de data que contém a data a ser modificada.
Formato | Formatação em que o campo de data se encontra.
Operador | "+" para incremento e "-" para decremento.
D | Número de dias a incrementar ou decrementar.
M | Número de meses a incrementar ou decrementar.
A | Número de anos a incrementar ou decrementar.
Ex. 1: {datanasc} = sc_date({datanasc}, "dd/mm/aaaa", "+ ", 30, 0, 0); Ex. 2: $nova_data = sc_date({datanasc}, "aaaa-mm-dd", "-", 15, 3, 2); Ex. 3: {dt_inclusao} = sc_date(date('Ymd'), "aaaammdd", "-", 0, 1, 1); OBS: Para certificar-se do formato da data, antes de utilizar a função, ponha seu comando em algum evento: echo "form_data = " . {nome do campo de data};
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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({Campo_Data}, "Formato_Entrada", "Formato_Saída")
Assista um video Um trabalho relativamente complexo na programação é a manipulação de datas. Para minimizar este problema o ScriptCase disponibiliza a função para conversão de datas sc_date_conv. Confira abaixo a lista de parâmetros para esta macro e os valores aceitos.
Parâmetro | Valores | Descrição
field_name | Exemplo de como deve ser informado o parâmetro: {Nome_Campo_Data} | Esta parâmetro deve receber o nome do campo data que terá o valor manipulado
formato_Entrada | A string deve ter o mesmo formato utilizado no banco de dados. Exemplo de como deve ser informada a string da data na macro: "aaaa-mm-dd" Opções aceitas: String de datas - Por exemplo "aaaa-mm-dd" db_Format - Recupera o formato da data do banco de dados. | Recebe a string com o formato atual da data, salvo no banco de dados. Caso o formato informado esteva diferente do utilizado no banco de dados, a macro não irá funcionar da forma esperada.
formato_Saída | A String deve ter o formato que a data será exibida. Exemplo de como deve ser informada a string da data na macro: "dd/mm/aaaa" Opções aceitas: String de datas - Por exemplo "dd-mm-aaaa" sc_format_region - Valor formatado de acordo com a configuração regional db_Format - Converte a data para o valor nativo do banco de dados | Recebe a string com o formado de exibição da data desejado. Caso queira utilizar o formato de acordo com a configuração regionar, deve ser informado o valo sc_format_region neste parâmetro
Para mais informações sobre as strings das dadas consulte o Manual do PHP Ex. 1: Convertendo a data do formato "dd/mm/aaaa" para o formato "aaaammdd" `{campo_data} = sc_date_conv({campo_data},"dd/mm/aaaa","aaaammdd");``` ``Ex. 2: Convertendo a data do formato nativo do banco de dados para o formato "dd/mm/aaaa" `{campo_data} = sc_date_conv({campo_data},"db_format","dd/mm/aaaa");``` ``Ex. 3: Convertendo a data do formato "dd/mm/aaaa" para o formato nativo do Banco de dados `{campo_data} = sc_date_conv({campo_data},"dd/mm/aaaa","db_format");` `` ``Ex. 4: Convertendo a data do formato formato nativo do Banco de dados para o formato da configuração regional `{campo_data} = sc_date_conv({campo_data},"db_format","sc_format_region");` `` ````Ex. 5: Convertendo a data do formato "aaaa-mm-dd" para o formato da configuração regional `{campo_data} = sc_date_conv({campo_data},"aaaa-mm-dd","sc_format_region");```
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
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 | 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({Data1}, "Formato Data1", {Data2}, "Formato Data2")
Assista um video Esta macro calcula a diferença entre datas, em quantidade de dias.
Parâmetro | Descrição
Data1 | Valor ou variável contendo a primeira data.
Formato Data1 | Valor ou variável contendo o formato no qual está armazenada a data1.
Data2 | Valor ou variável contendo a segunda data.
Formato Data2 | Valor ou variável contendo o formato no qual está armazenada a data2.
Ex. 1: {quantidade_dias} = sc_date_dif({data1}, "aaaa-mm-dd", {data2}, "dd/mm/aaaa"); Ex. 2: {quantidade_dias} = sc_date_dif("2000-05-01", "aaaa-mm-dd", "21/04/2004", "dd/mm/aaaa"); {quantidade_dias} seria igual a -1451 (dias) Obs: Embora os formatos possam ser diferentes, as datas devem ser compostas de dia, mês e ano
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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({Data1}, "Formato Data1", {Data2}, "Formato Data2", Opção)
Assista um video Calcula diferença entre datas, retornando a quantidade de dias, meses e anos. O resultado será retornado em forma de array, no qual o índice 0 terá a a quantidade de dias, o índice 1 terá a quantidade de meses e o índice 2 terá a quantidade de anos.
Parâmetro | Descrição
Data1 | Valor ou variável contendo a primeira data.
Formato Data1 | Valor ou variável contendo o formato no qual está armazenada a data1.
Data2 | Valor ou variável contendo a segunda data.
Formato Data2 | Valor ou variável contendo o formato no qual está armazenada a data2.
Opção | 1 = não considera o dia inicial; 2 = considera o dia inicial.
Ex. 1: $diferencas = sc_date_dif_2 ({data1}, "aaaa-mm-dd", {data2}, "dd/mm/aaaa", 1); {dif_dias} = $diferencas[0]; {dif_meses} = $diferencas[1]; {dif_anos } = $diferencas[2]; Ex. 2: $diferencas = sc_date_dif_2 ("2000-05-01", "aaaa-mm-dd", "21/04/2004", "dd/mm/aaaa", 1); $diferencas[0] seria igual a 20 (dias) $diferencas[1] seria igual a 11 (meses) $diferencas[2] seria igual a 3 (anos). Ex. 3: Utilizando a opção 2. $diferencas = sc_date_dif_2 ("2000-05-01", "aaaa-mm-dd", "21/04/2004", "dd/mm/aaaa", 2); $diferencas[0] seria igual a 21 (dias) $diferencas[1] seria igual a 11 (meses) $diferencas[2] seria igual a 3 (anos). Obs: Embora os formatos possam ser diferentes, as datas devem ser compostas de dia, mês e ano. Também é preciso saber o formato interno que está sendo retornado para que a macro funcione corretamente.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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_Data})
Assista um video Esta macro verifica se um campo do tipo data está vazio. Ex. 1: if (sc_date_empty({data_nasc}) ) { sc_error_message("Dados inválidos"); }
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
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 | 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({Meu_Campo})
Assista um video Esta macro retorna, o campo ou variável criptografada, à sua forma original. Ex. 1: Descriptografando uma variável local: {meu_campo} = sc_decode($campo_cript); Ex. 2: Descriptografando uma variável do usuário: $minha_var = sc_decode($campo_cript); OBS: A Netmake não se responsabiliza pela possível quebra do algorítimo de criptografia utilizado, uma vez que o algoriíimo é fornecido com o fonte aberto.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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({Meu_Campo})
Assista um video Esta macro retorna, o campo ou variável, de forma criptografada. Ex. 1: Criptografando uma variável local: $campo_criptografado = sc_encode({meu_campo}); Ex. 2: Criptografando uma variável do usuário: $campo_criptografado = sc_encode($minha_variavel); OBS: A Netmake não se responsabiliza pela possível quebra do algoritimo de criptografia utilizado, uma vez que o algoritimo é fornecido com o fonte aberto.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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")
Assista um video Esta macro inibe o tratamento de erros de banco de dados, padrão do Scriptcase, para o evento passado como parâmetro e permite que o programador trate os erros do banco de dados. Pode ser usada por exemplo quando no banco de dados existem triggers/procedures que fazem validações referentes aos eventos de inclusão, atualização e exclusão de registros. É usada em conjunto com as variáveis: {sc_erro_delete},{sc_erro_insert} e/ou{sc_erro_update} Os eventos a serem passados como parâmetro são: inserir, delete ou update. Ex. 1: Utilizando o evento onDelete para tratamento de mensagem devolvida por uma trigger do mssql, que cancela a exclusão do registro e manda uma mensagem de erro no formato: [Microsoft][ODBC SQL Server Driver][SQL Server] Você não pode apagar este registro. sc_error_continue("delete"); if (!empty({sc_erro_delete})) { $tmp = strrpos({sc_erro_delete}, "]"); if ($tmp !== false) { {sc_erro_delete} = substr({sc_erro_delete}, $tmp + 1); } sc_error_message({sc_erro_delete}); sc_erro_exit; }
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onBeforeDelete onBeforeInsert onBeforeUpdate | onBeforeDelete onBeforeInsert onBeforeUpdate | onScriptInit

sc_error_delete
Assista um video Esta variável retorna uma string contendo qualquer mensagem de erro do banco de dados, que ocorra ao se tentar excluir um registro. É utilizada quando precisamos tratar estas mensagens. Por exemplo, no caso validações feitas no banco de dados via triggers ou procedures que retornam mensagem. Ex. 1: Conteúdo da variável {sc_error_delete}, retornando uma mensagem de erro gerada por uma triger do banco de dados usando MsSQL. “[Microsoft][ODBC SQL Server Driver][SQL Server] Você não pode apagar este registro.” OBS: Para ter acesso ao retorno do erro do banco, veja a macro "sc_error_continue".
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onAfterDelete | onAfterDelete

sc_error_exit("nome_app/URL", "Target")
A `sc_error_exit` interrompe a execução do código. Quando utilizada sem parâmetro a macro utiliza um return, desta forma, ao utilizá-la em um método PHP apenas a execução do código no método será interrompida, retornando ao evento de origem e executando o restante do código. Neste caso, para interromper a execução do evento da aplicação, a macro precisa ser utilizada também no retorno do método. Esta macro deve ser utilizada obrigatoriamente após a macro `sc_error_message();` ### Parâmetros Ela possui dois parâmetros que não são obrigatórios e o uso ou não dos parâmetros interfere no funcionamento da macro.
Parâmetro | Descrição | Passagem de parâmetro
--- | --- | ---
noma_da_app/URL | Este parâmetro não obrigatório. Quando informado, sempre que a macro for acionada, o usuário será redirecionado para a aplicação ou página informada, que pode ser aberta na mesma aba ou em uma nova, conforme o parâmetro target. | O nome da aplicação ou URL devem está entre aspas duplas, ou simples. Exemplo com URL `sc_error_exit('www.scriptcase.com.br');` Exemplo com Aplicação `sc_error_exit('app_Login');`
target | Este parâmetro não obrigatório. Ele define se a aplicação/URL será aberta na mesma aba ou em uma nova. Os valores podem ser: _blank - Que exibe a aplicação/URL em uma nova aba. _self - Exibe a aplicação/URL na mesma aba da aplicação. Caso nenhum valor seja informado, o _self será utilizado como padrão. | Este parâmetro deve ser informado entre aspas duplas, ou simples. Exemplo abrindo mesma aba `sc_error_exit('www.scriptcase.com.br');` `sc_error_exit('www.scriptcase.com.br', '_self');` Exemplo abrindo nova aba `sc_error_exit('app_Login', '_blank');`
### Exemplos Ex. 1: Exibe apenas a mensagem de erro.
    sc_error_message('Mensagem de erro');
    sc_error_exit();
Ex. 2: Exibe as mensagens de erro e o botão "OK" para redirecionar para a URL informada.
    sc_error_message('Mensagem de erro');
    sc_error_exit(http://www.meusite.com);
Ex. 3: Exibe as mensagens de erro e o botão "OK" para redirecionar para a Aplicação informada.
    sc_error_message('Mensagem de erro');
    sc_error_exit(minha_aplicacao, "_blank");
Escopo da Macro
Aplicação Calendário | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação 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
Assista um video Esta variável retorna uma string contendo qualquer mensagem de erro do banco de dados, que ocorra ao se tentar inserir um registro. É utilizada quando precisamos tratar estas mensagens. Por exemplo, no caso validações feitas no banco de dados via triggers ou procedures que retornam mensagem. Ex. 1: conteúdo da variável {sc_erro_insert}, retornando uma mensagem de erro gerada por uma trigger do banco de dados usando mssql. “[Microsoft][ODBC SQL Server Driver][SQL Server] Você não pode incluir este registro.” OBS: Para ter acesso ao retorno do erro do banco, veja a macro "sc_error_continue".
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onAfterInsert | onAfterInsert

sc_error_message("Texto")
Assista um video Esta macro tem por objetivo possibilitar ao usuário enviar mensagens de erro. Nas aplicações de "Formulário e Controle" as mensagens serão apresentadas juntamente com as demais mensagens de erro encontradas na aplicação, exceto se utilizada a macro "sc_erro_exit". Nas aplicações de "Consulta e Menu" as mensagens só serão apresentadas através da macro "sc_erro_exit". Ex. 1: if ({desconto} > 0,10 && [glo_usuario] == 'operador') { sc_error_message("Desconto de " . {desconto} . "acima do permitido"); } Neste exemplo, se for digitado um valor no campo desconto acima de 0,10 e o usuário tentar inserir ou salvar este registro, a operação será encerrada e a mensagem de erro será apresentada. É obrigatório que o comando termine com ");" (fecha parentese e ponto e vírgula) que servem de delimitador para o interpredador da macro
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Filtro | Aplicação Formulário | Aplicação 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
Assista um video Esta variável retorna uma string contendo qualquer mensagem de erro do banco de dados, que ocorra ao se tentar atualizar um registro. É utilizada quando precisamos tratar estas mensagens. Por exemplo, no caso validações feitas no banco de dados via triggers ou procedures que retornam mensagem. Ex. 1: conteúdo da variável {sc_erro_update}, retornando uma mensagem de erro gerada por uma triger do banco de dados usando mssql. “[Microsoft][ODBC SQL Server Driver][SQL Server] Você não pode atualizar este registro.” Obs: Para ter acesso ao retorno do erro do banco, veja a macro "sc_error_continue".
Escopo da Macro
Aplicação Calendário | Aplicação Formulário
onAfterUpdate | onAfterUpdate

sc_exec_sql ("Comando SQL", "Conexão")
Assista um video Esta macro permite a execução de comandos SQL, para os quais o usuário poderá condicionar as circunstâncias em que os mesmos devem ser executados. O parâmetro "conexão" é opcional, sendo necessário, apenas, se o comando for executado em uma base de dados diferente da especificada para a aplicação. Ex. 1: if (sc_after_delete) { sc_exec_sql("delete from outratab where chave = {chave_ant}"); }
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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(Opção)
Assista um video Esta macro é utilizada nos eventos ou através de um botão PHP criado, tem por objetivo definir o retorno da aplicação após a execução em uma outra aplicação. A utilização desta macro, nesta modalidade, provê as seguintes alternativas:
Opção | Descrição
sc_exit() | Não exibe a tela com o botão OK e retorna para a aplicação anterior.
sc_exit(ok) | Exibe a tela com o botão OK e retorna para a aplicação anterior.
sc_exit(sel) | Não exibe a tela com o botão OK e retorna para a aplicação corrente, refazendo o select da aplicação.
sc_exit(ref) | Não exibe a tela com o botão OK e retorna para a aplicação corrente, fazendo apenas a recarga (refresh) dos dados.
sc_exit(ok,ref) | Mesmo que a função sc_exit(ref); porém, exibe a tela com o botão OK.
sc_exit(ok,sel) | Mesmo que a função sc_exit(sel); porém, exibe a tela com o botão OK.
Esta opção só é válida para aplicações de Formulário e aplicações de Controle.
Opção | Descrição
sc_exit() | Não afeta transações na base de dados.
sc_exit(c) | Realiza as transações pendentes.
sc_exit(r) | Não realiza as transações pendentes.
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onScriptInit | onClick onScriptInit | onClick onScriptInit

sc_field_color("Campo", "Cor")
Esta macro tem por objetivo, de forma dinâmica, alterar/restaurar a cor do texto de determinado campo da consulta. Ex. 1: Altera em definitivo a cor de texto do campo "clienteid" da consulta. sc_field_color ("clienteid", "#33FF66"); Ex. 2: Altera a cor de texto do campo "valor_pedido", se o valor for maior que 1000. Caso contrário, mantem a cor padrão. if ({valor_pedido} > 1000) { sc_field_color ("valor_pedido", "#33FF66"); } else { sc_field_color ("valor_pedido", ""); } Ex. 3: Utilizando uma variável local. sc_field_color ("clienteid", {cmp_cor}); Ex. 4: Utilizando uma variável global. sc_field_color ("clienteid", [cor_global]);
Escopo da Macro
Aplicação Consulta | Aplicação Report PDF
onScriptInit onRecord | onScriptInit onRecord

sc_field_disabled ("Nome_Campo = True/False", "Parâmetro")
Esta macro tem por objetivo bloquear a digitação em determinados campos do formulário. Campos a serem bloqueados, devem ser seguidos da opção de bloquear "true" (default) ou não "false". O parâmetro é opcional, é usando "I" apenas na inclusão, e "U" apenas na alteração. Caso não seja informado, o ScriptCase irá usar as duas opcões juntas. Ex. 1: Bloqueio de um campo, inclusão e atualização. sc_field_disabled("Campo_01"); Ex. 2: Retirando o bloqueio de um campo, inclusão e atualização. sc_field_disabled("Campo_02=false"); Ex. 3: Bloqueio de vários campos, apenas na atualização. sc_field_disabled("Campo_01; Campo_02; Campo_03", "U"); Ex. 4: Combinação de bloqueio e desbloqueio de vários campos, inclusão e atualização. sc_field_disabled("Campo_01=true; Campo_02=false; Campo_03=true");
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onLoad | onLoad onNavigate | onLoadAll | onHeader

sc_field_disabled_record("Nome_Campo = True/False", "Parâmetro")
Assista um video Esta macro tem por objetivo bloquear a digitação em determinados campos de cada linha nos formulários Múltiplos Registros, Grid Editável e Grid Editável view. Campos a serem bloqueados devem ser seguidos da opção de bloquear, "true" (para bloquear) ou "false" (para desbloquear). Caso não seja informado o padrão é "true". O parâmetro é opcional, utilizando "I" para bloquear na inclusão e "U" para bloquear na alteração. Caso não seja informado, o ScriptCase irá bloquear nas duas opcões. Ex. 1: Bloqueio de um campo na inclusão e atualização. sc_field_disabled_record("Campo_01"); Ex. 2: Retirando o bloqueio de um campo na inclusão e atualização. sc_field_disabled_record("Campo_02=false"); Ex. 3: Bloqueio de vários campos apenas na atualização. sc_field_disabled_record("Campo_01; Campo_02; Campo_03", "U"); Ex. 4: Combinação de bloqueio e desbloqueio de vários campos na inclusão e atualização. sc_field_disabled_record("Campo_01=true; Campo_02=false; Campo_03=true"); A macro também pode funcionar a partir de uma condição, bloqueando um campo específico na linha do registro. Exemplo 1: if ({Campo_01} == 1) { sc_field_disabled_record("Campo_03"); } Exemplo 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; }
Escopo da Macro
Aplicação Formulário
onLoadRecord

sc_field_display({Meu_Campo}, on/off)
Permite, dinamicamente, exibir ou não um determinado campo. Em princípio, todos os campos são exibidos (condição "on"). Ex. 1: if ({tp_cli} == "fisica") { sc_field_display({cnpj}, off); } else { sc_field_display({cpf}, off); } Ex. 2: Usando variável local como segundo parâmetro $var = "off"; sc_field_display({cnpj}, $var);
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação 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,...)
Esta macro tem por objetivo inibir campos da consulta na carga inicial. Os campos inibidos por essa macro podem ser habilitados pela utilização do botão "Colunas". Ex 01: sc_field_init_off ({ordem_id}, {valor_total});
Escopo da Macro
Aplicação Consulta
onApplicationInit

sc_field_no_validate('nome_do_campo')
A macro pode ser utilizada apenas no evento onLoad das aplicações de Formulário, Controle e Calendário. Ela permite ignorar as validações dos campos informados no parâmetro, possibilitando que o desenvolvedor "remova" dinamicamente as validações de acordo com sua regra de negócio. Vale ressaltar que apenas as validações definidas na tela de configuração dos campos serão ignoradas pela macro. Validações criadas pelo desenvolvedor em eventos, métodos ou bibliotecas não serão consideradas. Confira algumas validações que serão ignoradas com a utilização da macro Tipos de dados dos campos: Data, CPF, CNPJ, cartão de crédito, e-mail e CEP Formatação de valores dos campos textos: Valor máximo, mínimo e caracteres permitidos. Formatação de valores dos campos numéricos: Valor máximo e mínimo. Campos marcados como obrigatórios Confira abaixo os detalhes sobre o parâmetro da macro ## Parâmetro da macro
Parâmetro | Sintaxe | Descrição
--- | --- | ---
`nome_do_campo` | O parâmetro espera receber o nome dos campos entre aspas (simples ou duplas) ou chave {nome_do_campo}. É possível também informar dois ou mais campos, neste caso os nomes devem estar separados por vírgula. Sintaxe com um campo:
    // utilizando aspas
    sc_field_no_validate('nome_do_campo');
    // entre chaves
    sc_field_no_validate({nome_do_campo});
Sintaxe com dois ou mais campos
    // Mais de um campo
    sc_field_no_validate({nome_do_campo1}, {nome_do_campo2});
| Este parâmetro é obrigatório e deve receber o nome dos campos que terão a validação desconsiderada. É possível informar mais de um campo, neste caso, os nomes devem ser separados por vírgula.
## Exemplo de uso #### Removendo a validação de um campo escondido pela macro sc_field_display
    sc_field_display({field1}, 'off');
    sc_field_no_validate({field1});
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onLoad | onLoad onLoadRecord | onLoadAll

sc_field_readonly({Campo}, on/off)
Permite, dinamicamente, transformar em readonly um determinado campo do formulário. Em princípio, os campos readonly são especificados na interface de configuração do formulário e funcionam da seguinte forma: No modo de atualização, os campos aparecem na forma readonly e, no modo de inclusão, os campos aparecem abertos para digitação. O segundo parâmetro "on/off" é opcional, e serve para que, em um evento Ajax, seja possível definir se um campo vai ficar como read-only (on) ou deixar de ser read-only (off). Ex. 1: Se desejamos que um determinado campo, especificado na interface como readonly, permaneça readonly no modo de inclusão, teremos: if (sc_btn_new) { sc_field_readonly({meu_campo}); } Ex. 2: Se desejamos que um determinado campo, que não tenha sido especificado na interface como readonly, apareça na forma readonly, teremos: sc_field_readonly({meu_campo});
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação 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({Meu_Campo}, "Background-Color", "Size", "Color", "Family", "Weight")
Modifica dinamicamente o estilo de um campo na aplicação de consulta. As propriedades que podem ser alteradas são: `background-color`, `font-size`, `color`, `font-family` e `font-weight`. Para uso da macro é estritamente importante respeita a ordem de parâmetros ### Parâmetros Na passagem dos parâmetros, apenas os valores das propriedades devem ser informados, respeitado a ordem descrita abaixo.
Parâmetro | Descrição | Exemplo
`nome_campo` | Este parâmetro é obrigatório e deve receber o nome do campo, que terá seu estilo alterado. O nome do campo deve ser informando entre chaves `{nome_do_campo}`. | Exemplo de como devemos informar o parâmetro na macro `sc_field_style({data_nasc}, '#33FF99', '15px', '#000000', 'Arial, sans-serif', 'bold');`
`background-color` | Este parâmetro é obrigatório e deve receber o valor referente propriedade `backgroud-color`. Ele altera a cor de fundo da célula. Para não alterar a cor de fundo do campo, o parâmetro deve ser informado com string vazia. |
`font-size` |  |
`color` |  |
`font-family` |  |
`font-weight` |  |
Parâmetro | Descrição | Exemplo
nome_campo | Este parâmetro é obrigatório e deve receber o nome do campo, que terá seu estilo alterado. O nome do campo deve ser informando entre chaves `{nome_do_campo}`. | Exemplo de como devemos informar o parâmetro na macro `sc_field_style({data_nasc}, '#33FF99', '15px', '#000000', 'Arial, sans-serif', 'bold');`
Background-Color | Cor de fundo da célula do campo |
Size | Tamanho da fonte do campo |
Color | Cor da fonte |
Family | Família da fonte |
Weight | Largura da fonte |
Ex. 01: sc_field_style({data_nasc}, '#33FF99', '15px', '#000000', 'Arial, sans-serif', 'bold');
Escopo da Macro
Aplicação Consulta
onRecord

sc_foot_hide()
Veja um tutorial Esta macro tem como objetivo esconder o rodapé da aplicação. Sem parâmetro obrigatório a macro está disponível nas seguintes aplicações: Formulário Controle Gráfico Consulta Na Consulta além de sua utilização padrão (sem parâmetros) é possível definir individualmente o módulo onde a exibição do rodapé será inibida. Segue a lista de parâmetros exclusivos da consulta grid - Esconde apenas o rodapé do módulo da grid res ou sum - Esconde apenas o rodapé do módulo de resumo det - Esconde o rodapé do módulo de detalhe Lembrando que os parâmetros não são obrigatórios, no caso da consulta caso nenhum parâmetro seja informado a exibição do rodapé será inibida em todos os módulos. #### Exemplos Ex. sem parâmetro - Utilização padrão da macro, sem passagem de parâmetro, inibe a exibição do rodapé no Formulário, Controle, Gráfico e em todos os módulos da consulta. `sc_foot_hide();` Abaixo seguem os exemplos de utilização da macro com parâmetro, exclusivo para utilização na consulta Ex. utilizando o parâmetro 'grid' - Inibe a visualização do rodapé apenas no módulo da aplicação. `sc_foot_hide('grid');` Ex. utilizando o parâmetro 'sum' - Inibe a visualização do rodapé apenas no módulo no resumo da aplicação. `sc_foot_hide('res');` ou `sc_foot_hide('sum');` Ex. utilizando o parâmetro 'det' - Inibe a visualização do rodapé apenas no módulo no resumo da aplicação. `sc_foot_hide('det');` Ex. utilizando mais de um parâmetro - Inibe a visualização do rodapé nos módulos da grid e detalhe da aplicação. Neste caso os parâmetros devem ser separados por virgula. `sc_foot_hide('grid,det');`
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle
onScriptInit | onScriptInit | onScriptInit | onScriptInit

sc_format_num({Meu_Campo}, "Simb_Grp", "Simb_Dec", "Qtde_Dec", "Enche_Zeros", "Lado_Neg", "Simb_Monetário", "Lado_Simb_Monetario")
Esta macro tem por objetivo a formatação de valores numéricos.
Parâmetro | Descrição
Meu_Campo | Variável ou campo que contena o valor a ser formatado (O retorno será na própria variável).
Simb_Grp | Símbolo de agrupamento dos valores inteiros.
Simb_Dec | Símbolo para o separador de decimais.
Qtde_Dec | Quantidade de decimais a ser exibida.
Enche_Zeros | Completa com zeros as decimais inexistentes (S = sim e N = não).
Lado_Neg | Lado onde o sinal de negativo deve ser exibido (1 = esquerdo e 2 = direito).
Simb_Monetário | Símbolo monetário a ser exibido.
Lado_Simb_Monetário | Lado onde o símbolo monetário será exibido (1 = esquerdo e 2 = direito).
Ex. 1: Formatando um número inteiro. sc_format_num({meu_valor}, '.', '', 0, 'N', '1', ''); Valor de entrada = 001234567890 Valor de saída = 1.234.567.890 Ex. 2: Formatando um valor negativo e desprezando as casas decimais. sc_format_num({meu_valor}, '.', '', 0, 'N', '1', ''); Valor de entrada = -0012345678.90 Valor de saída = -12.345.678 Ex. 3: Formatando um valor com 4 casas decimais e prenchendo com zeros. sc_format_num({meu_valor}, '.', ',', '4', 'S', '1', ''); Valor de entrada = 0012345678.9 Valor de saída = 12.345.678,9000 Ex. 4: Formatando um valor com 2 casas decimais, prenchendo com zeros e utilizando símbolo monetário. sc_format_num({meu_valor}, '.', ',', '2', 'S', '1', 'R$'); Valor de entrada = 0012345678.9 Valor de saída = R$ 12.345.678,90 Ex. 5: Formatando um valor com 2 casas decimais, prenchendo com zeros. sc_format_num({meu_valor}, '.', ',', '2', 'S', '1', ''); Valor de entrada = .9 Valor de saída = 0,90
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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({Meu_Campo}, "Qtde_Dec", "Enche_Zeros", "Simb_Monetário")
Esta macro tem por objetivo a formatação de valores numéricos, utilizando as configurações regionais.
Parâmetro | Descrição
Meu_Campo | Variável ou campo que contenha o valor a ser formatado (O retorno será na própria variável).
Qtde_Dec | Quantidade de decimais a ser exibida.
Enche_Zeros | Completa com zeros as decimais inexistentes (Y = sim e N = não).
Simb_Monetário | Exibição de símbolo monetário (Y = sim e N = não).
Ex. 1: Formatando um valor com 2 casas decimais, preenchendo com zeros e exibindo o valor monetário. sc_format_num_region({meu_valor}, "2", "Y", "Y"); Valor de entrada = 9 Valor de saída = R$0,90
Escopo da Macro
Aplicação Blank | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onExecute | 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

sc_form_show'on' ou 'off'
Esta macro permite, dinamicamente, exibir ou não o conteúdo do formulário. Em princípio, o formulário é exibido (condição "on"). Ex. 1: Para não exibir o formulário. sc_form_show = 'off';
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onScriptInit onLoad onValidate | onScriptInit onLoad onValidate | onScriptInit onLoadAll

sc_getfield("meuCampo")
Assista um vídeo A macro tem por objetivo atribuir objetos (que representam os campos do formulário) para uma variável javascript, permitindo ao usuário ter acesso as propriedades do objeto. Esta macro roda em eventos e métodos javascript das aplicações de formulário e controle. Ex: Exibindo o valor do campo "cliente" de um formulário cli_js = sc_getfield('cliente'); alert (cli_js.value);
Escopo da Macro

sc_get_groupby_rule()
Utiliza-se essa macro para recuperar o valor da regra de quebra que está a ser usada no momento de sua execução. O valor retornado é uma String com o nome da regra. Ex: if (sc_get_groupby_rule() == "regra1") { [titulo] = "Vendas X Estado"; }
Escopo da Macro
Aplicação Consulta
onScriptInit onNavigate onRecord

sc_get_language
Esta macro retorna a sigla do idioma em uso. Ex. 1: $my_language = sc_get_language();
Idioma | Valor
Árabe | ar
Alemão | de
Malaia | ms
Bielo-russo | be
Bengali | bn
Bósnio | bs
Búlgaro | bg
Catalão | ca
Chinês simplificado | zh_cn
Chinês tradicional | zh_hk
Croata | hr
Checo | cz
Coreano | ko
Cirílico sérvio | sr
Cingalês | si
Dinamarquês | da
Eslovaco | sk
Esloveno | sl
Espanhol | es
Estoniano | 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ão | lv
Lituano | lt
Macedônio | mk
Marathi | mr
Norueguês | no
Polonês | pl
Português Brasil | pt_br
Portugal português | pt_pt
Punjabi | pa
Romeno | ro
Russo | ru
Shuar | jiv
Sueco | sv
Telugu | te
Tailandês | thai
Turco | tr
Ucraniano | uk
Urdu | ur
Kannada | kn
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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
Assista um video Esta macro retorna a sigla da configuração regional em uso. Ex. 1: $my_regional = sc_get_regional();
Idioma | Valor
Afrikaans (África do Sul) | af_za
Albanês (Albânia) | sq_al
Alemão (Alemanha) | de_de
Alemão (Lichtenstein) | de_li
Alemão (Luxembourg) | de_lu
Alemão (Suíça) | de_ch
Alemão (Áustria) | de_at
Amárico (Etiópia) | am_et
Armênio (Armênia) | hy_am
Azerbaijão (Azerbaijão) | az_az
Bahasa Melayu (Malásia) | ms_my
Basco | eu
Bengali (Bangladesh) | bn_bd
Bengali (India) | bn_in
Bielorrusso (Belarus) | be_by
Breton (França) | br_fr
Bósnia (Bósnia-Herzegovina) | bs_ba
Búlgaro (Bulgária) | bg_bg
Catalão (Espanha) | ca_es
Cazaque (Cazaquistão) | kk_kz
Chinês (República da China) | zh_cn
Chinês (Tradicional, Hong Kong) | zh_hk
Chinês (Tradicional, Taiwan) | zh_tw
Chinês (simplificado, Singapura) | zh_sg
Chinês (tradicional, Macau) | zh_mo
Coreano (Coreia) | ko_kr
Croata (Bósnia e Herzegovina) | hr_ba
Croata (Croácia) | hr_hr
Czech (República Checa) | cs_cz
Dinamarquês (Dinamarca) | da_dk
Esloveno (Eslovênia) | sl_si
Eslováquia (República Eslovaca) | sk_sk
Espanhol (Argentina) | es_ar
Espanhol (Bolívia) | es_bo
Espanhol (Chile) | es_cl
Espanhol (Colômbia) | es_co
Espanhol (Costa Rica) | es_cr
Espanhol (El Salvador) | es_sv
Espanhol (Equador) | es_ec
Espanhol (Espanha) | es_es
Espanhol (Estados Unidos) | es_us
Espanhol (Guatemala) | es_gt
Espanhol (Honduras) | es_hn
Espanhol (México) | es_mx
Espanhol (Nicarágua) | es_ni
Espanhol (Panamá) | es_pa
Espanhol (Paraguay) | es_py
Espanhol (Peru) | es_pe
Espanhol (Porto Rico) | es_pr
Espanhol (República Dominicana) | es_do
Espanhol (Uruguay) | es_uy
Espanhol (Venezuela) | es_ve
Estoniano (Estônia) | et_ee
Faroês (Ilhas Faroés) | fo_fo
Finlandês (Finlândia) | fi_fi
Francês (Bélgica) | fr_be
Francês (Camarões) | fr_cm
Francês (Canadá) | fr_ca
Francês (Costa do Marfim) | fr_ci
Francês (França) | fr_fr
Francês (Luxemburgo) | fr_lu
Francês (Mônaco) | fr_mc
Francês (Suíça) | fr_ch
Frisian, ocidental (Holanda) | fy_nl
Galego (Espanha) | gl_es
Georgiano (Geórgia) | ka_ge
Grego (Grécia) | el_gr
Gujarati (Índia) | gu_in
Hausa (Ghana) | ha_gh
Hebraico (Israel) | he_il
Hindi (Índia) | hi_in
Holandês (Bélgica) | nl_be
Holandês (Holanda) | nl_nl
Húngaro (Hungria) | hu_hu
Indonésio (Indonésia) | id_id
Inglês (Austrália) | en_au
Inglês (Belize) | en_bz
Inglês (Botswana) | en_bw
Inglês (Camarões) | en_cm
Inglês (Canadá) | en_ca
Inglês (Caribe) | en_cb
Inglês (Cingapura) | en_sg
Inglês (Estados Unidos) | en_us
Inglês (Filipinas) | en_ph
Inglês (Irlanda) | en_ie
Inglês (Jamaica) | en_jm
Inglês (Malásia) | en_my
Inglês (Namíbia) | en_na
Inglês (Nigéria) | en_ng
Inglês (Nova Zelândia) | en_nz
Inglês (Reino Unido) | en_gb
Inglês (Trinidad e Tobago) | en_tt
Inglês (Uganda) | en_ug
Inglês (Zimbabwe) | en_zw
Inglês (Zâmbia) | en_zm
Inglês (África do Sul) | en_za
Inglês (Índia) | en_in
Irlandês (Irlanda) | ga_ie
Islandês (Islândia) | is_is
Italiano (Itália) | it_it
Italiano (Suíça) | it_ch
Japonês (Japão) | ja_jp
Kalaallisut (Nunaat Nunaat) | kl_gl
Kannada (Índia) | kn_in
Khmer (Camboja) | km_kh
Lao (Laos) | lo_la
Letão (Letônia) | lv_lv
Lituano (Lituânia) | lt_lt
Luxemburguês (Luxemburgo) | lb_lu
Macedónia (Macedônia) | mk_mk
Malaiala (Índia) | ml_in
Marata (Índia) | mr_in
Mongol (Mongólia) | mn_mn
Nepalês (Nepal) | ne_np
Norueguês (Noruega) | no_no
Norueguês Bokmal (Noruega) | nb_no
Nynorsk norueguês (Noruega) | nn_no
Occitano (França) | oc_fr
Oriya (India) | or_in
Persa (Irã) | fa_ir
Polonês (Polônia) | pl_pl
Português (Angola) | pt_ao
Português (Brasil) | pt_br
Português (Portugal) | pt_pt
Punjabi (Índia) | pa_in
Quirguiz (Quirguistão) | ky_kg
Romeno (Moldávia) | ro_md
Romeno (Romênia) | ro_ro
Russo (Belarus) | ru_by
Russo (Cazaquistão) | ru_kz
Russo (Rússia) | ru_ru
Sotho (África do Sul) | st_za
Sotho do Norte (África do Sul) | nso_z
Sri Lanka (Cingalês) | si_si
Suaíli (Tanzânia) | sw_tz
Sueco (Finlândia) | sv_fi
Sueco (Suécia) | sv_se
Sérvia Latina (Sérvia e Montenegro) | sh_yu
Sérvio Cirílico (Sérvia e Montenegro) | sr_yu
Tadjique (Tadjiquistão) | tg_tj
Tailandês (Tailândia) | th_th
Telugu (Índia) | te_in
Tswana (África do Sul) | tn_za
Turco (Turquia) | tr_tr
Tâmil (Índia) | ta_in
Ucraniano (Ucrânia) | uk_ua
Urdu (Paquistão) | ur_pk
Uzbeque (Uzbequistão) | uz_uz
Vietnamita (Vietnã) | vi_vn
Welsh (Reino Unido) | cy_gb
Xhosa (África do Sul) | xh_za
Zulu (África do Sul) | zu_za
Árabe (Argélia) | ar_dz
Árabe (Arábia Saudita) | ar_sa
Árabe (Bahrein) | ar_bh
Árabe (Egito) | ar_eg
Árabe (Emirados Árabes Unidos) | ar_ae
Árabe (Iraque) | ar_iq
Árabe (Iêmen) | ar_ye
Árabe (Jordânia) | ar_jo
Árabe (Kuwait) | ar_kw
Árabe (Líbano) | ar_lb
Árabe (Líbia) | ar_ly
Árabe (Marrocos) | ar_ma
Árabe (Omã) | ar_om
Árabe (Qatar) | ar_qa
Árabe (Síria) | ar_sy
Árabe (Tunísia) | ar_tn
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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
Assista um video Esta macro retorna o nome do tema do layout em uso na aplicação. Ex. 1: $my_theme = sc_get_theme();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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
Assista um video Exclusiva para aplicações de formulário configuradas como formulário em etapas. Com esta macro não possui parâmetros e permite que o desenvolvedor identifique a etapa atual da aplicação, possibilitando a realização de validações durante a navegação entre as etapas. Para o funcionamento da macro a aplicação deve possuir no mínimo duas etapas configuradas. Exemplo: Validação de campos não preenchidos.
    if (sc_get_wizard_step() == 1) {

        if ( empty({contactname}) ) {

            sc_error_message("preencha o campo Contactname");
        }
    }
Escopo da Macro
Aplicação Formulário
onValidate

sc_groupby_label("Meu_Campo")
Esta macro tem por objetivo alterar, dinamicamente, o label dos campos que estão especificados para serem apresentados nas linhas de quebra. Ex. 1: sc_groupby_label('estado') = "Quebra do estado"; Ex. 2: sc_groupby_label('saldo') = "Total dos Saldos";
Escopo da Macro
Aplicação Consulta
onGroupBy

sc_head_hide()
Veja um tutorial Esta macro tem como objetivo esconder o cabeçalho da aplicação. Sem parâmetro obrigatório a macro está disponível nas seguintes aplicações: Formulário Controle Gráfico Consulta Na Consulta além de sua utilização padrão (sem parâmetros) é possível definir individualmente o módulo onde a exibição do cabeçalho será inibida. Segue a lista de parâmetros exclusivos da consulta grid - Esconde apenas o cabeçalho do módulo da grid res ou sum - Esconde apenas o cabeçalho do módulo de resumo det - Esconde o cabeçalho do módulo de detalhe Lembrando que os parâmetros não são obrigatórios, no caso da consulta caso nenhum parâmetro seja informado a exibição do cabeçalho será inibida em todos os módulos. #### Exemplos Ex. sem parâmetro - Utilização padrão da macro, sem passagem de parâmetro, inibe a exibição do cabeçalho no Formulário, Controle, Gráfico e em todos os módulos da consulta. sc_head_hide(); Exemplos de uso com parâmetro, exclusivo para utilização na consulta Ex. utilizando o parâmetro 'grid' - Inibe a visualização do cabeçalho apenas no módulo da aplicação. sc_head_hide('grid'); Ex. utilizando o parâmetro 'sum' - Inibe a visualização do cabeçalho apenas no módulo no resumo da aplicação. sc_head_hide('res'); ou sc_head_hide('sum'); Ex. utilizando o parâmetro 'det' - Inibe a visualização do cabeçalho apenas no módulo no resumo da aplicação. sc_head_hide('det'); Ex. utilizando mais de um parâmetro - Inibe a visualização do cabeçalho nos módulos da grid e detalhe da aplicação. sc_head_hide('grid,det');
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle
onScriptInit | onScriptInit | onScriptInit | onScriptInit

sc_hide_groupby_rule('group1', 'grop2', 'group3')
Esta macro é utilizada para desabilitar regras de Quebra em tempo de execução. O Id das regras de quebras devem ser passadas como parametros. A macro só funcionará se houver ao menos duas quebras, assim, usando a macro, uma quebra é desabilitada e a outra permanece aparecendo. Ex: if( [usr_login_group] == 'seller' ){ sc_hide_groupby_rule('rule_1', 'rule_2'); }
Escopo da Macro
Aplicação Consulta
onApplicationInit

sc_image(Imagem01.jpg)
Todas as imagens utilizadas nas aplicações são automáticamente copiadas para cada aplicação. Caso o usúario, através de dos eventos ou Javascript, utilize comandos para carregar imagens, estas terão que ser copiadas para a aplicação. Esta macro executa esta função. Ex. 1: sc_image (img1.gif, img2.jpg); OBS: As imagens deverão existir no diretório de imagens do ambiente de desenvolvimento (../devel/conf/sys/img/img/). IMPORTANTE À partir da versão 3.00.0144, foi implementado em (Aplicação->Configuração->Imagens Extras da Aplicação) uma interface para que o usuário possa informar as imagens extras, permitindo, inclusive, o upload de novas imagens. Desta forma, esta macro não será mais necessária.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onApplicationInit onScriptInit onLoad onValidate | onApplicationInit onScriptInit | onFooter onScriptInit | onFilterInit | onApplicationInit onClick onScriptInit onLoad onLoadRecord onValidate | onApplicationInit onScriptInit onLoadAll onValidateFailure onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onLoad | onApplicationInit onScriptInit

sc_include("Arquivo", "Origem")
Assista um video O Scriptcase permite que o usuário catalogue seus script's PHP e utilize-os em várias aplicações. Para catalogar os script's, no menu principal do Scriptcase, acessar "Configuração=>Bibliotecas. Nesta opçao o usuário poderá escrever seu script ou fazer "upload" de um script existente. No momento de catalogar o script, o usuário deverá selecionar o contexto ao qual o script pertence, podendo ser: - Público: Todos os projetos poderão ter acesso. - Projeto: Apenas os usuários do projeto (que estiver logado no monento) terão acesso. - Usuário: Apenas o usuário (que estiver logado no monento) terá acesso. Na utilização da macro sc_include, o usuário deverá informar o nome do script que deseja incluir e a origem do mesmo(contexto sob o qual o script foi catalogado). - Nome do script: Nome do script a ser incluido na aplicação. A Origem do contexto sob o qual o script foi catalogado, podendo ser: - em branco = Script's a nível global, que acompanham a distribuição do Scriptcase. - pub = A nível Público - prj = A nível do Projeto - usr = A nível do Usuário Ex. 1: Incluindo um script catalogado a nível globa. (Scriptcase) sc_include("meu_script.php"); Ex. 2: Incluindo um script catalogado a nível do projeto. sc_include("meu_script.php", "prj"); Ex. 3: Incluindo um script catalogado a nível do usuário. sc_include("meu_script.php", "usr");
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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", ...)
Assista um video Esta macro é usada para selecionar dinamicamente as bibliotecas da aplicação.
Bibliotecas PHP | Bibliotecas JavaScript
--- | ---
tcpdf | Jquery
fpdf_html | jquery_thickbox
excel | jquery_blockui
rtf | tiny_mce
phpspreadsheet | jquery_touch_punch
- | fusioncharts
- | jsmind
- | jkanban
- | orgchart
Exemplo 1:
    sc_include_lib ("tcpdf");

    $pdf=new TCPDF();
    $pdf->AddPage();
    $pdf->SetFont('Helvetica','B',16);
    $pdf->Cell(40,10,'Saida de texto!');
    $pdf->Output();
Exemplo 2:
    ?>
    sc_include_lib ("jsmind");
    < ?php
Escopo da Macro
Aplicação Blank | Aplicação Consulta
onExecute | onScriptInit

sc_include_library("Escopo", "Nome da Biblioteca", "Arquivo", "include_once", "Require")
Assista um video Esta macro inclui na aplicação, um arquivo PHP de uma biblioteca. É necessário ter uma biblioteca criada no Scriptcase para fazer uso desta macro. Para criar uma biblioteca, vá até o menu "Ferramentas -> Bibliotecas".
Parâmetro | Descrição
Escopo | Informa qual o escopo da biblioteca. Podendo ser "sys" para bibliotecas de escopo Público ou "prj" para bibliotecas de escopo Projeto.
Nome da Biblioteca | Nome dado à biblioteca no momento da criação
Arquivo | Caminho absoluto do arquivo, dentro da biblioteca.
include_once(opcional) | Certifica que o arquivo só será incluído uma única vez. Caso não seja informado, a macro assume como "true".
Require(opcional) | Caso o arquivo ou a biblioteca não existam, a aplicação para de ser executada e retorna um erro. Caso não seja informado, a macro assume como "true".
Ex: Incluindo um arquivo de uma biblioteca: sc_include_library("prj", "phpqrcode", "qrlib.php", true, true);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
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 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("nome_do_campo")
Assista um video Esta macro tem por objetivo alterar dinamicamente o label dos campos de uma aplicação de consulta ou formulário. Possui apenas um parâmetro obrigatório que deve receber o nome do campo que será alterado. Este parâmetro pode receber uma string com o nome do campo ou uma variável. ### Exemplos Ex. 1: Usando o nome do campo diretamente na macro.
    sc_label("nome_do_campo") = "Nova Label do campo";
Ex. 2: Utilizando uma variável local para definir o campo que será alterado.
    $var_campo = "nome_do_campo";
    sc_label($var_campo) = "Nova Label do campo";
Ex. 3: Usando uma variável global para definir o campo a ser modificado.
    sc_label([variavel_global]) = "Nova Label do campo";
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onScriptInit onLoad onRefresh | onScriptInit | onClick onScriptInit onNavigate | ajaxFieldonBlur Onchange OnClick OnFocus onScriptInit onLoad onNavigate onLoadRecord onRefresh | onBlur onChange onClick onFocus onScriptInit onLoadAll | onScriptInit

sc_language
Assista um video Esta macro retorna o idioma e a configuração regional atual do sistema. Ex. 1: echo "Language: ".{sc_language};
Idioma | Valor
Árabe | ar
Alemão | de
Malaia | ms
Bielo-russo | be
Bengali | bn
Bósnio | bs
Búlgaro | bg
Catalão | ca
Chinês simplificado | zh_cn
Chinês tradicional | zh_hk
Croata | hr
Checo | cz
Coreano | ko
Cirílico sérvio | sr
Cingalês | si
Dinamarquês | da
Eslovaco | sk
Esloveno | sl
Espanhol | es
Estoniano | 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ão | lv
Lituano | lt
Macedônio | mk
Marathi | mr
Norueguês | no
Polonês | pl
Português Brasil | pt_br
Portugal português | pt_pt
Punjabi | pa
Romeno | ro
Russo | ru
Shuar | jiv
Sueco | sv
Telugu | te
Tailandês | thai
Turco | tr
Ucraniano | uk
Urdu | ur
Kannada | kn
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit onScriptInit | onApplicationInit onScriptInit | onScriptInit | onApplicationInit onFilterInit | onApplicationInit onScriptInit | onApplicationInit onScriptInit onValidate onValidateSuccess | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onScriptInit

sc_ldap_login
$ldapConn = sc_ldap_login($server[, $domain, $user, $password, $dn, $group]); É necessário realizar login pra fazer qualquer consulta de LDAP, essa macro estabelece a conexão e a amarração pelas credenciais do usuário. Seus parametros são: Servidor = Domínio = Usuário = Senha = DN = Grupo = Existem 3 possibilidades de retorno:
Retorno da macro | Situação
(string)'ldap_connect_error' | Erro ao conectar com o servidor/serviço LDAP.
(string)'ldap_bind_error' | Erro com autenticação, após conexão bem-sucedida com o servidor.
(resource) | Conexão e autenticação bem-sucedidos.
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_ldap_logout()
Esta Macro é utilizada para liberar a conexão após a utilização da macro sc_ldap_login. Ex1: sc_ldap_logout();
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_ldap_search($filter = 'all', $attributes = array() )
Esta macro é utilizada para realizar buscas no LDAP.
Parametros | Descrição
$filter | 'all' ou 'member': 'all' retorna todas as informações que o usuário logado enxerga 'member' retorna aquelas que ela faz parte
$attributes | Array de opções de filtro do ldap
Ex: $result = sc_ldap_search($filter, array('mail', 'displayname'));
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
onApplicationInit onValidate | onApplicationInit onValidate | onApplicationInit onValidate

sc_link(Coluna, Aplicação, Parâmetros, "Hint", "Target", Altura, Largura)
Assista um video Permite criar uma ligação de campo entre duas aplicações de forma dinâmica. Esta macro está disponível apenas na Consulta. Abaixo seguem a lista de parâmetros da macro, que devem ser informados separados por vírgula.
Parâmetro | Valor | Descrição
--- | --- | ---
`coluna` | Este parâmetro pode ser informando com aspas duplas ou aspas simples. Por exemplo: `sc_link("customerid", form_customer, custom={customerid}, "Dados do Cliente", "_self");` Formas aceitas de passagem do parâmetro: 'customerid' "customerid" | Este parâmetro obrigatório. Nele devemos informar o nome do campo(coluna) onde a ligação será criada, transformando o valor do campo em um link. Obs: Caso o campo informado já possua uma ligação de campo, a ligação definida na macro irá sobrescrever a ligação da interface.
`aplicação` | Este parâmetro pode ser informando com aspas duplas, aspas simples ou variáveis. Por exemplo: `$var_customer = 'form_customer';` `sc_link(customerid,$var_customer,custom={customerid},"Dados do Cliente","_self");` Formas aceitas de passagem do parâmetro: 'form_customer' "form_customer" $var_customer [glob_customer] | Este parâmetro obrigatório. Devemos informar o nome da aplicação de destino da ligação. Neste parâmetro é possível utilizar variáveis permitindo a alteração da aplicação de destino de acordo com sua regra de negócio.
`parametros` | Este parâmetro deve ser informado sem a proteção de aspas. Veja os exemplos abaixo de como devemos utilizar o parâmetro Exemplo com um valor `sc_link(customerid, form_customer, glb_custom={customerid}, "Dados do Cliente", "_self");` Exemplo com múltiplos valores `sc_link(customerid, form_customer, glb_orderid=10250;glb_custom={customerid}, "Dados do Cliente", "_self");` Formas de passagem do parâmetro: custom = {customerid} custom = 'ALFKI' custom = $var_customer custom - [glob_customer] | Este parâmetro não obrigatório. Nele definimos os valores que serão passados para a aplicação de destino como uma variável global. É definir mais um uma variável global no parâmetro, basta separá-los por ponto e vírgula (;). Exemplo: `glb_orderid=10250;custom={customerid}` Na aplicação de destino, demoves recuperar o valor como uma variável global. Por exemplo, ao criarmos uma ligação com um formulário customer, no SQL deste form podemos adicionar: `WHERE customerid = [glb_customer]` Para mais informações sobre a passagem de parâmetros veja nossa documentação sobre variáveis globais
`hint` | Este parâmetro pode ser informando com aspas duplas, aspas simples ou variáveis. Por exemplo: `sc_link(customerid, form_customer, custom={customerid}, "Dados do Cliente", "_self");` Formas aceitas de passagem do parâmetro: "Texto de ajuda\, com virgula" 'Dados do Cliente' {lang_texto} [glob_txt] $var_txt | Este parâmetro não é obrigatório. Recebe um texto do hint de ajuda da ligação, exibido ao posicionar o mouse sobre o link criado. É possível a utilização de langs para a definição das mensagens, permitindo a tradução do seu sistema. Obs: Para utilização de virgulas e apóstrofos no texto é necessário proteger com o scape "\"
`target` | Este parâmetro pode ser informando com aspas duplas ou aspas simples. Os valores disponíveis abaixo. Por exemplo: `sc_link(customerid, form_customer, custom={customerid}, "Dados do Cliente", "modal", 850, 600);` Formas aceitas de passagem do parâmetro: "_self" "_blank" "iframeT" "iframeL" "iframeR" "iframeB" "modal" | Define a forma de abertura da aplicação de destino. _self - Executa a aplicação de destino na mesma página, sobrepondo a aplicação de consulta; _blank - Executa a aplicação de destino em outra página (pop-up); iframeT - A aplicação de destino será exibida em um iframe acima da consulta (Top); iframeL - A aplicação de destino será exibida em um iframe a esquerda da consulta (Left) iframeR - A aplicação de destino será exibida em um iframe a direita da consulta (Right); iframeB - A aplicação de destino será exibida em um iframe abaixo da consulta (Bot); modal - Abre uma nova janela e bloqueia qualquer interação na janela principal; Obs: Se omitido, será atribuído o valor "_self". Neste parâmetro podemos definir a abertura do link no iframe ou modal, nestes casos devemos definir uma altura e largura nos dois parâmetros adicionais abaixo.
`altura` | Este parâmetro aceita apenas valores numéricos e sua unidade de medida é pixel. Por exemplo: `sc_link(customerid, form_customer, custom={customerid}, "Dados do Cliente", "modal", 850, 600);` | Parâmetro não obrigatório, disponível apenas ao utilizar as opções Iframe e modal no parâmetro Target Define a altura do iframe ou modal onde a aplicação de destino será exibida. Obs: Caso seja omitido o valor padrão será 440
`largura` | Este parâmetro aceita apenas valores numéricos e sua unidade de medida é pixel. Por exemplo: `sc_link(customerid, form_customer, custom={customerid}, "Dados do Cliente", "iframeB", 850, 600);` | Parâmetro não obrigatório, disponível apenas ao utilizar as opções Iframe e modal no parâmetro Target Define a largura do iframe ou modal onde a aplicação de destino será exibida. Obs: Caso seja omitido o valor padrão será 630
## Exemplos Ex. 1: Criando um link para a aplicação dados_cli.php, no campo cpf, passando a variável global [glo_emp] como empresa e o campo (variável local) {cpf} para a aplicação dados_cli.php:
    sc_link(cpf,dados_cli.php,empresa=[glo_emp];cpf={cpf},"Dados individuais do Cliente ", "_blank");
Ex. 2: Criando um link dinâmico para uma ou outra aplicação dependendo do valor no campo {tp_cli} e abrindo uma janela modal:
    if ( {tp_cli} == "F" ) {
        sc_link(tpcli, fisica.php, empresa=[glo_emp]; cpf={cpf}," Pessoa Física ", "modal", 500, 700);
    } else {
        sc_link(tpcli, juridica.php, empresa=[glo_emp]; cnpj={cnpj}," Pessoa Jurídica ", "iframeR");
    }
Ex. 3: - Criando um link para uma URL. Será executado um redirecionamento para a URL informada.
    sc_link(minha_coluna, http://www.scriptcase.com.br, ,"hint do link", '_blank');
Escopo da Macro
Aplicação Consulta
onRecord

sc_lin_cod_barra_arrecadacao({Código_Barra}, Código_Seguimento, Código_Moeda, {Valor}, {Livre})
Esta macro gera os valores que compõem o código de barras no padrão Febraban arrecadação.
Parâmetro | Descrição
Código_Barra | Variável na qual será armazenada a string contendo os valores do código de barras no padrão arrecadação (Febraban).
Código_Seguimento | Valor ou variável que contém o código do seguimento.
Código_Moeda | Valor ou variável que contém o código da moeda.
Valor | Valor ou variável que contém o valor do documento.
Livre | Valor ou variável que contém as 29 posições livres do código de barras.
Ex. 1: sc_lin_cod_barra_arrecadacao({codigo_barra}, 1, 6, {valor_tit}, {parte_livre});
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onExecute | onBeforeInsert onBeforeUpdate onLoad onRefresh onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onHeader onScriptInit onNavigate onRecord | onBeforeInsert onBeforeUpdate onClick onLoad onNavigate onLoadRecord onRefresh onValidateSuccess | onValidate onValidateSuccess | onFooter onHeader onScriptInit onRecord

sc_lin_cod_barra_banco({Código_Barra}, Código_Banco, Código_Moeda, {Valor}, {Livre}, {Data_Vencimento})
Esta macro gera os valores que compõem o código de barras no padrão Febraban bancário.
Parâmetro | Descrição
Código_Barra | Variável na qual será armazenada a string contendo os valores do código de barras no padrão arrecadação (Febraban).
Código_Banco | Valor ou variável que contém o código do banco.
Código_Moeda | Valor ou variável que contém o código da moeda.
Valor | Valor ou variável que contém o valor do documento.
Livre | Valor ou variável que contém as 29 posições livres do código de barras.
Data_Vencimento | Data de vencimento do documento (opcional). Se informada, o scriptcase calculará o "fator de vencimento". O formato deverá ser, sempre aaaammdd.
Ex. 1: sc_lin_cod_barra_banco({Codigo_barra}, 001, 1, {valor_tit}, {parte_livre}, {data});
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onExecute | onBeforeInsert onBeforeUpdate onLoad onRefresh onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onHeader onScriptInit onNavigate onRecord | onBeforeInsert onBeforeUpdate onClick onLoad onNavigate onLoadRecord onRefresh onValidateSuccess | onValidate onValidateSuccess | onFooter onHeader onScriptInit onRecord

sc_lin_digitavel_arrecadacao({Linha_Digitavel}, {Código_Barras})
Esta macro gera a linha digitável para boletos de cobrança, a partir da linha do código de barras, padrão arrecadação.
Parâmetro | Descrição
Linha_Digitavel | Variável na qual será armazenada a string contendo a linha digitável.
Código_Barras | Variável na qual está armazenada a string contendo os valores do código de barras.
Ex. 1: sc_lin_digitavel_arrecadacao({lin_dig}, {cod_barra});
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onExecute | onBeforeInsert onBeforeUpdate onLoad onRefresh onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onHeader onScriptInit onNavigate onRecord | onBeforeInsert onBeforeUpdate onClick onLoad onNavigate onLoadRecord onRefresh onValidateSuccess | onValidate onValidateSuccess | onFooter onHeader onScriptInit onRecord

sc_lin_digitavel_banco({Linha_Digitavel}, {Código_Barras})
Esta macro gera a linha digitável para bloquetos de cobrança, a partir da linha do código de barras, padrão bancário.
Parâmetro | Descrição
Linha_Digitavel | Variável na qual será armazenada a string contendo a linha digitável.
Código_Barras | Variável na qual está armazenada a string contendo os valores do código de barras.
Ex. 1: sc_lin_digitavel_banco({Linha_Digitavel}, {Código_Barra});
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onExecute | onBeforeInsert onBeforeUpdate onLoad onRefresh onValidateSuccess | onFooter onHeader onScriptInit | onClick onFooter onHeader onScriptInit onNavigate onRecord | onBeforeInsert onBeforeUpdate onClick onLoad onNavigate onLoadRecord onRefresh onValidateSuccess | onValidate onValidateSuccess | onFooter onHeader onScriptInit onRecord

sc_log_add("Ação", "Mensagem")
Assista um video Esta macro tem como objetivo adicionar um registro a tabela de log, desta forma tornando a mensagem e/ou o nome da ação customizavel para o desenvolvedor. Os parâmetros podem utilizar variáveis PHP. Ex: sc_log_add("access", "Aplicação foi acessada pelo usuário trial");
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Consulta | Aplicação Formulário
onExecute | onValidate | onScriptInit | onValidate

sc_log_split({descricao})
Assista um video Esta macro tem como objetivo possibilitar o acesso as informações gravadas no campo descrição da tabela de log, possibilitando a manipulação dos dados anteriores e posteriores dos registros envolvidos em forma de array. Estas informações são gravadas no campo "descrição" da tabela de log, no formato de uma string com delimitadores. Ex: $arr_description = sc_log_split({description}); Formato de entrada: -> keys fields Array ( [clienteid] => ANTON ) [fields] => Array ( [old] => Array ( [CEP] => 50710500 [Endereco] => Rua Desembargador Joao Paes 657 [Bairro] => Farol [Estado] => RS ) [new] => Array ( [CEP] => 53230630 [Endereco] => Avenida Presidente Kennedy, 1001 [Bairro] => Peixinhos [Estado] => PE ) ) )
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Consulta | Aplicação Formulário
onExecute | onLoad | onScriptInit | onLoad

sc_lookup(Dataset, "Comando SQL", "Conexão")
Esta macro permite que o usuário execute comandos SQL e tenha acesso ao "dataset" proveniente do comando. O "dataset" fica disponível, em forma de array (linha/coluna). O parâmetro "conexão" é opcional, sendo necessário, apenas, se o comando for executado em uma base de dados diferente da especificada para a aplicação. O parâmetro de conexão não aceita variável. Você deve digitar o nome da conexão que o comando SQL irá executar. Ex. 1: sc_lookup(dataset, "select clienteid, nomecliente, limitecred from clientes" ); Para ter acesso à primeira linha (dataset), teremos: {clienteid} = {dataset[0][0]}; {nomecliente} = {dataset[0][1]}; {limitecred} = {dataset[0][2]}; Para ter acesso à segunda linha (dataset), teremos: {clienteid} = {dataset[1][0]}; {nomecliente} = {dataset[1][1]}; {limitecred} = {dataset[1][2]}; Caso ocorra erro na execução do comando sql, a variável atribuida ao dataset retornará como "false" e a mensagem de erro estará disponível na variável "dataset_erro". É importante, também, verificar se o select retornou dados, para evitar o acesso a variáveis inexistentes, uma vez que o array de saída só será criado se o comando select retornar dados. Ex. 2: sc_lookup(meus_dados, "select clienteid, nomecliente, limitecred from clientes"); if ({meus_dados} === false) { echo "Erro de acesso. Mensagem = " . {meus_dados_erro}; } elseif (empty({meus_dados})) { echo "Comando select não retornou dados "; } else { {clienteid} = {meus_dados[0][0]}; {nomecliente} = {meus_dados[0][1]}; {limitecred} = {meus_dados[0][2]}; } Ex. 3 : O comando SQL também pode ser composto de campos da aplicação (variáveis locais) ou de variáveis globais: sc_lookup(dataset, "select valor pedido from pedidos where clienteid = '{clienteid} ' and cod_vendedor = [var_glo_vendedor]"); Obs: Em qualquer circunstância, o comando tem que ser encerrado com ponto e vírgula ";". Obs2: Não recomendamos o uso da macro sc_lookup com retornos muito grandes, para esse tipo de ocasião recomendamos o uso da macro sc_select
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_lookup_field(dataset, "comando SQL", "nome_conexão")
Esta macro possibilita que o desenvolvedor execute um comando SELECT por vez e tenha acesso aos dados retornados através do parâmetro `dataset`, em formato de array: `{dataset[numero_da_linha][nome_da_coluna]}`. Para executar comandos que retornem uma quantidade elevada de dados, recomendamos a utilização da sc_select para obter uma melhor performance. Diferente da macro `sc_lookup`, onde informamos o índice `{dataset[0][0]}`, na macro `sc_lookup_field` devemos informar o nome da coluna que desejamos recuperar os dados `{dataset[0][field_name]}` A forma de montagem do array de retorno, onde devemos informar o nome da coluna, torna esta macro incompatível com os seguintes banco de dados: MSSQL Server, Access e DB2. Nestes casos, recomendamos a utilização da macro `sc_lookup`. Confira abaixo os detalhes sobre os parâmetros da macro.
Parâmetro | Descrição | Exemplos
--- | --- | ---
`dataset` | Este parâmetro é obrigatório e deve ser informado sem espaço ou caracteres especiais e não aceita a utilização de variáveis. Ele define o nome da variável que receberá o retorno do comando SELECT executado pela macro. Em caso de erro na execução do comando SQL este parâmetro retornará `false` e a mensagem de erro estará disponível na variável "dataset_erro". Veja abaixo um exemplo simples de validação e exibição da mensagem de erro.
    if ( {meus_dados} === false ) {

        echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

    }
| Abaixo vemos um exemplo de um comando select simples, onde o `dataset` está definido como meus_dados.
    sc_lookup_field("meus_dados", "select field_01, field_02, field_03 from tb_name");
O array com o resultado deste select será montado da seguinte forma:
     Array (
        [0] => Array (
                [field_01] => 1
                [field_02] => OFFICE EQUIPMENT
            )
        [1] => Array (
                [field_01] => 2
                [field_02] => FIXED TELEPHONY
            )
    )
No exemplo acima, o comando retornou duas linhas de registro (0 e 1) e em cada linha duas colunas (field_01 e field_02). Para recuperarmos o valor do `dataset` devemos informar entra chaves {} o nome do dataset (meus_dados) seguido do número da linha entre colchetes [0] e o nome da coluna [field_01]. Confira o exemplo abaixo
    {meus_dados[numero_da_linha][nome_da_coluna]}
`comando_select` | Este parâmetro é obrigatório e pode ser definido informado o comando diretamente na macro protegido com aspas(Duplas ou Simples) ou utilizando uma variável(Local ou Global). |
    // comando direto na macro
    sc_lookup_field("retorno_select", "select field_01, field_02, field_03 from tb_name");
    // Exemplo com variável
    $comando_select = "select field_01, field_02, field_03 from tb_name"
    sc_lookup_field("retorno_select", $comando_select);
`nome_conexao` | O parâmetro "conexão" é opcional, e deve ser informado se o comando for executado em uma base de dados diferente da especificada para a aplicação. Alem disso, este parâmetro não aceita a utilização de variáveis, sendo necessário digitar o nome da conexão para que a macro execute corretamente. |
    // Exemplo informando o nome da conexão
    sc_lookup_field("retorno_select", "select field_01, field_02, field_03 from tb_name", "nome_conexao");
## Exemplos Exemplo 1: Acesso várias linhas
    sc_lookup_field(meus_dados, "select field_01, field_02, field_03 from tb_name");

    //Para ter acesso à primeira linha (dataset), devemos informar:
    {field_01} = {meus_dados[0]['field_01']};
    {field_02} = {meus_dados[0]['field_02']};
    {field_03} = {meus_dados[0]['field_03']};

    //Para ter acesso à segunda linha (dataset), teremos:
    {field_01} = {meus_dados[1]['field_01']};
    {field_02} = {meus_dados[1]['field_02']};
    {field_03} = {meus_dados[1]['field_03']};
Exemplo 2: Com validação dos dados:
    $comando_sql = "select field_01, field_02, field_03 from tb_name";

    sc_lookup_field(meus_dados, $comando_sql);

    if ( {meus_dados} === false ) {

        echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

    } elseif ( empty({meus_dados}) ) {

        echo "Comando select não retornou dados ";

    } else {

        {clienteid} = {meus_dados[0]['field_01']};
        {nomecliente} = {meus_dados[0]['field_02']};
        {limitecred} = {meus_dados[0]['field_03']};

    }
Exemplo 3: Utilizando o parâmetro conexão
    $comando_sql = "select field_01, field_02 from tb_name where field_03 = '{field_03} ' and field_02 = [var_global]"

    sc_lookup_field(meus_dados, $comando_sql, "conn_name");
Exemplo 4: Utilizando variáveis locais e globais no comando da macro
    $comando_sql = "select field_01, field_02 from tb_name where field_03 = '{field_03} ' and field_02 = [var_global]"

    sc_lookup_field(meus_dados, $comando_sql);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Aplicação Menu árvore | Aplicação Report PDF
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, De, Para, Assunto, Mensagem, Tipo_Mens, Cópias, Tp_Cópias, Porta, Tp_Conexao, Anexo, SSL, reply_to)
Assista um video Esta macro tem por finalidade o envio de e-mail.
Parâmetro | Descrição
SMTP | Endereço do servidor SMTP (string ou variável contendo o Endereço do servidor SMTP).
Usr | Usuário do servidor SMTP (string ou variável contendo o Usuário do servidor SMTP).
Pw | Senha do servidor SMTP (string ou variável contendo a Senha do servidor SMTP).
De | E-mail de origem (string ou variável contendo o E-mail de origem).
Para | Lista de e-mails que devem receber cópia da mensagem , podendo ser uma string ou variável contendo um ou mais e-mail's, separados por ";", ou uma variável contendo um array de e-mail's.
Assunto | Título da mensagem (string ou variável contendo o título da mensagem).
Mensagem | Mensagem a ser enviada (string ou variável contendo a mensagem).
Tipo_Mens | Tipo do texto da mensagem a ser enviada, sendo: "T" para somente texto ou "H" para texto e/ou html.
Cópias | Lista de e-mails que devem receber cópia da mensagem, podendo ser uma string ou variável contendo um ou mais e-mail's, separados por ";", ou uma variável contendo um array de e-mail's.
Tp_Cópias | Tipo de cópias a serem enviadas: CCC para cópias visíveis e BCC para cópias ocultas. Se omitido, o Scriptcase assumirá o valor default: BCC.
Porta | Porta utilizada pelo servidor de e-mail. Utilize a porta 465 para segurança com SSL, a porta 587 para segurança com TLS ou a porta 25 como porta sem segurança. Se omitido, o Scriptcase assumirá o valor default: 25
Tp_conexao | Indicativo para conexão segura. Utilize S para SSL, T para TLS ou N para não segura. Se omitido, o Scriptcase assumirá o valor default:N.
Anexo | Caminho absoluto do arquivo a ser enviado por anexo.
SSL | Parâmetro para adição das configurações de SSL. Caso seja necessário adicionar mais de uma configuração, use ";" para separá-las. Ex: $ssl = 'allow_self_signed=false;verify_peer=false';
reply_to | É o endereço de e-mail para o qual a mensagem de resposta é enviada, quando você deseja que a resposta vá para um endereço de e-mail diferente do endereço De
OBS: Para utilização de conexão segura, a extensão do PHP "php_openssl" deverá estar habilitada. anexos: Lista de arquivos a serem anexados, podendo ser uma string ou variável contendo um ou mais endereços de arquivos, separados por ";", ou uma variável contendo um array de endereços de arquivos. #### Exemplo 1: Enviando e-mail com o parâmetro reply_to Para usar o parâmetro replay_to é preciso incluir todos os outros parâmetros anteriores a ele, basta informá-los vazios.
    sc_mail_send('smtp.meuserver.com.br', 'usr', 'pw', 'de@netmake.com.br', 'para@netmake.com.br', 'teste envio
    de e-mail', 'mensagem', 'H', 'abc@cop.com.br;zxy@cop.com.br', 'CCC', '587', '', 'c:/teste/arq.txt','','reply@netmake.com.br');
#### Exemplo 2: Utilizando variáveis como parâmetros e definindo a porta.
    sc_mail_send([glo_smtp], [usuar], [glo_pw], {origem}, {destino}, {assunto}, {mensagem}, 'T', [glo_copias], 'CCC', '419', 'S', {anexos});
#### Exemplo 3: Servidor sem usuário e senha e opção de não enviar cópias e sem informação da porta. A quantidade de e-mail's, efetivamente enviados, é disponibilizada através da variável especial "sc_mail_count". Caso ocorra erro no envio do e-mail, a variável especial "sc_mail_ok" retornará como "false" e a mensagem de erro estará disponível na variável especial "sc_mail_erro".
    sc_mail_send([glo_smtp], '', '', 'de.netmake.com.br', {destino}, {assunto}, {mensagem}, 'H', '', '', '', '', [glo_att]);
Exemplo 4: Validação do e-mail com a {sc_mail_ok}
    sc_mail_send([glo_smtp], '', '', 'de@netmake.com.br', {destino}, {assunto}, {mensagem}, 'H');

    if ( {sc_mail_ok} ) {

      echo "Enviados {sc_mail_count} e-mail com sucesso!!";

    } else {

      sc_error_message({sc_mail_erro});

    }
#### Exemplo 5: Envio de arquivos em anexo
    //Parâmetros do e-mail
    $mail_smtp_server    = 'smtp.gmail.com';   // Servidor SMTP
    $mail_smtp_user      = 'doc@gmail.com.br'; // Usuário de acesso ao SMTP
    $mail_smtp_pass      = 'password';         // Senha do usuário SMTP informado acima
    $mail_from           = 'doc@gmail.com.br'; // E-mail de origem da mensagem
    $mail_to             = 'doc@gmail.com.br'; // E-mail do destinatário da mensagem
    $mail_subject        = 'Assunto';          // Assunto do e-mail
    $mail_message        = 'Corpo do e-mail';  // Corpo do e-mail
    $mail_format         = 'T';                // Formato do corpo do e-mail: T (Apenas texto) ou H (Para texto e HTML)
    $mail_copies         = '';                 // Parâmetro que define os e-mails em cópia.
    $mail_tp_copies      = '';                 // Tipo da cópia: BCC (Para cópia oculta) ou CCC (Para cópia normal)
    $mail_port           = '465';              // Porta do servidor de envio
    $mail_tp_connection  = 'S';                // Utilização ou não de conexão segura: S (Conexão segura) ou N (Conexão não segura)
    $mail_attachments    = 'c:/teste/arq.txt'  // Diretório do arquivo que será enviado em anexo.

    //Chamada da macro
    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);
#### Exemplo 6: Envio de múltiplos arquivos em anexo
    //Parâmetros do e-mail
    $mail_smtp_server    = 'smtp.gmail.com';   // Servidor SMTP
    $mail_smtp_user      = 'doc@gmail.com.br'; // Usuário de acesso ao SMTP
    $mail_smtp_pass      = 'password';         // Senha do usuário SMTP informado acima
    $mail_from           = 'doc@gmail.com.br'; // E-mail de origem da mensagem
    $mail_to             = 'doc@gmail.com.br'; // E-mail do destinatário da mensagem
    $mail_subject        = 'Assunto';          // Assunto do e-mail
    $mail_message        = 'Corpo do e-mail';  // Corpo do e-mail
    $mail_format         = 'T';                // Formato do corpo do e-mail: T (Apenas texto) ou H (Para texto e HTML)
    $mail_copies         = '';                 // Parâmetro que define os e-mails em cópia.
    $mail_tp_copies      = '';                 // Tipo da cópia: BCC (Para cópia oculta) ou CCC (Para cópia normal)
    $mail_port           = '465';              // Porta do servidor de envio
    $mail_tp_connection  = 'S';                // Utilização ou não de conexão segura: S (Conexão segura) ou N (Conexão não segura)
    // Array com diretórios dos arquivos que serão enviados em anexo
    $mail_attachments    = array('C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\file\img\lena_color_png.png','C:\Program Files\NetMake\v9-php81\wwwroot\scriptcase\file\img\teste.txt');

    //Chamada da macro
    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);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | onApplicationInit onExecute onLoad | onFooter onHeader onScriptInit onRecord

sc_make_link(Aplicação, Parâmetros)
Assista um video Esta macro tem por objetivo a criação de uma string contendo os dados de um link para outra aplicação, dentro dos padrões do Scriptcase.. O uso desta macro é para os casos em que o usuário esteja escrevendo seu próprio código html e nescessite fazer um link para outra aplicação Scriptcase.
Parâmetro | Descrição
Aplicação | Nome da aplicação para a qual queremos estabelecer o link.
Parâmetro | Parâmetros necessários para que a aplicação chamada possa funcionar. .
Devem ser informados: o nome do parâmetro, o sinal de atribuição "=" e o valor ou variável a ser atribuído. Havendo mais de um parâmetro, estes deverão ser separados por ";" (ponto e vírgula). Ex. 1: Criando uma string com um link para a aplicação dadoscli.php, sem passagem de parâmetros. $string_link = sc_make_link(dadoscli.php); Ex. 2: Criando uma string com um link para a aplicação dadoscli.php, com passagem de parâmetros. $string_link = sc_make_link(dadoscli, parm1={empresa};parm2=[glo_filial]);
Escopo da Macro
Aplicação Blank | Aplicação Gráfico | Aplicação Consulta | Aplicação Controle
onExecute | onFooter onHeader onScriptInit | onScriptInit onNavigate onRecord | onValidate onValidateSuccess

sc_master_value("Objeto", "Valor")
Assista um video Atualiza um dado na aplicação mestre, em tempo real, de acordo com alterações realizadas em determinado campo da aplicação detalhe.
Parâmetro | Descrição
Objeto | Nome do objeto a ser atualizado na aplicação mestre. Ao informar o nome de um campo, não é necessário utilizar as {}.
Valor | Valor que o objeto especificado receberá. O valor pode ser um campo ou variável.
Ex. 1: sc_lookup(result,"SELECT SUM(Total) FROM adm_pedido_itens WHERE PedidoID = '{PedidoID}'"); //Utilizando a macro sc_format_num() para formatar o valor que será atualizado no mestre $valor = sc_format_num({result[0][0]}, '.', ',', 2, 'S', 1, ''); sc_master_value('ValorPedido', $valor); * Caso o valor, que será atualizado no mestre, seja numérico, você deve usar a macro sc_format_num() para formatá-lo. Para ver a documentação da macro, clique aqui.
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação 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)
Esta macro retira os itens de menu passados por parâmetros. Pode ser usada em aplicações de menu ou menu árvore. Observe que, os parâmetros a serem passados, são os "ID" dos ítens. Caso o item de menu que você remova da exibição tenha nós "filhos", estes também serão omitidos.
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_menu_disable(Id_Item1)
Esta macro desabilita os itens de menu passados como parâmetros. pode ser usada em aplicações de menu ou menus de árvore. Observe que, os parâmetros a serem passados, são os "ID" dos ítens. Caso o item de menu que você desabilite da exibição tenha nós "filhos", estes também serão desabilitados.
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_menu_force_mobile(boolean)
Macro utilizada para forçar a criação do menu para dispositivos móveis. O parámetro (true ou false) é opcional, se não for passado, assume true(ligar modo mobile) Ex1: sc_menu_force_mobile(true); Ex2: sc_menu_force_mobile(false);
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onLoad | onLoad | onApplicationInit onLoad

sc_menu_item
Esta variável é disponível apenas nas aplicações de MENU e tem por objetivo dar acesso ao ítem que foi selecionado no menu. Desta forma, o usuário poderá tomar decisões antes que a aplicação seja executada. Ex. 1: Para limpar variáveis globais. if ({sc_menu_item} == "item_1") { sc_reset_global([global1], [global2]); } Ex. 2: Uso do botão da barra de ferramentas do menu. if ({sc_menu_item} == "btn_1") { sc_apl_conf("form_customer", "start", "new"); } Ex 3: Se uma determinada aplicação necessitar de uma variável global e esta não estiver preenchida, podemos chamar uma outra aplicação para que o usuário preencha a informação necessária. if ({sc_menu_item} == "item_5" && (!isset([glo_empresa]) || empty([glo_empresa]))) { sc_redir(apl_inf_emp); }
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onExecute | onExecute | onApplicationInit onExecute

sc_redir(Aplicação, Parâmetro01; Parâmetro02, Target, Error, alt_modal, larg_modal)
Assista um video Esta macro tem por objetivo redirecionar o processamento para outra aplicação ou URL. Caso a aplicação de redirecionamento utilize parâmetros, estes devem ser passados da seguinte forma: 1. Após o nome da aplicação, utilizar o delimitador vírgula (,) 2. Informar o nome do parâmetro, o sinal de igualdade (=) e o valor ou variável a ser atribuída. 3. Havendo mais de um parâmetro, utilizar o delimitador ponto e vírgula (;) 4. Poderá ser informado o target no qual a aplicação será aberta (default=_self), podendo ser: _self, _parent, _blank ou modal. 5. Parâmetro opcional para definir se vai redirecionar caso existam mensagens de erro na aplicação. "E" não redireciona caso existam erros e "F" força redirecionamento mesmo se houver erro na aplicação. Nas aplicações de formulário, alguns eventos onde essa macro pode ser utilizada dependem da atualização da base de dados (onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate or onBeforeDelete) esses eventos são automaticamente protegidos por um controle de transação desde que a conexão seja a mesma da aplicação. Contudo, se o usuário deseja fazer um controle de transação, ele precisa iniciar essa macro e finalizar com "sc_commit_trans()" macro para confirmar a atualização ou o "sc_rollback_trans" para cancelar a transação. A macro em questão não da suporte ao parâmetro Modal quando utilizada em botões do tipo Run Ex. 1: Aplicação sem parâmetros e sem target. if ([glo_usuario] == "teste") { sc_redir(aplx.php); } Ex. 2: Aplicação com parâmetros e sem target sc_redir(Aplicação, Parametro01; Parametro02, Target, Error) if ([glo_usuario] == "teste") { sc_redir(aplx.php, parm1={clienteid}; parm2="xxx"); } Ex. 3: Aplicação sem parâmetros e com target. if ([glo_usuario] == "teste") { sc_redir(aplx.php, "", "_parent"); } Ex. 4: Aplicação com parâmetros e com target. if ([glo_usuario] == "teste") { sc_redir(aplx.php, parm1={clienteid}; parm2="xxx", "_blank"); } Ex. 5: URL. if ([glo_usuario] == "teste") { sc_redir(http://www.minha_pagina.com.br); } OBS: Tudo que foi passado como parâmetro pela macro será acessível como variável global na aplicação a qual foi redirecionada. EX: sc_redir(aplx.php, parm1={clienteid}; parm2="xxx"); Na aplicação aplx.php o parâmetro poderá ser acessado fazendo chamada a variável global [parm1] e [parm2]
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onCalendarApplicationInit onCalendarScriptInit onScriptInit onLoad onValidate onValidateSuccess | onApplicationInit onScriptInit | onClick 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("Aplicação", "Propriedade")
Assista um video Esta macro tem por objetivo apagar todas as alterações efetuadas pela macro sc_apl_conf. O Parâmetro "aplicação" é opcional. Se informado, serão apagadas apenas as alterações da aplicação informada. Ex. 1: Apagando as alterações da aplicação "minha_apl", apenas a propriedade "start". sc_reset_apl_conf("minha_apl", "start"); Ex. 2: Apagando todas as alterações da aplicação "minha_apl". sc_reset_apl_conf("minha_apl"); Ex. 3: Apagando as alterações de todas as aplicações. sc_reset_apl_conf();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onApplicationInit onCalendarApplicationInit 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
Essa macro deve ser utilizada quando necessário a remoção do controle da macro sc_apl_default() sobre as aplicações. Ex1: sc_reset_apl_default();
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onScriptInit | onScriptInit | onScriptInit | onScriptInit | onScriptInit | onScriptInit

sc_reset_apl_status
Esta macro tem por objetivo limpar todas as variáveis de segurança, setadas através da macro sc_apl_status. Ex. 1: sc_reset_apl_status();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onApplicationInit onCalendarApplicationInit onCalendarScriptInit 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
Assista um video Esta macro apaga as trocas feitas utilizando a macro "sc_change_connection". Ex. 1: sc_reset_change_connection();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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
Assista um video Esta macro desfaz as edições de conexão feitas pela macro "sc_connection_edit". Ex. 1: sc_reset_connection_edit();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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
Esta macro desfaz as conexões feitas pela macro "sc_connection_new". sc_reset_connection_new();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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([Variável_Global1], [Variável_Global2] ...)
Assista um video Esta macro tem por objetivo apagar variáveis globais, armazenadas na sessão do PHP. Ex. 1: sc_reset_global ([Login], [Senha]);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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
Assista um video Esta macro tem por objetivo restaurar os ítens do menu, deletados através da macro "sc_menu_delete". Ex. 1: sc_reset_menu_delete();
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_reset_menu_disable
Esta macro tem por objetivo habilitar os ítens do menu, desabilitados através da macro "sc_menu_disable". Ex. 1: sc_reset_menu_disable();
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onApplicationInit onLoad | onApplicationInit onLoad | onApplicationInit onLoad

sc_rollback_trans("Conexão")
Assista um video Esta macro tem por objetivo cancelar um set de transações na base de dados. O parâmetro "conexão" é opcional, sendo necessário, apenas, se o comando for executado em uma base de dados diferente da especificada para a aplicação.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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 é disponível apenas nas aplicações de MENU e tem por objetivo dar acesso ao nome da aplicação que foi selecionada no menu. Desta forma, o usuário poderá tomar decisões antes que a aplicação seja executada. Ex. 1: Para limpar variáveis globais. if ({sc_script_name} == "apl1") { sc_reset_global([global1], [global2]); } Ex. 2: Se uma determinada aplicação necessitar de uma variável global e esta não estiver preenchida, podemos chamar uma outra aplicação para que o usuário preencha a informação necessária. if ({sc_script_name} == "apl1" && (!isset([glo_empresa]) || empty([glo_empresa]))) { sc_redir(apl_inf_emp); }
Escopo da Macro
Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onExecute | onExecute | onExecute

sc_select(dataset, "Comando SQL", "Conexão")
Assista um video Esta macro permite que o usuário execute comandos SQL e tenha acesso ao "dataset" proveniente do comando. Diferente da macro sc_lookup, esta macro não manipula o dataset, deixando-o em sua forma original, cabendo ao usuário toda a manipulação. Caso ocorra erro na execução do comando sql, a variável atribuída ao dataset retornará como "false" e a mensagem de erro estará disponível na variável "dataset_erro". O parâmetro "conexão" é opcional, sendo necessário se o comando for executado em uma base de dados diferente da especificada para a aplicação. Neste parâmetro não é possível a utilização de variáveis.
    Ex. 1:
    sc_select(meus_dados, "select clienteid, nomecliente, limitecred from clientes");
    if ( {meus_dados} === false ) {

      echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

    } else {

      while ( !{meus_dados}->EOF ) {

        {nome_cliente} = {meus_dados}->fields[1];
        {meus_dados}->MoveNext();

      }

      {meus_dados}->Close();

    }
Ex. 2: O comando SQL também pode ser composto de campos da aplicação (variáveis locais) ou de variáveis globais: sc_select(dataset,"select valor pedido from pedidos where clienteid = '{clienteid}' and cod_vendedor = [var_glo_vendedor]"); Observação: Em qualquer circunstancia, o comando tem que ser encerrado com ponto e vírgula ";".
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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})
Assista um video Esta macro modifica o SELECT dinamicamente: É possível alterar dinamicamente os campos de uma consulta, através da alteração dinâmica do select original. Ex. 1: Temos uma tabela com as colunas ano e os meses de janeiro a dezembro. Gostaríamos de ter uma consulta, que, à partir de um parâmetro, exibisse os anos e apenas um determinado mês. Supondo que o parâmetro venha informado através de uma variável global de nome "exibir_mes", nossa aplicação teria a seguinte estrutura: Cláusula select: select ano, par_mes from tabela sc_select_field(par_mes) = [exibir_mes]; sc_label(par_mes) = [exibir_mes]; Desta forma, além de alterar o select, estamos alterando o label da coluna da consulta. Obs: Este comando deve ser implementado no evento "onInit";
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta
onScriptInit | onScriptInit

sc_select_order("Campo")
Assista um video É possível, em tempo de execução da aplicação de consulta, alterar a cláusula ORDER BY do select principal da consulta. Para isso, é necessário que no comando SQL original da consulta já exista pelo menos uma cláusula ORDER BY, pois será feita a subtituição de determinada cláusula pela nova. Ex. 1: Cláusula select: select codigo, nome, valor from tabela order by codigo Para mudar a ordem, de codigo para nome, teremos: sc_select_order("codigo") = "nome"; Ex. 2: Cláusula select: select codigo, nome, valor, data from tabela order by codigo, nome, valor Para mudar a ordem, de nome para data, teremos: sc_select_order("nome") = "data"; Obs: Este comando deve estar no contexto de "processar antes do select".
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta
onScriptInit | onHeader onScriptInit

sc_select_where(add)
Assista um video É possível, em tempo de execução da aplicação de consulta, adicionar um campo/condição à cláusula WHERE da consulta. Ex. 1: Adiciona tudo que estra dentro das aspas duplas ao where do select da consulta. if (empty({sc_where_atual})){ sc_select_where(add) = "where campoX > [variavel_global]"; } else{ sc_select_where(add) = "AND campoX > [variavel_global]"; }
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta
onScriptInit | onHeader onScriptInit

sc_send_mail_api($arr_settings)
Esta macro permite o envio dinâmico de e-mails integrados com as APIs do Mandrill e Amazon SES. É possível tamém o envio de e-mail utilizando o protocolo SMTP Esta macro utliza os mesmos parâmetros do mandrill para envio de e-mail, independente do Gateway(Mandril, Amazon SES ou SMTP) selecionado. clique aqui e veja a lista dos parâmetros que pode ser utilizados. Esta macro contem um único parâmetro "$arr_settings", que recebe um array com as informações de envio de e-mail. Para mais informações sobre os parâmetros o mandirll clique aqui
Parâmetro | Descrição
$arr_settings | Array com as informações para a utilização das APIs.
Índices do Array
Índices do Array | Descrição
profile | Nome de alguma API já configurada em "Ferramentas > API", como pode ser visto no Exemplo 1. Ao informar um profile, o índice settings não deve ser informado.
settings | Configurações do servidor de envio de e-mail. As informações devem está de acordo com a API utilizada. Obs.: Ao informar as configurações o indice Profile é desconsiderado.
message | Mensagem que será enviada por e-mail. Assunto, corpo, destinatário, etc.
Exemplo 1: Envio de e-mail utilizando um Profile pré configurado em "Ferramentas > API".
    if({api_type} == 'smtp' ){
    	$var_config = array(
    		'profile' => 'yahoo_example',

    		'message' => [
    			'html'          => {msg},
    			'text'          => '',
    			'to'            => $arr_merge,
    			//'attachments' => array('/var/www/arquivo.txt','/var/www/arquivo2.txt'),
    			'subject'       => {subject}
    		]
    	);
    }

    sc_send_mail_api($var_config);
Exemplo 2: Envio de e-mail por 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'          => {msg},
    				   'text'          => '',
    				   'to'            => $arr_merge,
    				   //'attachments' => array('/var/www/arquivo.txt','/var/www/arquivo2.txt'),
    				   'subject'       => {subject}
    		]
    	);
    }

    sc_send_mail_api($var_config);
Exemplo 3: Envio de e-mail usando o Mandrill
    if({api_type} == 'mandrill' ){
    	$var_config = array(
    		'settings' => [
    				   'gateway'       => 'mandrill',
    				   'api_key'   	   => {api_key},
    				   'from_email'    => {from_email},
    				   'from_name'     => {from_name}
    		],

    		'message' => [
    				   'html'          => {msg},
    				   'text'          => '',
    				   'to'            => array($arr_merge),
    				   //'attachments' => array('/var/www/arquivo.txt','/var/www/arquivo2.txt'),
    				   'subject'       => {subject}
    		]
    	);
    }

    sc_send_mail_api($var_config);
Exemplo 4: Envio de e-mail usando o Amazon SES
    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'          => {msg},
    	        'text'          => '',
    	        'to'            => array($arr_merge),
    	        'subject'       => {subject}
    	    ]
    	);
    }

    sc_send_mail_api($var_config);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Aplicação Menu árvore | Aplicação Report PDF
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_sms($arr_settings)
Esta macro recebe um array como parâmetro de configuração que contém a mensagem, o destinatário, o gateway e a chave da API.
Parâmetro | Descrição
$arr_settings | Array com as informações para a utilização na macro.
Índice do Array | Descrição
to: | Destinatário de SMS
message: | O conteúdo da mensagem de texto
gateway: | API para ser utilizada (clickatell, plivo ou twilio)
auth_token: | Token de autenticação de API
Exemplo 1 - Estrutura básica de envio utilizando clickatell:
    $arr_settings = array(
    	'message' =>
    	[
    		'to' => '+55999999999',
    		'message' => 'Scriptcase SMS'
    	],
    	'settings' =>
    	  [
    		'gateway' => 'clickatell',
    		'auth_token' => '54Cik1-gQ4GqtuN70d4y4w=='
    	]
    );

    sc_send_sms($arr_settings);
Exemplo 2 - Estrutura básica de envio utilizando Plivo:
    $arr_settings = array(
      'message' =>
      [
          'from' => 'https://s3.amazonaws.com/plivosamplexml/speak_url.xml',
          'to' => '+5581984796338',
          'message' => 'Scriptcase SMS'
      ],
      'settings' =>
      [
          'auth_id' => 'MAMDHIYZM0YJCZYTJLNJ',
          'gateway' => 'plivo',
          'auth_token' => 'ZGExOTgzZjNiOTE4YjBiN2ExMzdlZGYxYzQ4Yjc1'
      ]
    );

    sc_send_sms($arr_settings);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Aplicação Menu árvore | Aplicação Report PDF
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
Assista um video Esta macro disponibiliza o número sequencial do registro que está sendo processado na aplicação de consulta. Está disponível no eventoonRecord. Ex. 1: if({sc_seq_register} == 10) { // ultima linha da página {total} = {sum_total}; }
Escopo da Macro
Aplicação Consulta
onRecord

sc_set_export_name ("tipo_exportacao", "nome_do_arquivo")
Os arquivos resultantes das exportações realizadas na consulta, são armazenados no diretório tmp (temporário) especificado nas configurações da ferramenta. Tanto em desenvolvimento quanto em produção, os arquivos são armazenados com o prefixo sc_ e uma chave única. Após um tempo, os arquivos com o prefixo sc_ serão apagados. Para evitar que os arquivos exportados sejam apagados, é possível utilizar esta macro para renomeá-los. ### Lista de Parâmetros
Parâmetro | Valor | Descrição
"tipo_exportacao" | String contendo o tipo da exportação, que deve ser protegida por aspas. Exemplo de uso na macro. "csv" Lista das valores suportados: csv json pdf rtf xml xls word | Devemos informar o tipo de arquivo que desejamos renomear. Esta parâmetro não aceita variáveis.
"nome_arquivo" | String contendo o nome que o arquivo vai receber. Exemplo de uso na macro: "Novo nome do arquivo" Valores suportados String com o nome Variável Global | Parâmetro obrigatório, onde devemos informar o nome que o arquivo irá receber.
### Confira abaixo alguns exemplos de utilização da macro: Exemplo 1 -Definindo um nome a um arquivo PDF `sc_set_export_name("pdf", "meu_arquivo_pdf.pdf");` Exemplo 2 - Definindo um nome de um arquivo passando o valor por uma variável global. `sc_set_export_name("json", [glo_nome_json]);`
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta
onScriptInit | onApplicationInit onScriptInit

sc_set_fetchmode(parm);
Assista um video Esta macro permite modificar o tipo de retorno do dataset dos comandos select. A macro será processada antes da execução do comando SQL, informando o parâmetro, o dataset irá retornar o índice ou o nome das colunas. parm = 0: Retorna um array com o indice e o nome das colunas (Padrão do Scriptcase) parm = 1 : Retorna um array apenas com com o indice das colunas Exemplo 1: Retornando um array com o nome das colunas. sc_set_fetchmode(0); sc_select(meus_dados, "SELECT customerid, stateid, birthdate, creditlimit FROM customers where customerid = 'ALFKI'"); while (!$meus_dados->EOF){ $meus_dados->fields['customerid']; $customer = $meus_dados->fields['stateid']; $customer = $meus_dados->fields['birthdate']; $meus_dados->MoveNext(); } $meus_dados->Close(); -------------------------------------------------------------------------------------- Exemplo 2: Retornando um array apenas com com o índice das colunas. sc_set_fetchmode(1); sc_select(meus_dados, "SELECT customerid, stateid, birthdate, creditlimit FROM customers where customerid = 'ALFKI'"); while (!$meus_dados->EOF){ $meus_dados->fields[1]; $customer = $meus_dados->fields[2]; $customer = $meus_dados->fields[3]; $meus_dados->MoveNext(); } $meus_dados->Close();
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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')
Esta macro é usada para setar o focus para um determinado campo do formulario. Ex. 1: sc_set_focus('nome');
Escopo da Macro
Aplicação Calendário | Aplicação Formulário | Aplicação Controle
OnClick onLoad onRefresh onValidateSuccess | OnClick onLoad onRefresh onValidateSuccess | onApplicationInit onScriptInit onLoadAll onRefresh

sc_set_global($variavel_01) ou ({Meu_Campo})
Assista um video Esta macro tem por objetivo registrar variáveis globais. Será criada uma variável de sessão com o mesmo nome e conteúdo da variável local. OBS: Esta macro será descontinuada em breve, utilizar o método de criação de variáveis globais utilizando colchetes. Ex: [var_glo_user] = "teste"; Ex. 1: Registrando uma variável do usuário $var_user = "algum valor"; sc_set_global($var_user); Será criada uma variável de sessão, com o nome "var_user", com o conteúdo "algum valor". Ex. 2: Registranto uma variável de um campo da aplicação sc_set_global({campo_apl}); Será criada uma variável de sessão, com o nome "campo_apl", com o conteúdo existente na variável. Obs: Esta macro não faz atribuição de valores. Apenas registra as variáveis na sessão do PHP.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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
Assista um video Esta macro é utilizada para selecionar uma regra de quebra em tempo de execução no evento onApplicationInit. Ex: sc_set_groupby_rule = "id da regra";
Escopo da Macro
Aplicação Consulta
onApplicationInit

sc_set_language('String Language')
Assista um video Esta macro permite que seja definido dinamicamente o idioma utilizado nas aplicações. Ex. 1: Mudar o idioma para Inglês. sc_set_language('en_us'); Ex. 2: Mudar o idioma para Espanhol. sc_set_language('es'); Ex. 3: Mudar o idioma para Arabe. sc_set_language('ar'); Ex. 4: Mudar o idioma para Português. (Portugal) sc_set_language('pt_pt'); Esta macro permite, também, que sejam definidos o idioma e as configurações regionais simultâneamente, utilizando-se o delimitador ";" entre os parâmetros. Ex. 1: Mudar o idioma para Inglês e as configurações regionais para o Canadá. sc_set_language('en_us;en_ca'); Ex. 2: Mudar o idioma para Espanhol e as configurações regionais para o Mexico. sc_set_language('es;es_mx'); Ex. 3: Mudar o idioma para Alemão e as configurações regionais para Luxembourg. sc_set_language('de;de_lu');
Código de Idioma
Idioma | Valor
Árabe | ar
Alemão | de
Malaia | ms
Bielo-russo | be
Bengali | bn
Bósnio | bs
Búlgaro | bg
Catalão | ca
Chinês simplificado | zh_cn
Chinês tradicional | zh_hk
Croata | hr
Checo | cz
Coreano | ko
Cirílico sérvio | sr
Cingalês | si
Dinamarquês | da
Eslovaco | sk
Esloveno | sl
Espanhol | es
Estoniano | 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ão | lv
Lituano | lt
Macedônio | mk
Marathi | mr
Norueguês | no
Polonês | pl
Português Brasil | pt_br
Portugal português | pt_pt
Punjabi | pa
Romeno | ro
Russo | ru
Shuar | jiv
Sueco | sv
Telugu | te
Tailandês | thai
Turco | tr
Ucraniano | uk
Urdu | ur
Kannada | kn
Código Configuração Regional
Idioma | Valor
Afrikaans (África do Sul) | af_za
Albanês (Albânia) | sq_al
Alemão (Alemanha) | de_de
Alemão (Lichtenstein) | de_li
Alemão (Luxembourg) | de_lu
Alemão (Suíça) | de_ch
Alemão (Áustria) | de_at
Amárico (Etiópia) | am_et
Armênio (Armênia) | hy_am
Azerbaijão (Azerbaijão) | az_az
Bahasa Melayu (Malásia) | ms_my
Basco | eu
Bengali (Bangladesh) | bn_bd
Bengali (India) | bn_in
Bielorrusso (Belarus) | be_by
Breton (França) | br_fr
Bósnia (Bósnia-Herzegovina) | bs_ba
Búlgaro (Bulgária) | bg_bg
Catalão (Espanha) | ca_es
Cazaque (Cazaquistão) | kk_kz
Chinês (República da China) | zh_cn
Chinês (Tradicional, Hong Kong) | zh_hk
Chinês (Tradicional, Taiwan) | zh_tw
Chinês (simplificado, Singapura) | zh_sg
Chinês (tradicional, Macau) | zh_mo
Coreano (Coreia) | ko_kr
Croata (Bósnia e Herzegovina) | hr_ba
Croata (Croácia) | hr_hr
Czech (República Checa) | cs_cz
Dinamarquês (Dinamarca) | da_dk
Esloveno (Eslovênia) | sl_si
Eslováquia (República Eslovaca) | sk_sk
Espanhol (Argentina) | es_ar
Espanhol (Bolívia) | es_bo
Espanhol (Chile) | es_cl
Espanhol (Colômbia) | es_co
Espanhol (Costa Rica) | es_cr
Espanhol (El Salvador) | es_sv
Espanhol (Equador) | es_ec
Espanhol (Espanha) | es_es
Espanhol (Estados Unidos) | es_us
Espanhol (Guatemala) | es_gt
Espanhol (Honduras) | es_hn
Espanhol (México) | es_mx
Espanhol (Nicarágua) | es_ni
Espanhol (Panamá) | es_pa
Espanhol (Paraguay) | es_py
Espanhol (Peru) | es_pe
Espanhol (Porto Rico) | es_pr
Espanhol (República Dominicana) | es_do
Espanhol (Uruguay) | es_uy
Espanhol (Venezuela) | es_ve
Estoniano (Estônia) | et_ee
Faroês (Ilhas Faroés) | fo_fo
Finlandês (Finlândia) | fi_fi
Francês (Bélgica) | fr_be
Francês (Camarões) | fr_cm
Francês (Canadá) | fr_ca
Francês (Costa do Marfim) | fr_ci
Francês (França) | fr_fr
Francês (Luxemburgo) | fr_lu
Francês (Mônaco) | fr_mc
Francês (Suíça) | fr_ch
Frisian, ocidental (Holanda) | fy_nl
Galego (Espanha) | gl_es
Georgiano (Geórgia) | ka_ge
Grego (Grécia) | el_gr
Gujarati (Índia) | gu_in
Hausa (Ghana) | ha_gh
Hebraico (Israel) | he_il
Hindi (Índia) | hi_in
Holandês (Bélgica) | nl_be
Holandês (Holanda) | nl_nl
Húngaro (Hungria) | hu_hu
Indonésio (Indonésia) | id_id
Inglês (Austrália) | en_au
Inglês (Belize) | en_bz
Inglês (Botswana) | en_bw
Inglês (Camarões) | en_cm
Inglês (Canadá) | en_ca
Inglês (Caribe) | en_cb
Inglês (Cingapura) | en_sg
Inglês (Estados Unidos) | en_us
Inglês (Filipinas) | en_ph
Inglês (Irlanda) | en_ie
Inglês (Jamaica) | en_jm
Inglês (Malásia) | en_my
Inglês (Namíbia) | en_na
Inglês (Nigéria) | en_ng
Inglês (Nova Zelândia) | en_nz
Inglês (Reino Unido) | en_gb
Inglês (Trinidad e Tobago) | en_tt
Inglês (Uganda) | en_ug
Inglês (Zimbabwe) | en_zw
Inglês (Zâmbia) | en_zm
Inglês (África do Sul) | en_za
Inglês (Índia) | en_in
Irlandês (Irlanda) | ga_ie
Islandês (Islândia) | is_is
Italiano (Itália) | it_it
Italiano (Suíça) | it_ch
Japonês (Japão) | ja_jp
Kalaallisut (Nunaat Nunaat) | kl_gl
Kannada (Índia) | kn_in
Khmer (Camboja) | km_kh
Lao (Laos) | lo_la
Letão (Letônia) | lv_lv
Lituano (Lituânia) | lt_lt
Luxemburguês (Luxemburgo) | lb_lu
Macedónia (Macedônia) | mk_mk
Malaiala (Índia) | ml_in
Marata (Índia) | mr_in
Mongol (Mongólia) | mn_mn
Nepalês (Nepal) | ne_np
Norueguês (Noruega) | no_no
Norueguês Bokmal (Noruega) | nb_no
Nynorsk norueguês (Noruega) | nn_no
Occitano (França) | oc_fr
Oriya (India) | or_in
Persa (Irã) | fa_ir
Polonês (Polônia) | pl_pl
Português (Angola) | pt_ao
Português (Brasil) | pt_br
Português (Portugal) | pt_pt
Punjabi (Índia) | pa_in
Quirguiz (Quirguistão) | ky_kg
Romeno (Moldávia) | ro_md
Romeno (Romênia) | ro_ro
Russo (Belarus) | ru_by
Russo (Cazaquistão) | ru_kz
Russo (Rússia) | ru_ru
Sotho (África do Sul) | st_za
Sotho do Norte (África do Sul) | nso_z
Sri Lanka (Cingalês) | si_si
Suaíli (Tanzânia) | sw_tz
Sueco (Finlândia) | sv_fi
Sueco (Suécia) | sv_se
Sérvia Latina (Sérvia e Montenegro) | sh_yu
Sérvio Cirílico (Sérvia e Montenegro) | sr_yu
Tadjique (Tadjiquistão) | tg_tj
Tailandês (Tailândia) | th_th
Telugu (Índia) | te_in
Tswana (África do Sul) | tn_za
Turco (Turquia) | tr_tr
Tâmil (Índia) | ta_in
Ucraniano (Ucrânia) | uk_ua
Urdu (Paquistão) | ur_pk
Uzbeque (Uzbequistão) | uz_uz
Vietnamita (Vietnã) | vi_vn
Welsh (Reino Unido) | cy_gb
Xhosa (África do Sul) | xh_za
Zulu (África do Sul) | zu_za
Árabe (Argélia) | ar_dz
Árabe (Arábia Saudita) | ar_sa
Árabe (Bahrein) | ar_bh
Árabe (Egito) | ar_eg
Árabe (Emirados Árabes Unidos) | ar_ae
Árabe (Iraque) | ar_iq
Árabe (Iêmen) | ar_ye
Árabe (Jordânia) | ar_jo
Árabe (Kuwait) | ar_kw
Árabe (Líbano) | ar_lb
Árabe (Líbia) | ar_ly
Árabe (Marrocos) | ar_ma
Árabe (Omã) | ar_om
Árabe (Qatar) | ar_qa
Árabe (Síria) | ar_sy
Árabe (Tunísia) | ar_tn
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | 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')
Assista um video Esta macro permite que seja definido dinamicamente a configuração regional das aplicações. Ex. 1: sc_set_regional('en_us');
Idioma | Valor
Afrikaans (África do Sul) | af_za
Albanês (Albânia) | sq_al
Alemão (Alemanha) | de_de
Alemão (Lichtenstein) | de_li
Alemão (Luxembourg) | de_lu
Alemão (Suíça) | de_ch
Alemão (Áustria) | de_at
Amárico (Etiópia) | am_et
Armênio (Armênia) | hy_am
Azerbaijão (Azerbaijão) | az_az
Bahasa Melayu (Malásia) | ms_my
Basco | eu
Bengali (Bangladesh) | bn_bd
Bengali (India) | bn_in
Bielorrusso (Belarus) | be_by
Breton (França) | br_fr
Bósnia (Bósnia-Herzegovina) | bs_ba
Búlgaro (Bulgária) | bg_bg
Catalão (Espanha) | ca_es
Cazaque (Cazaquistão) | kk_kz
Chinês (República da China) | zh_cn
Chinês (Tradicional, Hong Kong) | zh_hk
Chinês (Tradicional, Taiwan) | zh_tw
Chinês (simplificado, Singapura) | zh_sg
Chinês (tradicional, Macau) | zh_mo
Coreano (Coreia) | ko_kr
Croata (Bósnia e Herzegovina) | hr_ba
Croata (Croácia) | hr_hr
Czech (República Checa) | cs_cz
Dinamarquês (Dinamarca) | da_dk
Esloveno (Eslovênia) | sl_si
Eslováquia (República Eslovaca) | sk_sk
Espanhol (Argentina) | es_ar
Espanhol (Bolívia) | es_bo
Espanhol (Chile) | es_cl
Espanhol (Colômbia) | es_co
Espanhol (Costa Rica) | es_cr
Espanhol (El Salvador) | es_sv
Espanhol (Equador) | es_ec
Espanhol (Espanha) | es_es
Espanhol (Estados Unidos) | es_us
Espanhol (Guatemala) | es_gt
Espanhol (Honduras) | es_hn
Espanhol (México) | es_mx
Espanhol (Nicarágua) | es_ni
Espanhol (Panamá) | es_pa
Espanhol (Paraguay) | es_py
Espanhol (Peru) | es_pe
Espanhol (Porto Rico) | es_pr
Espanhol (República Dominicana) | es_do
Espanhol (Uruguay) | es_uy
Espanhol (Venezuela) | es_ve
Estoniano (Estônia) | et_ee
Faroês (Ilhas Faroés) | fo_fo
Finlandês (Finlândia) | fi_fi
Francês (Bélgica) | fr_be
Francês (Camarões) | fr_cm
Francês (Canadá) | fr_ca
Francês (Costa do Marfim) | fr_ci
Francês (França) | fr_fr
Francês (Luxemburgo) | fr_lu
Francês (Mônaco) | fr_mc
Francês (Suíça) | fr_ch
Frisian, ocidental (Holanda) | fy_nl
Galego (Espanha) | gl_es
Georgiano (Geórgia) | ka_ge
Grego (Grécia) | el_gr
Gujarati (Índia) | gu_in
Hausa (Ghana) | ha_gh
Hebraico (Israel) | he_il
Hindi (Índia) | hi_in
Holandês (Bélgica) | nl_be
Holandês (Holanda) | nl_nl
Húngaro (Hungria) | hu_hu
Indonésio (Indonésia) | id_id
Inglês (Austrália) | en_au
Inglês (Belize) | en_bz
Inglês (Botswana) | en_bw
Inglês (Camarões) | en_cm
Inglês (Canadá) | en_ca
Inglês (Caribe) | en_cb
Inglês (Cingapura) | en_sg
Inglês (Estados Unidos) | en_us
Inglês (Filipinas) | en_ph
Inglês (Irlanda) | en_ie
Inglês (Jamaica) | en_jm
Inglês (Malásia) | en_my
Inglês (Namíbia) | en_na
Inglês (Nigéria) | en_ng
Inglês (Nova Zelândia) | en_nz
Inglês (Reino Unido) | en_gb
Inglês (Trinidad e Tobago) | en_tt
Inglês (Uganda) | en_ug
Inglês (Zimbabwe) | en_zw
Inglês (Zâmbia) | en_zm
Inglês (África do Sul) | en_za
Inglês (Índia) | en_in
Irlandês (Irlanda) | ga_ie
Islandês (Islândia) | is_is
Italiano (Itália) | it_it
Italiano (Suíça) | it_ch
Japonês (Japão) | ja_jp
Kalaallisut (Nunaat Nunaat) | kl_gl
Kannada (Índia) | kn_in
Khmer (Camboja) | km_kh
Lao (Laos) | lo_la
Letão (Letônia) | lv_lv
Lituano (Lituânia) | lt_lt
Luxemburguês (Luxemburgo) | lb_lu
Macedónia (Macedônia) | mk_mk
Malaiala (Índia) | ml_in
Marata (Índia) | mr_in
Mongol (Mongólia) | mn_mn
Nepalês (Nepal) | ne_np
Norueguês (Noruega) | no_no
Norueguês Bokmal (Noruega) | nb_no
Nynorsk norueguês (Noruega) | nn_no
Occitano (França) | oc_fr
Oriya (India) | or_in
Persa (Irã) | fa_ir
Polonês (Polônia) | pl_pl
Português (Angola) | pt_ao
Português (Brasil) | pt_br
Português (Portugal) | pt_pt
Punjabi (Índia) | pa_in
Quirguiz (Quirguistão) | ky_kg
Romeno (Moldávia) | ro_md
Romeno (Romênia) | ro_ro
Russo (Belarus) | ru_by
Russo (Cazaquistão) | ru_kz
Russo (Rússia) | ru_ru
Sotho (África do Sul) | st_za
Sotho do Norte (África do Sul) | nso_z
Sri Lanka (Cingalês) | si_si
Suaíli (Tanzânia) | sw_tz
Sueco (Finlândia) | sv_fi
Sueco (Suécia) | sv_se
Sérvia Latina (Sérvia e Montenegro) | sh_yu
Sérvio Cirílico (Sérvia e Montenegro) | sr_yu
Tadjique (Tadjiquistão) | tg_tj
Tailandês (Tailândia) | th_th
Telugu (Índia) | te_in
Tswana (África do Sul) | tn_za
Turco (Turquia) | tr_tr
Tâmil (Índia) | ta_in
Ucraniano (Ucrânia) | uk_ua
Urdu (Paquistão) | ur_pk
Uzbeque (Uzbequistão) | uz_uz
Vietnamita (Vietnã) | vi_vn
Welsh (Reino Unido) | cy_gb
Xhosa (África do Sul) | xh_za
Zulu (África do Sul) | zu_za
Árabe (Argélia) | ar_dz
Árabe (Arábia Saudita) | ar_sa
Árabe (Bahrein) | ar_bh
Árabe (Egito) | ar_eg
Árabe (Emirados Árabes Unidos) | ar_ae
Árabe (Iraque) | ar_iq
Árabe (Iêmen) | ar_ye
Árabe (Jordânia) | ar_jo
Árabe (Kuwait) | ar_kw
Árabe (Líbano) | ar_lb
Árabe (Líbia) | ar_ly
Árabe (Marrocos) | ar_ma
Árabe (Omã) | ar_om
Árabe (Qatar) | ar_qa
Árabe (Síria) | ar_sy
Árabe (Tunísia) | ar_tn
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | 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 Tema')
Assista um video Esta macro permite alterar dinamicamente o tema que será utilizado nas aplicações. Quando utilizada, o tema é alterado na sessão, fazendo com que todas as aplicações acessadas posteriormente recebam o tema informado. ### Parâmetro Esta macro possui apenas um parâmetro, que deve receber o nome do tema que será aplicado. Este parâmetro pode ser passado de duas formas. Exemplo 1 - String com o nome do tema. `sc_set_theme('BlueBerry');` Exemplo 2 - Variável local recebendo o valor de um campo ou de uma variável global. `$set_theme = {field_name}; sc_set_theme($set_theme);` Links Relacionados Veja como alterar dinamicamente o tema de um projeto usando a macro.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | 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
Assista um video Esta macro verifica se está sendo utilizado um site seguro (protocolo https). Ex. 1: Usando a forma afirmativa. if (sc_site_ssl){ echo "ok - Site seguro"; } Ex. 2: Usando a forma negativa. if (!sc_site_ssl){ echo "Perigo - Site não é seguro"; } Ex. 3: Redirecionando se o site não for seguro. if (!sc_site_ssl){ sc_redir("http://www.pagina_erro.com.br/") ; } Obs: Esta macro funciona apenas para o Servidor WEB IIS (Internet Information Server).
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onScriptInit | 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 | onApplicationInit onLoad | onApplicationInit onLoad | onLoad | onApplicationInit onScriptInit

sc_sql_injection({Meu_Campo}) ou ($Minha_Variável)
Esta macro é usada para proteger o campo/variável contra "sql injection". Todos os acessos a base de dados, gerados pelo Scriptcase, têm proteção contra "sql injection". Nos comandos gerados pelo usuário (macros: sc_lookup, sc_select ou sc_exec_sql) caso seja necessário, deverá ser utilizada esta macro para proteção. Ex. 1: Protegendo uma variável local: $campo_protect = sc_sql_injection({meu_campo}); Ex. 2: Protegendo uma variável do usuário: $campo_protect = sc_sql_injection($minha_var);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 | 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", "Conexão")
Assista um video Essa macro irá proteger o valor de acordo com o banco de dados, a parâmetro "Conexão" é opcional, não informado será utilizado a conexão ativa no momento. O parâmetro tipo até o momento só pode receber o valor "data". Ex 01: Nesse exemplo estamos protegendo as datas passadas como parâmetro para que seja interpretada de forma correta com o banco de dados 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")."";
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
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 e retorna um array com os valores estatísticos informados a partir de um array de valores numéricos. São necessário dois parâmetros para a utilização da macro.
Parâmetro | Valor | Descrição
--- | --- | ---
arr_val | Este parâmetro aceita apenas variáveis Exemplo de utilização `$arr_val = array(5230.01,8374,625.45,8926.34,7000,523.78);` `sc_statistic($arr_val, $type);` | Variável contendo um array com os valores numéricos de entrada. Parâmetros são obrigatório.
tp_var | Este parâmetro aceita o valor ou uma variável. Exemplo informando o valor: `sc_statistic($arr_val, 'P');` Exemplo utilizando uma variável `$type = 'P';` `sc_statistic($arr_val, $type);` Lista das valores aceito no parâmetro. P A | Este parâmetro define o tipo de cálculo da variância(índice 2) e do desvio padrão(índice 3) do array. Os valores aceitos são P e A P = populacional A =Amostral Parâmetros são obrigatório.
Esta macro retorna o cálculo em um array com 10 posições, onde cada posição é referente a um dado estatístico. Confira abaixo o que cada um dos índices irá retornar. Valores retornados em cada índice do array:
Índice | Valor
--- | ---
[0] | Média aritmética
[1] | Mediana
[2] | Variância
[3] | Desvio Padrão
[4] | Amplitude
[5] | Total de valores diferentes
[6] | Total de valores geral
[7] | Total de valores não nulos
[8] | Menor valor
[9] | Maior valor
Exemplo de utilização da 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');
Retorno da macro:
    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
    );
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Aplicação Menu árvore | Aplicação Report PDF
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({Meu_Campo}, "Background-Color", "Size", "Color", "Family", "Weight")
Esta macro permite que seja modificado o estilo do texto do campo da consulta dinamicamente.
Parâmetro | Descrição
Field | Nome do campo
Background-Color (opcional) | Cor de fundo do texto do campo
Size (opcional) | Tamanho da fonte do texto do campo
Color (opcional) | Cor da fonte do texto
Family (opcional) | Família da fonte do texto
Weight (opcional) | Largura da fonte do texto
Ex. 01: sc_text_style({data_nasc}, '#33FF99', '15px', '#000000', 'Arial, sans-serif', 'bold');
Escopo da Macro
Aplicação Consulta
onRecord

sc_time_diff({datetime_01}, "Formato datetime_01", {datetime_02}, "Formato datetime_02")
Assista um video sc_time_diff({datetime_01}, "Formato datetime_01", {datetime_02}, "Formato datetime_02"); Essa macro calcula a diferença entre dois valores do tipo time/datetime. A estrutura do retorno é no formato de array, onde os índices [0], [1] e [2] contém horas, minutos e segundos, respectivamente.
Parâmetro | Descrição
datetime_01 | Valor ou variável contendo o primeiro datetime/time.
Formato datetime_01 | Valor ou variável contendo o formato no qual está armazenado o datetime_01/time.
datetime_02 | Valor ou variável contendo o segundo datetime/time.
Formato datetime_02 | Valor ou variável contendo o formato no qual está armazenado o datetime_02/time.
Ex. 1: Formato geral `{diferencas} = sc_time_diff({datetime_01}, "Formato datetime_01", {datetime_02}, "Formato datetime_02");` `````{dif_horas} = {diferencas[0]};` `{dif_minutos} = {diferencas[1]};` `{dif_segundos} = {diferencas[2]};` Ex. 2: Retornando valores positivos `{diferencas} = 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");` `{diferencas[0]} seria igual a 86 (horas)` `{diferencas[1]} seria igual a 10 (minutos)` `{diferencas[2]} seria igual a 48 (segundos).` Ex. 3: Retornando valores negativos
    {diferencas} = 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");

    {diferencas[0]} seria igual a -86 (horas)
    {diferencas[1]} seria igual a -10 (minutos)
    {diferencas[2]} seria igual a -48 (segundos).
Ex. 4: Considerando apenas formato de horas - Retorno positivo `{diferencas} = sc_time_diff("18:14:55", "hh:ii:ss", "10:55:22", "hh:ii:ss");` `{diferencas[0]} seria igual a 7 (horas)` `{diferencas[1]} seria igual a 19 (minutos)` `{diferencas[2]} seria igual a 33 (segundos).` Ex. 5: Considerando apenas formato de horas - Retorno negativo `{diferencas} = sc_time_diff ("10:55:22", "hh:ii:ss", "18:14:55", "hh:ii:ss");` `{diferencas[0]} seria igual a -7 (horas) {diferencas[1]} seria igual a -19 (minutos) {diferencas[2]} seria igual a -33 (segundos).```
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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({Meu_Campo}, Quantidade_Decimal)
Assista um video Esta macro tem por objetivo truncar valores numericos, no que exceder a quantidade de decimais especificada.
Parâmetro | Descrição
Meu_Campo | Variável que contem o valor a ser formatado (O retorno será na própria variável).
Quantidade_Decimal | Quantidade de decimais a ser exibida.
Ex. 1: sc_trunc_num({meu_valor}, 2); Valor de entrada = 1250.235 Valor de saída = 1250.23 Valor de entrada = 1250.2 Valor de saída = 1250.20 Valor de entrada = 1250 Valor de saída = 1250.00
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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 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)
Assista um video Esta macro altera a URL de saída da aplicação. Ex. 1: sc_url_exit(http://www.netmake.com.br); Ex. 2: sc_url_exit(aplx.php);
Escopo da Macro
Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onScriptInit | 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("Escopo", "Nome da Biblioteca", "Arquivo")
Esta macro retorna o caminho de um arquivo, dentro de uma biblioteca, para ser usado nas aplicações. É necessário ter uma biblioteca criada no Scriptcase para fazer uso desta macro. Para criar uma biblioteca, vá até o menu "Ferramentas -> Bibliotecas".
Parâmetro | Descrição
Escopo | Informa qual o escopo da biblioteca. Podendo ser "sys" para bibliotecas de escopo Público ou "prj" para bibliotecas de escopo Projeto.
Nome da Biblioteca | Nome dado à biblioteca no momento da criação
Arquivo | Caminho absoluto do arquivo, dentro da biblioteca.
Ex. 1 - Importando arquivo CSS de uma biblioteca: <*link rel="stylesheet" type="text/css" href="<*?php echo sc_url_library('prj', 'bootstrap-3.3.2-dist', 'css/style1.css'); ?>" /> Ex. 2 - Importando arquivo JS de uma biblioteca: <*script type="text/javascript" src="<*?php echo sc_url_library('prj', 'bootstrap-3.3.2-dist', 'js/bootstrap,js'); ?>"> Obs: Caso deseje utilizar um dos exemplos acima, você deve retirar os asterísticos (*) no ínicio das tags.
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
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 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('nome da variável', 'conteúdo da variável', 'apl_redir.php', 'target')
Esta macro é utilizada para deslogar o usuário informado do sistema. Se o target não for informado, assume "_top". Ex: sc_user_logout('usr_login', 'admin', 'ctrl_login.php', '_self');
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Formulário | Aplicação Controle | Aplicação Report PDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onValidate onValidateSuccess | onHeader 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_vl_extenso(valor, tam_linha, tipo)
Gera valor por extenso, à partir de um valor numérico. Onde: valor: Valor ou variável que cotenha o valor a ser convertido para extenso. tam_linha: Tamanho de cada linha a ser gerada com o valor por extenso (O ScripCase divide o valor por extenso em até três linhas). tipo: Tipo do dado de entrada: "V" para valor ou "N" para número. Ex1: {meu_extenso} = sc_vl_extenso({meu_valor}, 50, 'V'); Ex2: {meu_extenso} = sc_vl_extenso({meu_valor}, 40, 'N');
Escopo da Macro
Aplicação Consulta
onClick onFooter onHeader onNavigate onRecord

sc_warning'on' ou 'off'
Permite, dinamicamente, ativar ou desativar o controle de mensagens de advertencia. As mensagens de advertencia são geradas quando é feita uma referência a uma variável inexistente, um item de um array inexistente, etc. Ex. 1: Para não exibir as mensagens. sc_warning = 'off';
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure 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 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", "Porta", "Método de Envio", "Array de Parâmetros", "Array de Configuração", "Timeout", "Retorno")
Assista um video Esta macro é usada para se comunicar com um serviço web.
Parâmetro | Descrição
Método | Informa qual será o método de acesso ao web service. Ex: file_get_contents ou curl.
URL | URL de acesso ao web service.
Porta | Porta de acesso ao web service.
Método de Envio | Define o método de envio da requisição ao web service. Podendo ser GET ou POST.
Array de Parâmetros | Array de parâmetros de acesso ao web service, variando de acordo com o serviço acessado.
Array de Configuração(opcional) | Array de parâmetros para configuração do método de acesso utilizado.
Timeout(opcional) | Timeout de acesso ao serviço.
Retorno(opcional) | Formato de retorno do web service. Quando informado como "true", a resposta do web service é retornada em formato de array, caso contrário mantém-se o formato de retorno original do serviço. Default: 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); Ex1 - Usando a macro com file_get_contents: sc_webservice('file_get_contents', $webservice_url, $_SERVER["SERVER_PORT"], "POST", $parms, array(), 30); Ex2 - Usando a macro com curl: $response = sc_webservice("curl", {paypal_type}, 80, "POST", $parms, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER=>false), 30);
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore
onExecute | ajaxFieldonBlur Onchange OnClick OnFocus onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure 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 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
Assista um video Esta variável deixa disponível o conteúdo gerado pelo "filtro", de acordo com as seleções efetuadas no formulário de filtro. Esta informação é a que será adicionada à cláusula where do select original da aplicação. Ex. 1: $salva_filtro = {sc_where_current};
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta | Aplicação Report PDF
onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onFooter onHeader onScriptInit onRecord

sc_where_filter
Assista um video Esta variável deixa disponível o conteúdo gerado pelo "filtro", de acordo com as seleções efetuadas no formulário de filtro. Esta informação é a que será adicionada à cláusula where do select original da aplicação. Ex. 1: $salva_filtro = {sc_where_filter};
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta | Aplicação Report PDF
onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onFooter onHeader onScriptInit onRecord

sc_where_orig
Assista um vídeo Ela permite que o desenvolvedor recupere a cláusula WHERE original da aplicação, inserida diretamente no select da aplicação no menu SQL ou no momento da criação da consulta. Por tratar-se de uma macro de recuperação de valor, ela possui uma sintaxe distinta das demais macros. Devemos utilizada entre chaves: `{sc_where_orig}` O valor recuperado pelo macro não é afetado por filtros realizados na aplicação ou nenhuma alteração realizada na where da aplicação por meio da macro sc_select_where(add). Confira abaixo alguns exemplos da macro #### Exemplo 1 - Recuperando o valor da cláusula WHERE do SQL da aplicação
    //No exemplo estou utilizando uma consulta com a seguinte query
    SELECT
        CustomerID,
        CompanyName,
        ContactName,
        ContactTitle,
        Address,
        City,
        Region,
        PostalCode,
        Country,
        Phone,
        Fax
    FROM
        Customers
    WHERE CustomerID <> 'ALFKI'
    //-----------------------------------------//

    //No evento onScriptInit posso recuperar o valor com a macro sc_where_orig.
    echo {sc_where_orig};

    //O retorno será:
    where (CustomerID <> 'ALFKI')
#### Exemplo 2 - Validado se o select original possui cláusula WHERE
    //Abaixo é verificado se o SELECT original da aplicação possui alguma cláusula WHERE.

    //Se retornar vazio indica que não existe cláusula WHERE no SQL original e entra no if
    if (empty({sc_where_orig})) {

        //Select original da aplicação não possui where

    }
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Report PDF
onFooter onHeader onScriptInit | onClick onFooter onGroupBy onHeader onScriptInit onNavigate onRecord | onApplicationInit onFilterInit onFilterRefresh onFilterSave onFilterValidate | onFooter onHeader onScriptInit onRecord

sc_zip_file("Arquivo", "Zip")
Esta macro é usada para gerar arquivo tipo ZIP, à partir de uma lista de arquivos e/ou diretórios. No parâmetro arquivo, deverá ser informado um dos seguintes conteúdos: - O nome de um arquivo - O nome de um diretório - Uma variável contendo o nome de um arquivo ou o nome de um diretório - Uma variável contendo um array, que contenha uma lista de arquivos e/ou diretórios No parâmetro zip, deverá ser informado o nome do arquivo a ser gerado, ou o caminho para o arquivo a ser criado. Ex. 1: Apenas um arquivo. sc_zip_file("/teste/exemplo.htm", "/temp/teste.zip"); Ex. 2: Apenas um diretório. sc_zip_file("/teste", "/temp/teste.zip"); Ex. 3: Criando um array dos arquivos e diretórios. $prep = array(); $prep[] = " /teste/exemplo.htm"; $prep[] = "/teste"; sc_zip_file($prep, "/temp/teste.zip");
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
onExecute | onAfterDelete onAfterInsert onAfterUpdate onApplicationInit onBeforeDelete onBeforeInsert onBeforeUpdate onScriptInit onLoad onRefresh onValidate onValidateFailure onValidateSuccess | onApplicationInit onFooter onHeader onScriptInit | onScriptInit | 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

Variaveis de Autenticação
Essas variáveis deverão ser utilizadas nas aplicações que possuem exportação PDF em ambientes com autenticação integrada.
Variáveis | Descrição
[sc_pdf_usr] | Usuário de autenticação.
[sc_pdf_pw] | Senha de autenticação
Ex. 1: Em um aplicação login, poderá ser definida a variável a partir das informações digitadas pelo usuário: [sc_pdf_usr] = {login_usr}; [sc_pdf_pw] = {senha_usr};
Escopo da Macro
Aplicação Consulta | Aplicação Formulário
onApplicationInit onFooter onGroupBy onScriptInit | onScriptInit

Variáveis de Database
Assista um video São variáveis globais que contêm os valores de acesso à base base de dados, que estâo sendo utilizada pela conexão principal.
Variáveis | Descrição
sc_glo_server | Contém o nome do servidor.
sc_glo_db | Contém o nome da base de dados.
sc_glo_db_type | Contém o tipo do banco (mssql, oracle, mysql, etc).
sc_glo_user | Contém o nome do usuário conectado.
sc_glo_pass | Contém a senha de acesso.
sc_glo_cript_pass | Indica se a senha de acesso está criptografada (S/N).
sc_glo_decimal_db | Contém o separador de decimal utilizado (ponto ou vírgula).
Ex. 1: $meu_banco = [sc_glo_db]; Estas variáveis apenas informam os valores que estão sendo utilizados, não permitindo atribuição de valores. É possível definir o usuário e a senha a ser utilizado para conectar com a base de dados, através da alimentação das seguintes variáveis.
Variáveis | Descrição
sc_db_master_usr | Informa o login do usuário a ser utilizado.
sc_db_master_pass | Informa a senha a ser utilizada.
sc_db_master_cript | Inforna (S/N) se a senha está criptografada (ver macro sc_encode).
É importante observar que: o uso destas variáveis só terá efeito na execução das aplicações posteriores, e permanecerá durante toda a sessão (a menos que seja alterada). Ex. 2: Suponha que, em uma aplicação tipo "controle", foi criado um formulário com informação do "login" e "senha". Estes dados devem ser utilizados para conectar a base de dados, durante a execução das aplicações do sistema, e gostaríamos de manter a senha criptografada. $temp_pass = sc_encode({senha}); [sc_db_master_usr] = {login}; [sc_db_master_pass] = $temp_pass; [sc_db_master_cript] = "S";
Escopo da Macro
Aplicação Blank | Aplicação Calendário | Aplicação Gráfico | Aplicação Consulta | Aplicação Filtro | Aplicação Formulário | Aplicação Controle | Aplicação Menu | Menu Responsivo | Aplicação Menu árvore | Aplicação Report PDF
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

Variáveis de Totalização
Variáveis | Descrição
{count_ger} | Quantidade geral de registros.
{sum_parcel} | Retorna o somatório do campo "parcel"
{sum_balance} | Retorna o somatório do campo "balance"
{count_groupby} | Quantidade de registros da quebra.
{sum_groupby_parcel} | Contém o somatório do campo "parcel", da quebra que estiver sendo processada.
{sum_groupby_balance} | Contém o somatório do campo "balance", da quebra que estiver sendo processada.
{sum_cidade_parcela} | Somatório do campo "parcela", da quebra de "cidade" que estiver sendo processada.
{sum_cidade_saldo} | Contém o somatório do campo "saldo", da quebra de "cidade" que estiver sendo processada.
{sum_estado_saldo} | Contém o somatório do campo "saldo", da quebra de "estado" que estiver sendo processada;.
Ex. 1: Em uma aplicação com quebra pelo estado e cidade que totaliza um campo valor, e nas quebras usando totais, é possivel exibir a média ao invés do valor, como no exemplo: {sum_quebra_valor} = {sum_quebra_valor} / {count_quebra};
Escopo da Macro
Aplicação Gráfico | Aplicação Consulta | Aplicação Report PDF
onFooter onHeader | onFooter onGroupBy onRecord | onFooter onHeader onRecord

Variáveis de Totalizacao (quebras)
Durante o processamento das quebras, o Scriptcase disponibiliza todas as variáveis de totalização, a nível geral e a nível da quebra que estiver sendo processada. Supondo uma aplicação que tenha dois níveis de quebra (estado e cidade) e que totaliza dois campos (parcela e saldo). Considerando que as fórmulas, definidas para serem processadas no evenro "onGroupBy" estarão atuando para os vários níveis de quebra, as variáveis especiais de totalização, neste escopo, são referenciadas substituindo-se o nome da quebra pela palavra chave "quebra", ou seja:
Variáveis | Descrição
{count_ger} | Contém a quantidade total dos registros.
{sum_parcela} | Contém o somatório geral do campo "parcela".
{sum_saldo} | Contém o somatório geral do campo "saldo".
{count_quebra} | Contém a quantidade total dos registros, da quebra que estiver sendo processada.
{sum_quebra_parcela} | Contém o somatório do campo "parcela", da quebra que estiver sendo processada.
{sum_quebra_saldo} | Contém o somatório do campo "saldo", da quebra que estiver sendo processada.
Ex. 1: Em uma aplicação que tenha quebras por estado e cidade e que totalize um campo de saldo, e nos totais das quebras, desejamos exibir a média em substituição ao saldo. {sum_quebra_saldo} = {sum_quebra_saldo} / {count_quebra};
Escopo da Macro
Aplicação Consulta
onFooter onGroupBy