using System;
using System.Collections.Generic;
using System.Text;
using MercatorApi;
using System.Windows.Forms;
using System.Drawing;
namespace HistCli
{
public class Customizer : MercatorUi.ICustomizers. IStringUpdater, MercatorUi.ICustomizers.IFormGridCustomizer
{
/*
* Cette première méthode est l'implémentation de l'interface IStringUpdater.
* Elle permet de modifier directement la requête SQL que Mercator se propose d'exécuter par défaut.
* Comme cette requête est du type select pieds_v.id,journal,piece,reference,type,date,heure,tot_bas_dv,tot_bas_fb,tot_ttc_dv,tot_ttc_fb,n_dec,id_dev,imprime,cubic as flag_appl,niveau_bo,c_nom,devises.nom as dev_nom from pieds_v (NOLOCK),cli (NOLOCK),devises (NOLOCK) where (pieds_v.id_cli=cli.c_id) and (pieds_v.id_dev=devises.id) and (journal='VEN ') and (piece>=20060000) and (piece<=20069999) and (date>=cast('01/10/2006' as datetime)) and (date<=cast('31/10/2006' as datetime)) order by piece desc
* on ajoute simplement ' ' as tout après devises.nom as dev_nom
*/
public string StringUpdate(string stringToModify)
{
return stringToModify.Replace( "dev_nom" , "dev_nom,' ' as tout" );
}
/*
* Cette seconde méthode est l'implémentation de l'interface IFormGridCustomizer
* Elle ajoute la colonne "tout" au datagridview
* Comme cette colonne contient une valeur pour tous les enregistrements, le simple fait de placer une
* rupture sur cette colonne, nous donnera un total général. (si tous les documents sont dans la même devise)
*/
public void FormGridCustomize(Form form)
{
MercatorUi.Forms.Hist. HistForm histForm = (MercatorUi.Forms.Hist.HistForm)form;
histForm.dataGridView.Columns.Add( new MercatorUi.GridPro. RupturableDataGridViewTextBoxColumn("tout", ""));
histForm.dataGridView.Columns["tout"].DataPropertyName = "tout" ;
new MercatorUi._BaseClasses.TimerOneShot(Timer_Tick, histForm); // ce timer n'est jamais exécuté qu'une seule fois, le second paramètre est passé au Tag du timer
}
void Timer_Tick(object sender, EventArgs e) // ce code sera ainsi exécuté de façon asynchrone, après chargement complet de la grille
{
MercatorUi._BaseClasses.TimerOneShot timer = (MercatorUi._BaseClasses. TimerOneShot )sender;
MercatorUi.Forms.Hist.HistForm histForm = (MercatorUi.Forms.Hist.HistForm )timer.Tag;
histForm.dataGridView.PlaceRupture(histForm.dataGridView.Columns["tout"]);
histForm.dataGridView.Columns["tout"].Width = 8;
}
}
}