Dans la grille d'historique ou dans l'interrogation des projets, Mercator affiche les documents de ventes et d'achats pour lesquels un projet est spécifié dans les lignes (ID_PROJET). Cependant, la liaison se fait très souvent uniquement sur le pied des documents, obligeant ainsi à mettre en place un customizer pour compléter automatiquement les lignes avec l'id projet du pied et effectuant des contrôles dans le cas d'un changement de client, …
Pour rappel, le projet peut être lié au pied de document via l'utilisation d'une liaison vers le signalétique : ID_PROJ, ID_PROJ1, ID_PROJ2, …
Le code ci-dessous permet de simplifier cela, en indiquant à Mercator qu'il doit prendre en compte, dans ces deux grilles, l'id du pied lorsque le projet n'est pas spécifié à la ligne. Dans cet exemple, les données supplémentaires prises en considération sont dans PIEDS_V.ID_PROJ.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using System.Drawing;
using System.Windows.Forms;
namespace SigProj
{
public class Customizer : MercatorUi.ICustomizers.IStringUpdater
{
public string StringUpdate(string stringToModify)
{
string id = Api.StrExtract(stringToModify, "<ID>", "</ID>");
if ((id == "HISTORY_PROJ") || (id == "PROJ_INTERRO"))
stringToModify = stringToModify.Replace("(lignes_v.id_projet=@id)", "((lignes_v.id_projet=@id) or ((lignes_v.id_projet='') and (pieds_v.id_proj=@id)))");
return stringToModify;
}
}
}
Le même processus peut s'appliquer au 4ème signalétique :
- SigProj → SigDest
- ID_PROJET → ID_DESTIN
- ID_PROJ → ID_DEST
Version min. MercatorUi.dll : 10.9.149