Mercator maakt het eenvoudig mogelijk om een DataSet te visualiseren via maatwerkcode. Dit gebeurt via de methode MercatorUi._Divers.ViewData, die verschillende varianten heeft.
public static void ViewData(DataSet ds)
public static void ViewData(DataSet ds, bool showModal)
public static void ViewData(DataSet ds, bool showModal, string formText)
public static DialogResult ViewData(DataSet ds, bool showModal, bool showButtons, string formText)
public static DialogResult ViewData(DataSet ds, bool showModal, bool showButtons, string formText, Forms.Other.DataSetViewerForm.DelegateFormLoaded formLoaded)
De parameter showModal bepaalt of het venster wordt geopend als een blokkerend dialoogvenster (true) of als een niet-blokkend venster (false).
De parameter showButtons mag enkel gebruikt worden als showModal = true. In dat geval verschijnen onderaan het scherm de knoppen OK en Annuleren. Het resultaat van de methode geeft aan welke knop is gebruikt:
- OK : DialogResult.OK
- Annuleren : DialogResult.Cancel
De formLoaded-delegate is bijzonder interessant: hiermee kunt u eigen code uitvoeren tijdens het Load-event van de MercatorUi.Forms.Other.DataSetViewerForm die de gegevens weergeeft.
Onderstaand codevoorbeeld toont hoe u, op basis van een extractie van twee DataTables:
- de tablabels kunt wijzigen,
- en de kolombreedte automatisch kunt laten aanpassen aan de inhoud.
DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select top 10 c_id,c_nom from CLI\r\nselect top 10 f_id,f_nom from FOU");
if (ds != null)
{
MercatorUi._Divers.ViewData(ds, false, false, "Klanten & Leveranciers", (dataSetViewerForm) =>
{
dataSetViewerForm.TabControl.TabPages[0].Text = "Klanten";
dataSetViewerForm.TabControl.TabPages[1].Text = "Leveranciers";
EventHandler fullInitializedHandler = null;
fullInitializedHandler = (s2, e2) =>
{
dataSetViewerForm.FullInitialized -= fullInitializedHandler;
foreach (MercatorUi.GridPro.DataGridViewXPro grid in dataSetViewerForm.Grids)
{
grid.AutoFit();
}
};
dataSetViewerForm.FullInitialized += fullInitializedHandler;
});
}
Zie ook: