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

In het 'beschikbare hoeveelheid'-rooster van de artikelfiche de totale hoeveelheden in klantenbestekken en leveranciersordervoorbereidingen toevoegen

0000001951     -      11-03-2014

Deze parameterinstelling laat zien hoe u de totale hoeveelheden in klantenbestekken en leveranciersordervoorbereidingen kunt toevoegen in het 'beschikbare hoeveelheid'-rooster van de artikelfiche (StockDispo). Dat gebeurt in 2 stappen:

  • wijziging van de standaardopdracht in Mercator voor ophaling van de gegevens die in dit rooster moeten worden ingevoerd: via implementatie van de interface IStringUpdater;
  • wijziging van het rooster in het venster van het informatiebestand "Artikel": via implementatie van de interface IFormLoadCustomizer.
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using MercatorUi;
using MercatorApi;
using System.Data;
using System.Data.SqlClient;
using System.IO;

namespace SigStock
{
     public class Customizer : MercatorUi.ICustomizers. IFormLoadCustomizer, MercatorUi.ICustomizers. IFormClosedCustomizer ,
                              MercatorUi.ICustomizers. IStringUpdater
                                
    {
         public string StringUpdate( string StringToModify)
        {            
             if ( Api .StrExtract(StringToModify, "<ID>" , "</ID>" ) == "STOCKDISPO" ) // Dit laat toe enkel de opdracht m.b.t. het 'beschikbare hoeveelheid'-rooster te wijzigen, en niet de opdrachten m.b.t. de andere roosters van het informatiebestand "Artikels"
            {
                StringToModify = StringToModify.Replace( "dispo.qv_3," , "dispo.qv_3,isnull((select sum(q) as ret from lignes_v,pieds_v where (id_article=dispo.id_stock) and (pieds_v.id_depot=magasins.id) and ((pieds_v.id=lignes_v.id) and (pieds_v.journal=lignes_v.journal) and (pieds_v.piece=lignes_v.piece)) and (pieds_v.type=4)),0) as qv_4," );
                StringToModify = StringToModify.Replace( "dispo.qa_3," , "dispo.qa_3,isnull((select sum(q) as ret from lignes_a,pieds_a where (id_article=dispo.id_stock) and (pieds_a.id_depot=magasins.id) and ((pieds_a.id=lignes_a.id) and (pieds_a.journal=lignes_a.journal) and (pieds_a.piece=lignes_a.piece)) and (pieds_a.type=4)),0) as qa_4," );
                StringToModify = StringToModify.Replace( "sum(qv_3)," , "sum(qv_3),sum(qv_4) as tot_qv_4," );
                StringToModify = StringToModify.Replace( "sum(qa_3)," , "sum(qa_3),sum(qa_4) as tot_qa_4," );
            }            
             return StringToModify;
        }            

         public void FormLoadCustomize( Form form)
        {                  
            MercatorUi.Forms.Sig. SigForm SigForm = (MercatorUi.Forms.Sig. SigForm )form;            
             List < Control > controls = SigForm.FindMovableControlsByType( typeof (MercatorUi.Forms.Sig.SigGrids. StockDispo )); // Men zoekt het rooster op basis van zijn klassetype
             if (controls.Count > 0)
            {
                MercatorUi.MovableControls. MovableGrid GridDispo = (MercatorUi.MovableControls. MovableGrid )controls[0];
                GridDispo.AfterColumnsCreated += new MercatorUi.MovableControls. MovableGrid . AfterColumnsCreatedHandler (GridDispo_AfterColumnsCreated);            
            }                        
        }

         public void FormClosedCustomize( Form form) // Het is noodzakelijk om het event GridDispo.AfterColumnsCreated vrij te geven
        {            
            MercatorUi.Forms.Sig. SigForm SigForm = (MercatorUi.Forms.Sig. SigForm )form;
             List < Control > controls = SigForm.FindMovableControlsByType( typeof (MercatorUi.Forms.Sig.SigGrids. StockDispo ));   // Men zoekt het rooster op basis van zijn klassetype
             if (controls.Count > 0)
            {
                MercatorUi.MovableControls. MovableGrid GridDispo = (MercatorUi.MovableControls. MovableGrid )controls[0];
                GridDispo.AfterColumnsCreated -= new MercatorUi.MovableControls. MovableGrid . AfterColumnsCreatedHandler (GridDispo_AfterColumnsCreated);
            }
        }

         void GridDispo_AfterColumnsCreated( object sender, EventArgs e)
        {
            MercatorUi.MovableControls. MovableGrid GridDispo = (MercatorUi.MovableControls. MovableGrid )sender;            
            GridDispo.Grid.Columns.Add( "Devis" , "Devis" );
            GridDispo.Grid.Columns[ "Devis" ].Width = 50;
            GridDispo.Grid.Columns[ "Devis" ].DataPropertyName = "qv_4" ;
            GridDispo.Grid.Columns[ "Devis" ].ReadOnly = true ;
            GridDispo.Grid.Columns[ "Devis" ].DefaultCellStyle.Alignment = DataGridViewContentAlignment .MiddleRight;            
            GridDispo.Grid.Columns[ "Devis" ].DefaultCellStyle.Format = MercatorUi. Globals .PictQ;
            
            GridDispo.Grid.Columns.Add( "PrepCom" , "PrepCom" );
            GridDispo.Grid.Columns[ "PrepCom" ].Width = 50;
            GridDispo.Grid.Columns[ "PrepCom" ].DataPropertyName = "qa_4" ;
            GridDispo.Grid.Columns[ "PrepCom" ].ReadOnly = true ;
            GridDispo.Grid.Columns[ "PrepCom" ].DefaultCellStyle.Alignment = DataGridViewContentAlignment .MiddleRight;
            GridDispo.Grid.Columns[ "PrepCom" ].DefaultCellStyle.Format = MercatorUi. Globals .PictQ;
        }
    }
}