using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
namespace Intrastat
{
public class Customizer : MercatorUi.ICustomizers.IStringUpdater, MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public string StringUpdate(string StringToModify)
{
// de SQL-opdracht wijzigen om een bijkomende kolom te hebben met het land van oorsprong van het product (opgeslagen in S_PAYS_ORI)
string id = Api.StrExtract(StringToModify, "<ID>", "</ID>");
if (id.StartsWith("INTRASTAT")) // INTRASTAT_V voor uitgaande goederen en INTRASTAT_A voor inkomende goederen
StringToModify = StringToModify.Replace(",stock.s_intrastv as i_code", ",(case when s_pays_ori<>'' then s_pays_ori else i_pays end) as pays_ori,stock.S_INTRASTV as i_code") // in de select
.Replace(",stock.s_intrastv", ",(case when s_pays_ori<>'' then s_pays_ori else i_pays end),stock.s_intrastv") // dans les clauses group
.Replace(",stock.s_intrasta as i_code", ",(case when s_pays_ori<>'' then s_pays_ori else i_pays end) as pays_ori,stock.S_INTRASTA as i_code") // in de select
.Replace(",stock.s_intrasta", ",(case when s_pays_ori<>'' then s_pays_ori else i_pays end),stock.s_intrasta") // in de clauses group
.Replace(",lignes_istat.code as i_code", ",pieds_c.i_pays as pays_ori,lignes_istat.code as i_code"); // voor het deel van de opdracht dat betrekking heeft op de boekhouding
return StringToModify;
}
public void FormLoadCustomize(System.Windows.Forms.Form WindowsForm)
{
if (WindowsForm is MercatorUi.Forms.Istat.IstatDataForm)
{
MercatorUi.Forms.Istat.IstatDataForm istatDataForm = (MercatorUi.Forms.Istat.IstatDataForm)WindowsForm;
// De kolom PAYS_ORI in de rooster toevoegen
MercatorUi.GridPro.DataGridViewUpperCaseTextBoxColumn colPays = new MercatorUi.GridPro.DataGridViewUpperCaseTextBoxColumn();
colPays.Name = "pays_ori";
colPays.HeaderText = _Divers.Iif_langue(Globals.Langue, "Land", "Land", "Pays");
colPays.Width = 40;
colPays.DataPropertyName = "pays_ori";
istatDataForm.Grid.Columns.Add(colPays);
istatDataForm.LineAddedToFile += new MercatorUi.Forms.Istat.IstatDataForm.LineAddedToFileEventHandler(istatDataForm_LineAddedToFile);
}
}
public void FormClosedCustomize(System.Windows.Forms.Form WindowsForm)
{
if (WindowsForm is MercatorUi.Forms.Istat.IstatDataForm)
{
MercatorUi.Forms.Istat.IstatDataForm istatDataForm = (MercatorUi.Forms.Istat.IstatDataForm)WindowsForm;
istatDataForm.LineAddedToFile -= new MercatorUi.Forms.Istat.IstatDataForm.LineAddedToFileEventHandler(istatDataForm_LineAddedToFile);
}
}
void istatDataForm_LineAddedToFile(object sender, MercatorUi.Forms.Istat.IstatDataForm.LineAddedToFileEventArgs e)
{
// op elke lijn van het bestand, wordt een tabulatie en een extra kolom toegevoegd met het land van oorsprong
e.FileContent.Append("\t" + e.Dr["pays_ori"].ToString());
}
}
}