V10 RecursosReferencia
RecursosReferencia
Referencia
Años | Lista de Artículos

¿Cómo utilizar PriGrelha desde el SDK del ERP Cegid?

Última modificación el 12/07/2024

El SDK es una librería de patrones y controles de negocio para el entorno Cegid. Esto permite a los socios y a los equipos de desarrollo externos crear complementos para el ERP de forma más rápida y sencilla.

Este artículo pretende describir cómo podemos utilizar uno de estos controles, la PriGrelha, y su proceso de inicialización y carga en un contexto de consulta a una base de datos (por ejemplo, listar un extracto de cuenta corriente).

Consulta a ejecutar:

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

Utilizar la PriGrelha

Paso 1 - Inicializar el SDK

Para utilizar cualquier control del SDK, es necesario inicializarlo (véase el artículo "¿Cómo utilizar los controles SDK del ERP Cegid?."

Paso 2 - Inicialización con el contexto SDK

Una vez lanzado el control PriGrelha en el formulario, hay que inicializarlo con el contexto del SDK. Esta inicialización debe tener lugar antes de realizar cualquier operación sobre el control PriGrelha.

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

	// Initialize SDK controls
	InitializeSDKControls();

	// Initialize the grid
	InitializeGrid();
}

Paso 3 - Formatación

Para que el control muestre los resultados, hay que formatar las respectivas columnas, indicando para cada una el campo correspondiente que se mostrará. Estas columnas deben estar de acuerdo con la consulta ejecutada.

El método a utilizar para esta formatación es AddColKey de PriGrelha, y los argumentos principales son los siguientes:

ColKeyClave única de la columna
TipoTipo de columna que debe corresponder al tipo de campo (ej.: Integer, Float, Edit, etc.)
TítuloTexto que se mostrará en el header de la columna
LarguraTamaño de la columna
VisívelIndica si es una columna visible u oculta
CamposBaseDadosCampo de la base de datos que se utilizará para obtener los resultados, puede ser un valor calculado, ej.: ValorPago = ValorTotal - ValorPendente
DrillDownIndica si la columna se formateará para drilldown

En la inicialización general de PriGrelha debe indicar también otros atributos, como:

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

Agrupamentos

Debe indicar si la grid tendrá agrupaciones y cuántas se permiten. Para ello, debe ejecutar la siguiente línea de comando el mismo número de veces que agrupaciones desee para la grid (hasta un máximo de cuatro agrupaciones):

priGrelha1.AddColAgrupa();

Menu de contexto

Por defecto, el menú de contexto que aparecerá será el menú estándar con el nombre "PopupGrelhasStd". Si quiere añadir nuevas opciones al menú, tiene que crear un menú específico. La instrucción para configurar el menú de contexto es la siguiente:

priGrelha1.BandaMenuContexto = "PopupGrelhasStd";

Título

La grid debe tener un título. La instrucción para definir el título es la siguiente:

priGrelha1.TituloGrelha = "Demo Grid 1";

Permissões

Hay una serie de propiedades que indican lo que está permitido operar con la grid.

PermiteAgrupamentosUserIndica si el usuario puede manipular las agrupaciones, crearlas, modificarlas y eliminarlas.
PermiteOrdenacaoIndica si el usuario puede ordenar la grid
PermiteActualizarIndica si estará disponible la opción de actualizar los datos de la grid
PermiteFiltrosIndica si los filtros estarán disponibles para los datos de la grid
PermiteDetalhesIndica si permite visualizar la grid lateral de detalles
PermiteStatusBarIndica si se muestra la barra de estado
PermiteDataFillIndica si se ejecuta el evento DataFill (explicado más adelante en este artículo)
PermiteVistasIndica si se permiten las vistas de los datos de la grid

Otras propiedades de la grid

PropiedadTipoDescripción
BandaMenuContextostringDevuelve/define la banda del menú con las opciones del usuario.
BotaoConfigurarActiveBarboolDevuelve/define cuándo está disponible el botón de configuración de columnas en la barra de menús interna.
CaminhoTemplateImpressaostringInterno. Archivo con el modelo de impresión.
ColsFrozenintNúmero de columnas no editables.
NumeroMaxRegistosSemPagintNúmero máximo de registros permitidos sin paginación (la grid necesita Permitir paginación).
NumeroRegistosintDevuelve el número de registros de la grid.
NumLinhasCabecalhointDevuelve/define el número de líneas de cabecera.
OrientacaoMapaenumDevuelve/define la orientación de impresión de la grid.
ParentFormModalboolDevuelve/define cómo se muestran las opciones de contexto.
PermiteActiveBarboolDevuelve/define si se muestra la barra de menú interna de la grid.
PermiteConfigurarDetalhesboolPermite comprobar si la grid de detalles es configurable.
PermiteContextoVaziaboolPermite definir si la grid permite hacer clic con el botón derecho cuando está vacía.
PermiteEdicaoboolDevuelve/define si la grid permite editar las columnas.
PermiteGraficoboolDevuelve/define si la opción de gráficos está disponible.
PermiteGrandeTotalboolDevuelve/define si se muestran los totalizadores.
PermitePaginacaoboolPermite activar la paginación de la grid en escenarios con un gran volumen de información.
PermiteScrollBarsboolDevuelve/define si la grid añade scroll bars.
PosicionaColunaSeguinteboolSitúa el cursor en la siguiente columna.
TituloGrelhastringDevuelve/define el título de la grid.
TituloMapastringDevuelve/define el título del mapa.
TypeNameLinhastringPuede definir el nombre del objeto de la línea para MostraBEO y PreencheBEO.
TypeNameLinhasstringPuede definir el nombre del objeto de las líneas para MostraBEO y PreencheBEO.

Paso 4 - Carga de la PriGrelha

Este artículo describe la forma más sencilla y fácil de utilizar PriGrelha en un contexto de consulta a una base de datos, mediante una consulta SQL ejecutada por DataBind.

Como se ha indicado anteriormente, los campos SELECT utilizados para obtener los registros para la grid deben coincidir con las columnas creadas.

La mejor forma de garantizar esto es utilizar un método en la propia grid que devuelva todos los campos, según lo creado en el método de inicialización, ya formateados correctamente para añadirlos al SELECT.

Ejemplo de cómo hacer DataBind a partir de una consulta a una base de datos:

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"

Si la propiedad "PermiteDataFill" está activada, se ejecutará el evento DataFill. En este evento puede manipular todos los datos que se cargan en la grid, línea a línea.

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

Existen otros eventos en la grid, los más importantes a tener en cuenta son los siguientes:

PriGrelha1_ActualizaDadosEvento desencadenado por la grid cuando se pulsa actualizar
PriGrelha1_FormatacaoAlteradaEvento desencadenado por la grid tras realizar cambios en la configuración
PriGrelha1_MenuContextoSeleccionadoEvento desencadenado por la grid cuando pulsa sobre una opción del menú de contexto

Podrá encontrar aquí un ejemplo completo de cómo utilizar la PriGrelha en modo edición.

Bookmark or share this article
Esta página foi útil?
Obrigado pelo seu voto.
Artículos Relacionados
Características de las entidades y servicios Concepto de integración Concepto de extensibilidad ¿Cómo registrar proyectos de extensibilidad? Buenas prácticas de organización de proyectos de integración