Menu

O sistema oferece duas opções de menu para o usuário (mais à frente você verá como configurar o menu preferido para o usuário): Treeview ou Pull-down.

Tanto o menu Treeview quando o menu Pull-down oferecem as mesmas opções que são criadas dinamicamente de acordo com as permissões do usuário:

 Menu

Gerenciando as opções do Menu

Para gerenciar as opções que aparecem no menu utiliza-se a tela “Cadastro de itens do menu” que está dentro do item de menu "Manutenção do MenuFlex": 

Cadastro de itens do menu

O número que aparece entre parênteses ao lado de cada uma das opções do menu é o código que identifica unicamente a opção do menu. Este número só aparece quando você está logado como ADMIN ou se está logado com um usuário que possui permissão para ver este código.

Se for desejado editar o menu “Manutenção” é necessário digitar o seu código e pressionar TAB, ou então selecioná-lo a partir da Lookup:

Cadastro de itens do menu

As opções do cabeçalho da tela podem ser usados somente para manutenção. Para cadastrar novos itens no menu, deve-se utilizar apenas a Grid “Sub-menus”.

O "Código" (Cd.) será gerado automaticamente e, posteriormente, pode-se posicionar a nova opção no cabeçalho e criar subitens dentro dela. 

A coluna "Módulo" permite especificar o código de um módulo para que a opção do menu só apareça no módulo em questão. Esta coluna ficará indisponível se não houver nenhum módulo cadastrado na base de dados. Para maiores informações sobre os módulos veja os tópicos "Dividindo o sistema em módulos" e "Cadastro de módulos".

Em "Descrição" é necessário informar o nome que será exibido para o item de menu. Utilize um “&” antes da letra que deve aparecer sublinhada no menu pull-down.

Em "Desc. para favoritos" deve ser informado uma descrição alternativa que será usada para a opção do menu quando ela for acrescentada na pasta Favoritos do usuário. Se não for informada a descrição usada será o conteúdo de "Descrição".

Em "Tipo" pressione F4 e escolha uma das opções disponíveis, que possuem nomes auto-explicativos:

Opções de menu 

O tipo "Expressão" é o mais versátil de todos. Um item de menu deste tipo terá uma expressão em "Nome de ativação", expressão essa que será executada quando o usuário ativar a opção. É possível usar qualquer expressão global válida dentro da aplicação. Por exemplo, se existe uma função chamada ExecutaAlgo dentro do objeto oApplication, é possível criar uma expressão para executá-la da seguinte forma: (ExecutaAlgo(oApplication(Self))). O retorno da expressão não será usado para nada neste caso, mas todo o código da função será executado quando o usuário ativar o item.

No campo "Opção" pode-se especificar como o programa externo será executado (válido somente se o tipo for P - Programa externo (.exe)):

Oções de Runprogram

  • Background: o programa será chamado e a execução do programa VDF continuará. 
  • Wait: o programa será chamado e, enquanto não terminar, o programa VDF ficará aguardando a finalização. 

Em "Img. normal" deve ser selecionada a imagem que deve aparecer para o item quando ele não estiver aberto, e em "Img. selec." deve ser selecionada a imagem que deve aparecer para o item quando ele estiver aberto. As imagens podem ser visualizadas através dos combos na parte superior da view.

E em "Nome de ativação" deve-se colocar o nome de ativação da opção do menu. Ele só é necessário quando se tratar de um objeto ou programa. 

Para um objeto, o nome de ativação é o nome do próprio objeto. Para programas externos deve-se colocar o caminho completo do arquivo executável. Se o programa estiver no PATH do VDF ou do sistema operacional é possível especificar somente o nome do arquivo executável.

Se for desejado que seja exibido um separador de início de grupo antes da opção do menu atual marque o checkbox "Sep. antes". A imagem a seguir demonstra a utilização do separador:

Separador

Para alterar a ordem de apresentação dos itens do menu, utilize os botões “Sobe uma posição” e “Desce uma posição”:

Sobe e desce

Estes botões também pode ser acionados pela combinação de teclas "Ctrl+Seta para cima" e "Ctrl+Seta para baixo".

A Grid “Usuários/grupos que podem acessar o sub-menu posicionado na tabela acima” é utilizada para adicionar usuários que terão direito de acesso ao item que estiver posicionado na grid “Sub-menus”. O campo “Permissões” permite especificar que tipo de operações o usuário poderá executar no item do menu (válido apenas para objetos das classes cWsDbView e cWsDbModalPanel): 

Opções de permissão

A opção “-1 - Negar acesso herdado do grupo” é usada para que a opção do menu não apareça para o usuário, mesmo que ele faça parte de um grupo que possui acesso à tela. Para mais informações sobre o grupo de usuários veja o tópico "Cadastro de grupos e usuários".

Em "Validade" deve ser especificado a data máxima para que o usuário tenha acesso a este item do menu. Esta opção é útil para, por exemplo, liberar uma opção do menu para um usuário que só estará disponível durante as férias de outro funcionário. 

Marcando a opção "Visualiza Log" o usuário ou grupo de usuários poderá visualizar os logs das operações realizadas nesta tela. 

Parâmetros de programa externo

Quando um item do tipo “Programa externo” estiver posicionado na grid “Sub-menus”, o botão “Parâmetros de programa externo” ficará disponível:

Configurações de programa externo

Ao pressionar este botão a caixa de diálogo “Parâmetros de programa externo” será exibida:

Parâmetros de programa externo 

Como o nome permite pré-supor, esta tela é usada para definir parâmetros que serão passados para o programa externo. 

Na coluna “Tipo” é possível escolher as seguintes opções:

Tipos de opções

Se o parâmetro for do tipo “Estático”, o valor digitado na coluna “Parâmetro” será passado literalmente para o programa externo. Se o parâmetro for do tipo “Dinâmico”, o valor digitado na coluna “Parâmetro” será avaliado em tempo de execução e o resultado desta avaliação será passado como parâmetro para o programa externo.

Exemplo 1:

Exemplo 1

Neste exemplo foi definido um parâmetro “Estático” com o valor “C:\Teste.txt”, e este parâmetro será passado literalmente para o programa Notepad quando o usuário acionar a opção do menu.

Exemplo 2: 

Exemplo 2

Neste exemplo foi definido um parâmetro “Dinâmico” com o valor “gsLog”, e este parâmetro será avaliado em tempo execução e o resultado desta avaliação será passado para o programa Notepad quando o usuário acionar a opção do menu. Neste caso, evidentemente, espera-se que exista uma variável global com este nome. Se não existir ocorrerá o seguinte erro quando o usuário tentar acionar a opção do menu: 

Erro

Note que, embora tenha sido usado uma variável global neste exemplo, é possível especificar qualquer expressão válida dentro da aplicação como parâmetro. Por exemplo, supondo que exista uma função global chamada “PegaParametroParaNotepad”, seria possível usar o retorno desta função como parâmetro para o programa externo definindo o seguinte valor na coluna “Parâmetro”: (PegaParametroParaNotepad()). 

Com exceção da opção dos parâmetros de programa externo, todas as outras configurações de um item do menu podem ser alteradas também na parte de cima da tela se ele for posicionado lá.

Não encontrou o que precisava, entre em contato conosco.