Invoer van meerdere lijnen toelaten in een cel in de grid van de LinesEditor

0000002262     -      24-06-2016

Deze programmatie toont hoe je invoer van meerdere lijnen in een cel van de LinesEditor van de BillingForm. Hetzelfde principe kan gebruikt worden in de BookingForm, InventoryForm en de TransferForm, en eventueel in een DataGridView

multilines_cell

Om de standaardhoogte van elke rij op de grid te verhogen, moet je de eigenschap RowHeight uit de LinesEditor instellen op een relatief hoge waarde. Bijvoorbeeld: 99.
Men moet ook de gevraagde kolom TopLeft uitlijnen.
Deze 2 punten kunnen eenvoudig ingesteld worden in de scherm-parametrage.

De rest wordt verzekerd door de Billing-customizer:

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;


namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.BillingFormLoaded += new EventHandler(BillingEngine_BillingFormLoaded);
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.BillingFormLoaded -= new EventHandler(BillingEngine_BillingFormLoaded);
        }

        void BillingEngine_BillingFormLoaded(object sender, EventArgs e)
        {
            MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            if (billingEngine.BillingForm.LinesEditor != null)
                billingEngine.BillingForm.LinesEditor.Grid.Columns["myField"].DefaultCellStyle.WrapMode = DataGridViewTriState.True; // autoriser multi-lines
        }
    }
}

Opmerkingen:

  • Merk op dat het toevoegen van een lijn in een cel niet gedaan wordt door de "Enter"-toets, maar door een combinatie van de knoppen "Shift + Enter".
  • In de code, moet "myField" veranderd worden door de naam van het veld waarvoor men deze functionaliteit wenst te activeren.
  • In SQL, is het beste type om invoer van een memo toe te laten VarChar(MAX). (Het type Text wordt niet ondersteund)