Criando programas para serem executados na abertura do SmartClient

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.

Programa na tela inicial
Programa na tela inicial

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).

Programa sem abrir a tela de login
Programa sem abrir a tela de login

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.

Programa abrindo a tela de Login
Programa abrindo a tela de Login

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

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta