Como adicionar novas tabs à ribbon do ERP?
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 1. Depois de abrir o Visual Studio, selecionar File > New > Project. 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. 1. Renomear a classe de "Classe1.cs" para "PrimaveraRibbon.cs". 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. 5. Compilar a sua solução em BUILD > Build Solution. 6. Registar a assembly conforme descrito em “Como registar projetos de extensibilidade?“. 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 Validar permissões às dinâmicasPasso 1 - Criar o projeto
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
Passo 3 - Criar a ribbon
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.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);
}
}
}
}
Passo 4 – Permissões das operações
private void RibbonEvents_Executa(string Id, string Comando)
{
switch (Id)
{
case CIDBUTTON1:
if (Plataforma.Contexto.Utilizador.AcedeOperacao("EXT", "mnuOperacao1"))
{
//Call action.
}
break;
}
}
private void RibbonEvents_Executa(string Id, string Comando)
{
switch (Id)
{
case CIDBUTTON1:
if (Plataforma.Contexto.Utilizador.AcedeAtributo("Documento", "FA", "EXT", "CRIAR"))
{
//Call action.
}
break;
}
}
login para deixar a sua opinião.