using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace GescomButtons
{
public partial class GescomButtonsUserControl : UserControl, MercatorUi.MovableControls.Interfaces.IMovableControl
{
public GescomButtonsUserControl()
{
InitializeComponent();
// de s_id van het artikel wordt in de tag van de bijbehorende knop 'verborgen'
button1.Tag = "618173914H";
button2.Tag = "618173915I";
button3.Tag = "618173916K";
}
#region propriétés requises par IMovableControl
// de Form waarin dit MovableObject zit
public MercatorUi.MovableControls.Interfaces.IFormForMovableControls Form { get; set; }
// geeft aan dat de controle ter beschikking van de gebruiker is: alle events van het type 'valueChanged' worden door de gebruiker veroorzaakt, niet door Mercator
public bool UserMode { get; set; }
public bool AfterDone { get; set; }
public List<MercatorUi.MovableControls.MovableExpression> ExpressionsToRefresh { get; set; }
public List<MercatorUi.MovableControls.MovablePictureBox> PictureBoxesToRefresh { get; set; }
#endregion
#region méthodes requises par IMovableControl
public void OnAfterRead(EventArgs e)
{
}
public void OnBeforeWrite(EventArgs e)
{
}
public void OnAfterWrite(EventArgs e)
{
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
addItem(sender);
}
private void button2_Click(object sender, EventArgs e)
{
addItem(sender);
}
private void button3_Click(object sender, EventArgs e)
{
addItem(sender);
}
private void addItem(object sender)
{
Button button = (Button)sender;
string s_id = button.Tag.ToString();
MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)Form;
MercatorUi.Engine.Gescom.BillingEngine billingEngine = billingForm.BillingEngine;
if (billingEngine.ReadOnly) // indien de gebruiker dit document niet mag wijzigen
return;
int n = billingEngine.AppendLine(true); // de parameter true laat niet toe dat er een nieuwe lijn wordt aangemaakt indien de laatste lijn leeg is
if (billingEngine.InsertItem(s_id, billingEngine.LIGNES.Rows[n]))
{
n = billingEngine.AppendLine(); // een nieuwe, lege lijn toevoegen
billingForm.LinesEditor.Grid.CurrentCell = billingForm.LinesEditor.Grid.Rows[n].Cells[0]; // de eerste cel van de gecreëerde lijn activeren
}
}
}
}