V10 RecursosGuias
RecursosGuias
Guias
Voltar | Lista de artigos

Como adicionar novas tabs à ribbon do ERP?

Última alteração a 29/09/2021

Este documento descreve os passos para adicionar novos menus à ribbon do ERP. Este mecanismo é uma alternativa à utilização dos menus de utilizador, pois permite um controlo total da organização das várias opções da aplicação externa, através da possibilidade de criação de várias TABs e grupos que possibilitam a organização das operações de acordo com a sua função.

Ao contrário dos menus de utilizador as operações criadas com esta tecnologia não implementam automaticamente o mecanismo de segurança do ERP, ou seja, não é possível no administrador definir por perfil quem tem acesso às operações. Para ultrapassar esta situação é necessário criar um projeto de extensibilidade do administrador para definir as permissões para as operações disponíveis na ribbon.

Esta opção é a mais adequada quando se pretende criar uma extensão que adiciona uma nova área funcional ao ERP, sem estar dependente da criação manual de menus de utilizador.

Pré-Requisitos

  • PRIMAVERA ERP.
  • Visual Studio & NET Framework 4.7.

Passo 1 - Criar o projeto

1. Depois de abrir o Visual Studio, selecionar File > New > Project.
2. Na janela apresentada, na árvore à esquerda, escolher a linguagem de desenvolvimento ("C#" ou "VB").
3. Selecionar o tipo de projeto Class Library (.NET Framework).
4. Atribuir um nome ao projeto "Primavera.CustomRibbon" e carregar em OK.
5. Selecionar as propriedades do projeto e, em Project > Properties > Resources, adicionar uma imagem para o botão.

Passo 2 - Referências

Depois de criado o projeto, é necessário adicionar um conjunto de referências à plataforma de extensibilidade. Tal permitirá subscrever o evento DepoisDeCriarMenus, publicado na plataforma, que será usado para construir o novo menu.

  • PrimaveraExtensibility.BusinessEntities.
  • Primavera.Extensibility.Integration
  • Primavera.Extensibility.Platform
  • StdPlatBS100

Passo 3 - Criar a ribbon

1. Renomear a classe de "Classe1.cs" para "PrimaveraRibbon.cs".
2. Adicionar no inicio da classe os seguintes namespaces com recurso à diretiva using.
3. A seguir ao nome da classe, adicionar Plataforma. Este passo indica que a nossa classe passa a herdar da classe base Plataforma todos os métodos, propriedades e atributos.

4. No corpo da classe criada escrever override e carregar em TAB. Será apresentada uma lista com todos os eventos que poderá subscrever. Neste caso, selecionar o evento DepoisDeCriarMenus e adicionar o seguinte código.

using System;
using System.Diagnostics;
using System.Drawing;
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Platform.Services;
using StdPlatBS100;
namespace Primavera.CustomRibbon { public class PrimaveraRibbon : Plataforma { const string cIDTAB = "10000";
const string cIDGROUP = "100001";
const string cIDBUTTON1 = "1000011";
const string cIDBUTTON2 = "1000012";
private StdBSPRibbon RibbonEvents; 
///
/// This event will execute for all ribbon changes.
///
///
public override void DepoisDeCriarMenus(ExtensibilityEventArgs e)
{
// Register the Ribbon events.
RibbonEvents = this.PSO.Ribbon;
RibbonEvents.Executa += RibbonEvents_Executa;
// Create a new TAB.
this.PSO.Ribbon.CriaRibbonTab("TAB", cIDTAB, 10);
// Create a new Group.
this.PSO.Ribbon.CriaRibbonGroup(cIDTAB, "Group 1", CIDGROUP01);

// Create a new 32x32 Button.
this.PSO.Ribbon.CriaRibbonButton(cIDTAB, CIDGROUP, cIDBUTTON1, "My Button", true, Resource.button1);
}
///
/// Ribbon events.
///
///
///
private void RibbonEvents_Executa(string Id, string Comando)
{
try
{
switch (Id)
{
case CIDBUTTON1:
//Call action.
break;
}
}
catch (System.Exception ex)
{
PSO.Dialogos.MostraAviso("Fail to execute the command.",StdBSTipos.IconId.PRI_Informativo,ex.Message);
}
}
}
}

5. Compilar a sua solução em BUILD > Build Solution.

6. Registar a assembly conforme descrito em “Como registar projetos de extensibilidade?“.

Passo 4 – Permissões das operações

Com a tecnologia de extensibilidade do Administrador é possivel definir permissões para as operações da aplicação e depois validar se o utilizador tem acesso à operação selecionada.

Validar permissões à operação

private void RibbonEvents_Executa(string Id, string Comando)
{
	switch (Id)
	{
	case CIDBUTTON1:
		if (Plataforma.Contexto.Utilizador.AcedeOperacao("EXT", "mnuOperacao1"))
		{
			//Call action.
		}	
		break;
	}
}

Validar permissões às dinâmicas

private void RibbonEvents_Executa(string Id, string Comando)
{
	switch (Id)
	{
	case CIDBUTTON1:
		if (Plataforma.Contexto.Utilizador.AcedeAtributo("Documento", "FA", "EXT", "CRIAR"))
		{
			//Call action.
		}	
		break;
	}
}
Adicionar aos favoritos ou partilhar este artigo
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!
Artigos Relacionados
Começar a Usar Como criar um projeto de integração com Visual Studio? Como criar um projeto de extensibilidade de interface (PEX) com Visual Studio? Como criar um projeto de extensibilidade de API (Motor) com Visual Studio? Como criar separadores do utilizador com Visual Studio?