V10 RecursosReferência
RecursosReferência
Referência
Voltar | Lista de artigos

Como utilizar a PriGrelha do SDK do ERP PRIMAVERA?

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

O SDK é uma biblioteca de padrões e controlos de negócio para o ambiente PRIMAVERA. Este permite aos parceiros e às equipas de desenvolvimento externas criar add-ons para o ERP de uma forma mais rápida e simples.

Este artigo pretende descrever como podemos usar um destes controlos, a PriGrelha, assim como o seu processo de inicialização e carregamento num contexto de consulta à base de dados (por exemplo, a listagem de um extrato de contas correntes).

Query a executar:

SELECT		TipoEntidade, Entidade, Modulo, Filial, TipoDoc, Serie, NumDocInt, DataDoc, ValorTotal, ValorPendente
FROM		Pendentes
ORDER BY	TipoEntidade, Entidade, DataDoc

Utilizar a PriGrelha

Passo 1 - Inicialização do SDK

Para usar qualquer controlo do SDK, é necessário que este seja inicializado (ver artigo "Como utilizar os controlos SDK do ERP PRIMAVERA?."

Passo 2 - Inicialização com o contexto do SDK

Após o controlo da PriGrelha ser lançado no formulário, é necessário que este seja inicializado com o contexto do SDK. Esta inicialização deve acontecer antes de efetuar qualquer operação sobre a grelha.

private void frmDemoGrid_Load(object sender, EventArgs e)
{
	// Initialize the SDK context
	PriSDKContext.Initialize(BSO, PSO);

	// Initialize SDK controls
	InitializeSDKControls();

	// Initialize the grid
	InitializeGrid();
}

Passo 3 - Formatação

Para a grelha mostrar resultados é necessário formatar as respetivas colunas, indicando para cada uma, o campo correspondente que será apresentado. Estas colunas terão de estar de acordo com a query executada.

O método a usar para esta formatação é o AddColKey da PriGrelha, sendo que os principais argumentos são os seguintes:

ColKeyChave única da coluna
TipoTipo de coluna que terá que corresponder ao tipo de campo (ex: Integer, Float, Edit, etc.)
TítuloTexto que será apresentado no header da coluna
LarguraTamanho da coluna
VisívelIndica se é uma coluna visível ou escondida
CamposBaseDadosCampo da base de dados que será usada para obter os resultados, pode ser um valor calculado, ex: ValorPago = ValorTotal - ValorPendente
DrillDownIndica se a coluna será formatada para drill-down

É na inicialização geral da PriGrelha que deverá indicar, também, outros atributos, tais como:

  • Agrupamentos
  • Menu de contexto
  • Título
  • Permissões

Agrupamentos

É necessário indicar se a grelha terá agrupamentos e quantos são permitidos. Para tal, deve executar a seguinte linha de comando o mesmo número de vezes que os agrupamentos que pretende para a grelha (até um máximo de quatro agrupamentos):

priGrelha1.AddColAgrupa();

Menu de contexto

Por omissão, o menu de contexto a aparecer será o menu standard com o nome "PopupGrelhasStd". Caso se pretenda adicionar novas opções ao menu, é necessário criar um menu específico. A instrução para definir o menu de contexto é a seguinte:

priGrelha1.BandaMenuContexto = "PopupGrelhasStd";

Título

A grelha deve ter um título. A instrução para definir o título é a seguinte:

priGrelha1.TituloGrelha = "Demo Grid 1";

Permissões

Existem algumas propriedades que indicam o que é permitido operar com a grelha.

PermiteAgrupamentosUserIndica se o utilizador pode manipular os agrupamentos, criar, alterar e remover
PermiteOrdenacaoIndica se o utilizador pode efetuar ordenações na grelha
PermiteActualizarIndica se estará disponível a opção para atualização dos dados da grelha
PermiteFiltrosIndica se estarão disponíveis os filtros aos dados da grelha
PermiteDetalhesIndica se permite visualizar a grelha lateral de detalhes
PermiteStatusBarIndica se a barra de estados é apresentada
PermiteDataFillIndica se o evento DataFill é executado (explicado mais à frente neste artigo)
PermiteVistasIndica se são permitidas vistas sobre os dados da grelha

Outras propriedades da grelha

PropriedadeTipoDescrição
BandaMenuContextostringRetorna/define a banda de menu com opções do utilizador.
BotaoConfigurarActiveBarboolRetorna/define quando o botão de configuração de colunas está disponível na barra de menus interna.
CaminhoTemplateImpressaostringInterno. Ficheiro com o modelo de impressão.
ColsFrozenintNúmero de colunas não editáveis.
NumeroMaxRegistosSemPagintNúmero máximo de registos permitidos sem paginação (a grelha necessita de Permitir Paginação).
NumeroRegistosintRetorna o número de registos da grelha.
NumLinhasCabecalhointRetorna/define o número de linhas de cabeçalho.
OrientacaoMapaenumRetorna/define a orientação da impressão da grelha.
ParentFormModalboolRetorna/define a forma como as opções de contexto são apresentadas.
PermiteActiveBarboolRetorna/define se é apresentada a barra de menus interna da grelha.
PermiteConfigurarDetalhesboolPermite obter se a grelha de detalhes é configurável.
PermiteContextoVaziaboolPermite definir se a grelha permite Right-Click quando está vazia.
PermiteEdicaoboolRetorna/define se a grelha permite a edição das colunas.
PermiteGraficoboolRetorna/define se a opção de gráficos está disponível.
PermiteGrandeTotalboolRetorna/define se os totalizadores são apresentados.
PermitePaginacaoboolPermite ativar a paginação da grelha em cenários de grande volume de informação.
PermiteScrollBarsboolRetorna/define se a grelha adiciona Scroll Bars.
PosicionaColunaSeguinteboolPosiciona o cursor na coluna seguinte.
TituloGrelhastringRetorna/define o título da grelha.
TituloMapastringRetorna/define o título do mapa.
TypeNameLinhastringPermite definir o nome do objeto da linha para o MostraBEO e PreencheBEO.
TypeNameLinhasstringPermite definir o nome do objeto das linhas para o MostraBEO e PreencheBEO.

Passo 4 - Carregamento da PriGrelha

Este artigo descreve a forma mais simples e fácil de usar uma PriGrelha num contexto de consulta à base de dados, através de uma query SQL executada por DataBind.

Tal como indicado anteriormente, os campos do SELECT que é feito para obter os registos para a grelha têm de estar de acordo com as colunas criadas.

A melhor forma de garantir isto é usando um método da própria grelha que devolva todos os campos, de acordo com o que foi criado no método de inicialização, já corretamente formatado para se adicionar ao SELECT.

Exemplo de como efetuar o DataBind a partir de uma consulta à base de dados:

private void LoadGrid()
{
	StdBELista lista;

	StringBuilder query = new StringBuilder();
	query.AppendLine(string.Format("SELECT {0}", priGrelha1.DaCamposBDSelect()));
	query.AppendLine("FROM Pendentes");
	query.AppendLine(string.Format("WHERE TipoEntidade = '{0}'", tiposEntidade1.TipoEntidade));

	if (!string.IsNullOrWhiteSpace(f41.Text))
	{
		query.AppendLine(string.Format("AND Entidade = '{0}'", f41.Text));
	}

	query.AppendLine("ORDER BY DataDoc");

	lista = new StdBELista();
	lista = PriSDKContext.SdkContext.BSO.Consulta(query.ToString());

	priGrelha1.DataBind(lista);
}

Evento "DataFill"

Se a propriedade "PermiteDataFill" estiver ativada, o evento DataFill será executado. Neste evento pode-se manipular todos os dados que estão a ser carregados para a grelha, linha a linha.

private void priGrelha1_DataFill(object Sender, PriGrelha.DataFillEventArgs e)
{
	// Set modulo description
	string modulo = PSO.Utils.FStr(priGrelha1.GetGRID_GetValorCelula(e.Row, colModulo));
	string moduloDesc = modulo;

	switch (modulo)
	{
		case "V":
			moduloDesc = "Vendas";
			break;
		case "C":
			moduloDesc = "Compras";
			break;
		case "M":
			moduloDesc = "C/Corentes";
			break;
		default:
			break;
	}

	priGrelha1.SetGRID_SetValorCelula(e.Row, colModuloDesc, moduloDesc);

	// Set days of delay
	int daysOfDelay = PSO.Utils.FInt(priGrelha1.GetGRID_GetValorCelula(e.Row, colDiasAtraso));
	daysOfDelay = daysOfDelay < 0 ? Math.Abs(daysOfDelay) : 0;
	priGrelha1.SetGRID_SetValorCelula(e.Row, colDiasAtraso, daysOfDelay);
}

Outros eventos

Existem outros eventos da grelha, os mais importantes a ter em consideração são os seguintes:

priGrelha1_ActualizaDadosEvento despoletado pela grelha ao carregar no atualizar
priGrelha1_FormatacaoAlteradaEvento despoletado pela grelha depois de fazer alterações na configuração
priGrelha1_MenuContextoSeleccionadoEvento despoletado pela grelha ao click de uma opção do menu de contexto

Poderá encontrar aqui um exemplo completo de como usar a PriGrelha em modo de edição.

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
Características das entidades e serviços Conceito de integração Conceito de extensibilidade Como registar projetos de extensibilidade? Boas práticas de organização de projetos de integração