U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Een historiekvenster van het menu "Vensters" openen

0000002015     -      14-06-2013

Deze module laat zien hoe u een historiekvenster voor verkoopdocumenten uit commercieel beheer opent. Dit venster is normaal gezien zichtbaar via het menu "Vensters / Klantenhistoriek". Deze programmering maakt gebruik van de methode ShowHistWithReqSql van Globals.Main, een methode waarvoor 3 parameters nodig zijn:

  • het gewenste historiektype:
    • V voor verkopen
    • A voor aankopen
    • P voor productiedocumenten
    • C voor boekhoudkundige documenten;
  • de uit te voeren SQL-opdracht voor het ophalen van de lijnen die u in het venster wilt zien;
  • een boolean die aangeeft of u de documenten wilt afdrukken (wordt genegeerd bij type = C).

Het is van essentieel belang dat de SQL-opdracht dezelfde structuur heeft als de SQL-opdracht die door Mercator wordt ingevoerd bij het oproepen van het overeenstemmende historiekvenster. Desgevallend kan er tijdelijk een historiekcustomizer (HistCli, HistFou, HistProd of HistCpta) worden geschreven waarin de interface IStringUpdater kan worden geïmplementeerd om de standaardopdracht in de methode StringUpdate te onderscheppen.

De code van deze module kan als volgt worden opgesteld:

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);

Merk op dat een quasi-identieke code kan worden opgeroepen vanuit het Visual FoxPro-gedeelte van 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.)