Olá pessoal…
Hoje vou mostrar como executar um programa na abertura do SmartClient com a opção de mostrar ou não a tela de Login para o usuário entrar no sistema.
A utilidade de desenvolver esse recurso, é fazer com que os usuários não consigam alterar parâmetros de Módulo, nem acessar outras rotinas, será mostrado dois exemplos, ambos executam a rotina MATA010 (Cadastro de Produtos).
Antes de mais nada, após compilar, para executar, basta chamar o U_ e o nome da rotina, conforme print abaixo.
No primeiro exemplo (u_zInicio1), basicamente é aberto o cadastro de produtos, utilizando o tema SUNSET (vermelho) e não é mostrado a tela de login (é utilizado o RPCSetEnv para setar a Empresa 99 e a Filial 01).
No segundo exemplo (u_zInicio2), é mostrado a tela de Login para ser informado o usuário e senha, utilizando o tema OCEAN (azul) e em seguida já é aberto o cadastro de Produtos.
Abaixo o código fonte utilizado.
/*/{Protheus.doc} zInicio1 Função executada no Programa Inicial, sem precisar usuário e senha @type function @author Atilio @since 03/10/2016 @version 1.0 @example u_zInicio1() /*/ User Function zInicio1() //Cria o MsApp MsApp():New('SIGATST') oApp:CreateEnv() //Seta o tema do Protheus (SUNSET = Vermelho; OCEAN = Azul) PtSetTheme("SUNSET") //Define o programa de inicialização oApp:bMainInit:= {|| MsgRun("Configurando ambiente...","Aguarde...",; {|| RpcSetEnv("99","01"), }),; MATA010(),; Final("TERMINO NORMAL")} //Seta Atributos __lInternet := .T. lMsFinalAuto := .F. oApp:lMessageBar:= .T. oApp:cModDesc:= 'SIGATST' //Inicia a Janela oApp:Activate() Return Nil /*/{Protheus.doc} zInicio2 Função executada no Programa Inicial, utilizando login @type function @author Atilio @since 03/10/2016 @version 1.0 @example u_zInicio2() /*/ User Function zInicio2() //Cria o MsApp MsApp():New('SIGACOM') oApp:CreateEnv() //Seta o tema do Protheus (SUNSET = Vermelho; OCEAN = Azul) PtSetTheme("OCEAN") //Define o programa que será executado após o login oApp:cStartProg := 'MATA010' //Seta Atributos __lInternet := .T. //Inicia a Janela oApp:Activate() Return Nil
Bom pessoal, por hoje é só.
Abraços e até a próxima.