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();
// on "cache" le s_id de l'article dans le tag du bouton correspondant
button1.Tag = "618173914H";
button2.Tag = "618173915I";
button3.Tag = "618173916K";
}
#region propriétés requises par IMovableControl
// la Form qui héberge ce MovableObject
public MercatorUi.MovableControls.Interfaces.IFormForMovableControls Form { get; set; }
// indique que le contrôle est à la disposition de l'utilisateur : tous les évènements du style "valueChanged" sont causés par l'utilisateur, pas par 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) // si l'utilisateur n'a pas le droit de modifier ce document
return;
int n = billingEngine.AppendLine(true); // le paramètre true permet de ne pas créer une nouvelle ligne si la dernière ligne est vide
if (billingEngine.InsertItem(s_id, billingEngine.LIGNES.Rows[n]))
{
n = billingEngine.AppendLine(); // ajouter une nouvelle ligne vide
billingForm.LinesEditor.Grid.CurrentCell = billingForm.LinesEditor.Grid.Rows[n].Cells[0]; // activer la première cellule de la ligne créée
}
}
}
}