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.
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;
}
}
}