-
PT
-
ES
-
AO
-
CV
-
MZ
-
ST
-
GW
-
Professional
-
Executive
-
Public Sector
-
Omnia
-
Evolution
Os Painéis de Informação relacionada são painéis que são executados automaticamente durante operações concretas do ERP, como por exemplo um F4 numa entidade.
Estes painés tem como objetivo fornecer as informações relevantes para o contexto ativo, como por exemplo, o resumo das vendas de um determinado cliente ao introduzi-lo num editor do ERP.
Criar Estrutura de Controlo
Para criar um ou mais controlos de informação relacionada, é necessário criar um novo projeto do tipo"Class Library" em C# ou VB.NET, utilizando a .NET Framework 4.7.1. A este projeto é necessário adicionar referências ao StdBE e StdPlatBE.
Neste projeto, devem ser adicionados os User Controls necessários e, posteriormente, devem ser marcados como publicpara que possam ser utilizados fora do próprio projeto.
Em cada controlo, deverá implementar a interface IStdBEInfRelacionada que define os métodos padrão que posteriormente deverá criar.
Como parte desta interface, é necessário criar duas propriedades para receber o interface público da plataforma (Plataforma) e para receber o motor da aplicação (MotorAplicacao). Estes motores permitem o acesso a qualquer funcionalidade exposta nos mesmos.
É ainda necessário criar propriedades para receber os objetos CategoryInfo (BECategoryInfo) e a janela do contexto (FormContexto), permitindo aceder ao XML de configuração do controlo e à janela onde foi pedido o painel de informação relacionada.
Por último, é necessário implementar 3 métodos:
- AdicionaChave:Método que permite que o controlo saiba qual é a entidade que foi editada no ERP e qual o seu valor (por exemplo: Nome = Cliente, Valor = SOFRIO). Desta forma, o controlo poderá adaptar-se para mostrar os detalhes relevantes ou para eventualmente mostrar outra entidade (por exemplo: fornecedores, funcionários, etc);
- Atualiza: Método utilizado pelo ERP para carregar o controlo. Neste método devem ser desencadeadas todas as operações que permitem que o conteúdo, que se pretende que seja apresentado, seja carregado para o controlo;
- Limpa: Método utilizado pelo ERP quando o campo chave é limpo e se pretende que a informação do controlo seja removida. Devem ser desencadeadas todas as operações que limpem a entidade atual do controlo, colocando-o no estado inicial.
Nestes métodos, devem ser utilizados o motor da plataforma e do ERP para efetuar o carregamento, já que permitem aceder facilmente a um grande conjunto de informação. Estes motores possibilitam também efetuar consultas SQL à empresa que está aberta no contexto.
Nota: Para estas funções, é possível obter qualquer tipo de dados de qualquer tipo de fonte, sendo necessário implementar o código necessário.
Visualizar Painéis de Informação
No painel de informação relacionada, podem estar visíveis os detalhes de várias entidades em simultâneo, sendo possível navegar entre elas de uma das seguintes formas:
- Colocar em primeiro plano no ecrã o editor da entidade em questão. Por exemplo, caso o painel tenha sido aberto após um F4 na ficha de clientes deverá selecionar a ficha do cliente. A informação relevante é apresentada automaticamente;
- Selecionar no próprio painel a entidade em questão. Por exemplo, no exemplo acima selecionar a ligação Cliente no próprio painel.
Para cada entidade é também possível visualizar vários tipos de informação relacionada. Esta informação encontra-se separada por grupos que podem ser expandidos ou minimizados individualmente conforme o necessário.
É possível ativar/desativar a abertura automática de painéis de informação relacionada através da opção do menu de configurações rápidas do ERP: Contexto | Informação Relacionada. O fecho manual do painel desativa esta opção.
Distribuir Controlo de Informação
Para que o controlo de informação relacionada seja carregado, é necessário copiar a DLL criada para a pasta APL de todas as máquinas da rede, bem como registar o controlo na base de dados das empresas para as quais se pretende ter acesso ao mesmo.
O registo na base de dados passa pela introdução de informação em duas tabelas:
InformacaoRelacionada
Na tabela "InformacaoRelacionada", devem ser introduzidos os seguintes elementos:
- Campo Id: Identificador único (Guid) que serve como chave estrangeira (IdCategoria) na tabela "ContextosInformacaoRelacionada";
- Campo Categoria: Categoria de informação da lista. Este campo pode ser consultado através do painel de diagnósticos do ERP. No painel de diagnósticos, deverá clicar em F4 no local onde pretende que o controlo de informação relacionada seja aberto e poderá ver o registo Acesso a categoria. É esta a categoria a registar neste campo;
- Campo Config: Campo em formato XML que define o contexto da instância do controlo por categoria de F4. Exemplo: InfoRelacionada.CI_Prototipo Protótipo Descrição do controlo 1 0
De referir que:
- Os campos deste XML definem propriedades como o nome, descrição e título do controlo, bem como a visibilidade da descrição e a altura máxima do controlo;
- O campo TypeClassName é o namespace completo do controlo. O ERP utiliza esta informação para o detalhar;
- Este XML pode ser extendido da forma mais conveniente, desde que o mesmo mantenha esta estrutura mínima.
ContextosInformacaoRelacionada
Nesta tabela, devem ser introduzidos os seguintes elementos por cada formulário em que se pretenda mostrar o controlo:
- Campo IdCategoria: Identificador único (Guid) introduzido no passo anterior na tabela "InformacaoRelacionada";
- Campo Contexto: Nome do formulário ao qual deve ser associado o controlo. Este campo pode ser consultado através do painel de diagnósticos do ERP. No painel de diagnósticos, deverá abrir o formulário em questão e poderá ver o seguinte registo Formulário aberto. É este o valor a registar neste campo;
- Campo Ordem: Ordem pela qual este controlo aparecerá no painel de informação relacionada, caso exista mais do que um para a mesma categoria e formulário;
- Campo Params: Campo em formato XML que extende o contexto do controlo por F4 por formulário. Exemplo: 1
O elemento General (em itálico) tem como objetivo definir se o controlo deve ser apresentado de forma expandida ou colapsada quando é aberto. Nota: Este elemento é obrigatório.
Os restantes elementos são opcionais e destinam-se a demonstrar a possibilidade de passagem de parâmetros diferentes entre um formulário e outro para a mesma categoria, permitindo o uso do controlo numa multiplicidade de cenários diferentes.
Como no caso anterior, este XML pode ser extendido livremente desde que a secção em itálico seja mantida.
Detalhes de Implementação
- Os campos em XML referidos anteriormente podem ser consultados no objeto StdBECategoryInfo (propriedades .Contexto e .Params respetivamente), que é passado através da propriedade BECategoryInfo referida; Nota: Poderá utilizar a API de XML da plataforma para o consultar;
- A utilização de controlos de outros fabricantes e o respetivo licenciamento são da exclusiva responsabilidade do implementador. Deverá garantir que as licenças necessárias para efetuar o controlo estão presentes na máquina onde o mesmo vai ser executado;
- O tratamento de erros nas funções e propriedades da implementação do controlo é fundamental, uma vez que em caso de erro o controlo de informação relacionada não é carregado. Se existirem erros, poderá verificá-los através do painel de diagnósticos do ERP;
- É possível carregar vários controlos para cada F4/formulário. Os controlos serão apresentados em áreas colapsáveis apresentadas no estado definido no XML acima na propriedade Expanded (1 ou 0). Desta forma, é possível adicionar controlos de informação relacionada a um F4/formulário, mesmo que nesse F4/formulário existem já controlos presentes;
- O Interface público da plataforma é do tipo StdBSInterfPub e o motor da aplicação é do tipo ErpBS encontram-se, respetivamente, nas dlls StdPlatBS e ErpBS. Apesar de ser mais acesível utilizar referências e objetos com tipo definido, é recomendado o uso de dynamic/object para estes tipos, de forma a tornar o controlo menos suscetível a mudanças de compatibilidade que possam ocorrer entre Service Releases.