Ce module montre comment paramétrer une liste de parcours des articles dans un Mercator où le champ S_IMAGE (char) a été ajouté et contient le nom du fichier image associé à chaque fiche article. Il est réalisé sur base d'un customizer BrowseStock qui implémente ces interfaces :
La première partie du processus consiste en la modification de la requête SQL associée à la liste de parcours des articles, pour y ajouter le champ S_IMAGE. Ceci se fait par la méthode StringUpdate qui répond à l'interface MercatorUi.ICustomizers.IStringUpdater.
La seconde partie consiste en l'ajout d'une colonne de type MercatorUi.GridPro.DataGridViewStringImageColumn qui est capable d'afficher une image, sur base d'une chaîne de caractères contenant le chemin complet vers un fichier d'image ou le nom de fichier seul dans un répertoire par défaut (Default Directory)
Le code s'établit comme suit :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
namespace BrowseStock
{
public class Customizer : MercatorUi.ICustomizers.IStringUpdater, MercatorUi.ICustomizers.IFormGridCustomizer
{
private const int squareImageSize = 150;
public string StringUpdate(string StringToModify)
{
return StringToModify.Replace(",S_ID as id", ", s_image, S_ID as id");
}
public void FormGridCustomize(Form WindowsForm)
{
MercatorUi.Forms.Sig.SigBrowseForm sigBrowseForm = (MercatorUi.Forms.Sig.SigBrowseForm)WindowsForm;
MercatorUi.GridPro.DataGridViewStringImageColumn imgCol = new MercatorUi.GridPro.DataGridViewStringImageColumn();
imgCol.HeaderText = "Image";
imgCol.DataPropertyName = "s_image";
imgCol.ImageLayout = DataGridViewImageCellLayout.Zoom;
imgCol.Width = squareImageSize;
imgCol.DefaultDirectory = MercatorUi.Globals.RepData + "BMP\\";
sigBrowseForm.dataGridView.Columns.Add(imgCol);
sigBrowseForm.dataGridView.RowTemplate.Height = squareImageSize;
}
}
}