Criando programas para serem executados na abertura do SmartClient

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

%d blogueiros gostam disto: