RapidGrid - low-code raster

0000003274     -      16-01-2025

Mercator 11.0 of later bevat de klasse MercatorUi._BaseClasses.RapidGrid. Dit is een gebruikerscontrol met een raster die met weinig code (low code) kan worden geconfigureerd.

Deze controle vereist dat de eigenschap ReqSql wordt ingesteld met een SQL-query. Het resultaat van deze query bepaalt de kolommen, hun volgorde en hun type. Bijvoorbeeld: een kolom met booleaanse gegevens toont automatisch een selectievakje, een kolom met numerieke waarden (float) wordt weergegeven als een numerieke kolom, ...

Als er parameters aan de SQL-query moeten worden doorgegeven, moeten deze worden ingesteld in de eigenschap SqlParameters, een array van MercatorApi.MercatorSqlParam. Als er geen parameters nodig zijn, kan deze eigenschap op null blijven staan.

Zodra dit is ingesteld, hoeft u alleen de methode BuildAsync aan te roepen.  Het raster wordt direct gevuld met de juiste kolommen en gegevens.

Het uiterlijk en de functionaliteit kunnen verder worden aangepast met kolomregels. Deze regels worden ingesteld via de eigenschap ColumnRules, een array van MovableControls.Tools.ColumnRule. Alle eigenschappen die normaal gesproken in de Mercator-interface worden ingesteld, zijn hier programmeerbaar beschikbaar.

Deze methode wordt toegepast in het widget widget 10 laatste verkopen. De broncode van dit project is beschikbaar.


Voorbeelden van code

Om de syntax te vereenvoudigen, moet u deze using-instructie toevoegen:

Zoom
using MercatorUi.MovableControls.Tools;

 

Syntax in C# 12 (te activeren via <LangVersion>12.0</LangVersion> in een PropertyGroup van een project in SDK-formaat)

Zoom
rapidGrid.ReqSql = "select ...";
rapidGrid.SqlParameters = [new MercatorSqlParam("@type", 1)];
rapidGrid.ColumnRules =
[
    new ColumnRule{ Name = "journal", HeaderText = "Journal", Width = 75, Rupture = ColumnRule.RupturableBehavior.RuptureOnDemand },
    new ColumnRule{ Name = "date", Width = 70, Format = "dd/MM/yyyy" },
    new ColumnRule{ Name = "n_dec", Hidden = true },
];
rapidGrid.BuildAsync();

 

Syntax in C# versie vóór 12

Zoom
rapidGrid.ReqSql = "select ...";
rapidGrid.SqlParameters = new MercatorSqlParam[] { new MercatorSqlParam("@type", 1) };
rapidGrid.ColumnRules = new ColumnRule[]
{
    new ColumnRule{ Name = "journal", HeaderText = "Journal", Width = 75, Rupture = ColumnRule.RupturableBehavior.RuptureOnDemand },
    new ColumnRule{ Name = "date", Width = 70, Format = "dd/MM/yyyy" },
    new ColumnRule{ Name = "n_dec", Hidden = true },
};
rapidGrid.BuildAsync();

 

Om de RapidGrid automatisch te laten verversen, stelt u de eigenschap AutoRefreshInterval in.

Zoom
rapidGrid.AutoRefreshInterval = TimeSpan.FromMinutes(1);

 

Dit component is compatibel met zoomknoppen. Als u een UserDefinedButtonColumnCustom gebruikt, moet u de methode definiëren die door deze knop wordt aangeroepen. Dit kan eenvoudig door de methode te plaatsen in de code die de RapidGrid definieert. Stel de eigenschap CustomMethodsOwner als volgt in:

Zoom
rapidGrid.CustomMethodsOwner = this;

 

De RapidGrid bevat ook de volgende eigenschappen:

  • Grid : de DataGridViewXPro (grid) als zodanig. Deze eigenschap kan worden gebruikt om gebeurtenissen naar het raster te schrijven (CellFormatting, enz.) of om op andere rasterfuncties te reageren.
  • LabelError : een label dat SQL-fouten weergeeft wanneer de query wordt uitgevoerd.

De methode BuildAsync is asynchroon. Dit betekent dat de SQL-query niet onmiddellijk wordt uitgevoerd wanneer de RapidGrid wordt geïnitialiseerd. Dit gedrag is met name geschikt voor gebruik in widgets. Het uitvoeren van deze query zal de voltooiing van de gebruikersaanmelding niet vertragen, die wordt voltooid door het instantiëren van de widgets.

Deze methode mag maar één keer worden aangeroepen.

Als je de inhoud van het RapidGrid via code wilt verversen, moet je de methode RefreshContent aanroepen. Het is mogelijk om de waarde van bepaalde SQL-parameters te wijzigen voordat je deze methode aanroept: 

Zoom
rapidGrid.SqlParameters.First(p => p.ParameterName == "@type").Value = 2;

Het RapidGrid heeft een GridPopulated event dat elke keer wordt uitgevoerd als het grid gegevens ontvangt.

  • Na de eerste uitvoering van de SQL query via de BuildAsync methode
  • Na elke uitvoering van de RefreshContent-methode.

Als er een SQL-fout optreedt, wordt deze gebeurtenis niet opgewekt. 



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)