Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Appeler une fenêtre d'historique du menu "Fenêtres"

0000002015     -      14/06/2013

Ce module montre comment appeler une fenêtre d'historique de documents de ventes de la gestion commerciale. Cette fenêtre est normalement visible via le menu "Fenêtres / Historique Clients". Cette programmation exploite la méthode ShowHistWithReqSql de Globals.Main. Cette méthode requiert 3 paramètres :

  • Le type d'historique souhaité
    • V pour les ventes
    • A pour les achats
    • P pour les documents de production
    • C pour les écritures comptables
  • La requête SQL à exécuter pour extraire les lignes que l'on souhaite voir dans la fenêtre
  • Un boolean indiquant si on souhaite imprimer les documents (ignoré si type = C)

Il est essentiel que la requête SQL soit d'une structure identique à la requête SQL passée par Mercator lors de l'appel de la fenêtre d'historique correspondante. Au besoin, on peut écrire temporairement un customizer d'historique (HistCli, HistFou, HistProd ou HistCpta) et y implémenter l'interface IStringUpdater afin d'intercepter la requête standard dans la méthode StringUpdate.

Le code de ce module peut s'établir comme suit :

Zoom
string reqSql = "select pieds_v.id,journal,piece,reference,type,date,heure,0 as tot_bas_dv,0 as tot_bas_fb,net_dv as tot_ttc_dv,net_fb as 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) inner join cli (NOLOCK) on (pieds_v.id_cli=cli.c_id) "
    + "inner join devises(NOLOCK) on (pieds_v.id_dev=devises.id) where ... order by ...";
Globals.Main.ShowHistWithReqSql("V", reqSql, false);

Notez qu'un code pratiquement identique peut être appelé à partir de la partie Visual FoxPro de Mercator :

reqSql = "select pieds_v.id,journal,piece,reference,type,date,heure,0 as tot_bas_dv,0 as tot_bas_fb,net_dv as tot_ttc_dv,net_fb as tot_ttc_fb,n_dec,id_dev,imprime,cubic as flag_appl,niveau_bo,c_nom,devises.nom as dev_nom "
reqSql = m.reqSql + "from pieds_v (NOLOCK) inner join cli (NOLOCK) on (pieds_v.id_cli=cli.c_id) "
reqSql = m.reqSql + "inner join devises(NOLOCK) on (pieds_v.id_dev=devises.id) where ... order by ..."
ox_mercatorui.ShowHistWithReqSql("V", m.reqSql, .F.)