Abrir quadro diferente do quadro inicial

Criei uma tela chamada Login no quadro hpFrameHeader e coloquei esse quadro como quadro inicial, configurado em hpObjects > Navigation > Start > TemplateMonitor01. Criei um botão (hpCommandButton) na tela, fiz um script para verificar se há usuário logado, se houver, vai para uma outra tela chamada MenuPrincipal e um outro quadro chamado hpFrameHeaderMenuLeft01.

Em uma parte do script, coloquei essa linha para abrir a tela e quadro

Application.GetFrame(“hpFrameHeaderMenuLeft01”).OpenScreen(“Menus.MenuPrincipal?4?0”), 0

A tela MenuPrincipal abre por cima da tela de login e provavelmente sem quadro ativo. Eu gostaria de abrir o MenuPrincipal com o quadro hpFrameHeaderMenuLeft01 e que não necessite carregar uma nova janela.

Se eu colocar o quadro hpFrameHeaderMenuLeft01 para abrir em OpenScreen, o quadro abre, mas abre com a tela de Login.

Renato,

Basta configurar as tags de telas (pasta hpControls.Navigation do Viewer) e depois abrir o quadro desejado. Veja um exemplo no capítulo “Abrindo Telas e Templates por Script” do Manual do HP.

Isso eu sei, @pgustavo. A tela inicial em scrContent tem que ser a tela Login. A questão não é essa, é outra. Eu estou usando 2 quadros diferentes e abrindo o segundo quadro por script.

Eu fiz conforme o script do manual:

	Set navFolder = Application.Item("hpControls").Item("Navigation")
	navFolder.Item("scrMaster").Value = "Menus.MenuSuperior?4?0"
	navFolder.Item("scrContent").Value = "Menus.MenuPrincipal?4?0"
	navFolder.Item("scrMenu").Value = "Menus.MenuLateral?4?0"
	Application.GetFrame("hpMainFrame01").OpenScreen("hpFrames.hpFrameHeaderMenuLeft01"), 0
	Application.GetFrame("hpFrameHeaderMenuLeft01").OpenScreen("Menus.MenuPrincipal?4?0"), 0

Mas acaba abrindo a tela MenuPrincipal por cima, quando fecho essa tela que aparece conforme eu desejo. Por que está abrindo a tela MenuPrincipal por cima do quadro?

A última linha não é necessária.

Agora foi, era justamente esse o problema. Muitíssimo obrigado.

1 Like

Também é recomendado deixar o hpInitialFrame como frame inicial do Viewer.

Eu deixei o hpFrameHeader como inicial me baseando na aplicação demo do HP.